Class Radiation_bs1998
In: ../src/physics/radiation_bs1998.f90

Baker et al (1998) を模した放射強制を与えるためのモジュール

Methods

Included Modules

dc_types dc_iounit dc_message gtool_historyauto mpi_wrapper gridSet axesset constants basicset DExnerDt namelist_util

Public Instance methods

Subroutine :

初期化ルーチン: BS1998 で用いられている熱強制を用いる

[Source]

  subroutine Radiation_bs1998_init
    !
    ! 初期化ルーチン: BS1998 で用いられている熱強制を用いる
    !

    !暗黙の型宣言禁止
    implicit none

    !内部変数
    integer  :: k             !ループ変数

    allocate( xyz_PTempRadBS1998(imin:imax, jmin:jmax, kmin:kmax) )
    allocate( xyz_ExnerRadBS1998(imin:imax, jmin:jmax, kmin:kmax) )
    
    ! 温位の放射強制項.
    ! BS1998 で用いられている熱強制のプロファイルを用いる
    !
    do k = kmin, kmax
      xyz_PTempRadBS1998(:,:,k) = cal_Qsub( z_Z(k) ) / CpDry / xyz_DensBZ(:,:,k) / xyz_ExnerBZ(:,:,k)
    end do
    xyz_ExnerRadBS1998 = xyz_DExnerDt_xyz( xyz_PTempRadBS1998 ) 

    ! Output
    !
    call HistoryAutoAddVariable( varname='PTempRad', dims=(/'x','y','z','t'/), longname='Radiation term of potential temperature', units='K.s-1', xtype='double')

    call HistoryAutoAddVariable( varname='ExnerRad', dims=(/'x','y','z','t'/), longname='Radiation term of Exner function', units='K.s-1', xtype='double')

  end subroutine Radiation_bs1998_init
xyz_ExnerRadBS1998
Variable :
xyz_ExnerRadBS1998(:,:,:) :real(DP), save, allocatable, public
: 放射加熱が存在する領域
xyz_PTempRadBS1998
Variable :
xyz_PTempRadBS1998(:,:,:) :real(DP), save, allocatable, public
: 放射加熱が存在する領域