Class sltt_debug
In: prepare_data/sltt_debug.f90

Methods

Included Modules

dc_types gridset composition constants0 axesset constants

Public Instance methods

Subroutine :
xyzf_QMix(0:imax-1, 1:jmax, 1:kmax, ncmax) :real(DP), intent(out)

[Source]

  subroutine SLTTDebugSetQ( xyzf_QMix )

    use constants0, only : PI
    use constants , only : RPlanet
    use axesset   , only : x_Lon, y_Lat


    real(DP), intent(out) :: xyzf_QMix(0:imax-1, 1:jmax, 1:kmax, ncmax)


    !
    ! Local variables
    !
    real(DP) :: clon, clat
    real(DP) :: bell_radius, bell_height
    real(DP) :: dist

    integer  :: i
    integer  :: j
    integer  :: k
    integer  :: n


    clon        =  90.0_DP * PI / 180.0_DP
    clat        =  20.0_DP * PI / 180.0_DP
    bell_radius = RPlanet / 3.0_DP
    bell_radius = RPlanet
    bell_height = 1.0d-6 * 1.0d-10


    do n = 1, ncmax
      do k = 1, kmax
        do j = 1, jmax
          do i = 0, imax-1
            dist = RPlanet * acos( sin( clat ) * sin( y_Lat(j) ) + cos( clat ) * cos( y_Lat(j) ) * cos( x_Lon(i) - clon ) )
            if( dist < bell_radius ) then
              xyzf_QMix(i,j,k,n) = bell_height / 2.0d0 * ( 1.0_DP + cos( PI * dist / bell_radius ) )
            else
              xyzf_QMix(i,j,k,n) = 0.0_DP
            end if
          end do
        end do
      end do
    end do


    do n = 1, ncmax
      do k = 1, kmax / 2
        do j = 1, jmax
          do i = 0, imax-1
            xyzf_QMix(i,j,k,n) = 0.0_DP
          end do
        end do
      end do
    end do


  end subroutine SLTTDebugSetQ
Subroutine :
U0 :real(DP), intent(in )
xyz_U(0:imax-1, 1:jmax, 1:kmax) :real(DP), intent(out)
xyz_V(0:imax-1, 1:jmax, 1:kmax) :real(DP), intent(out)

[Source]

  subroutine SLTTDebugSetUV( U0, xyz_U, xyz_V )

    use constants0, only : PI
    use axesset   , only : x_Lon, y_Lat

    real(DP), intent(in ) :: U0
    real(DP), intent(out) :: xyz_U(0:imax-1, 1:jmax, 1:kmax)
    real(DP), intent(out) :: xyz_V(0:imax-1, 1:jmax, 1:kmax)


    !
    ! local variables
    !
    real(DP) :: Alpha
    integer  :: i
    integer  :: j
    integer  :: k


    Alpha =  80.0_DP * PI / 180.0_DP

    do k = 1, kmax
      do j = 1, jmax
        do i = 0, imax-1
          xyz_U(i,j,k) = U0 * ( cos( y_Lat(j) ) * cos( Alpha ) + sin( y_Lat(j) ) * cos( x_Lon(i) ) * sin( Alpha ) )
          xyz_V(i,j,k) = -U0 * sin( x_Lon(i) ) * sin( Alpha )
        end do
      end do
    end do


  end subroutine SLTTDebugSetUV