| Class | cloud_mars_h2o |
| In: |
radiation/cloud_mars_h2o.f90
|
Note that Japanese and English are described in parallel.
In this module, H2O cloud on Mars is calculated by use of a simple cloud model.
| !$ ! RadiationFluxDennouAGCM : | 放射フラックスの計算 |
| !$ ! ———— : | ———— |
| !$ ! RadiationFluxDennouAGCM : | Calculate radiation flux |
| Subroutine : | |
| xyr_Press( 0:imax-1, 1:jmax, 0:kmax ) : | real(DP), intent(in ) |
| xyr_Height( 0:imax-1, 1:jmax, 0:kmax ) : | real(DP), intent(in ) |
| xyz_DQH2OSolDtCum( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(in ) |
| xyz_DQH2OSolDtLSC( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(in ) |
| xyz_QH2OSol( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(inout) |
| xy_Rain( 0:imax-1, 1:jmax ) : | real(DP), intent(out ) |
| xy_Snow( 0:imax-1, 1:jmax ) : | real(DP), intent(out ) |
subroutine CloudMarsH2O( xyr_Press, xyr_Height, xyz_DQH2OSolDtCum, xyz_DQH2OSolDtLSC, xyz_QH2OSol, xy_Rain, xy_Snow )
! USE statements
!
! 時刻管理
! Time control
!
use timeset, only: DelTime ! $ \Delta t $ [s]
! 重力沈降過程
! Gravitational sedimentation process
!
use grav_sed, only : GravSed
real(DP), intent(in ) :: xyr_Press ( 0:imax-1, 1:jmax, 0:kmax )
real(DP), intent(in ) :: xyr_Height ( 0:imax-1, 1:jmax, 0:kmax )
real(DP), intent(in ) :: xyz_DQH2OSolDtCum( 0:imax-1, 1:jmax, 1:kmax )
real(DP), intent(in ) :: xyz_DQH2OSolDtLSC( 0:imax-1, 1:jmax, 1:kmax )
real(DP), intent(inout) :: xyz_QH2OSol ( 0:imax-1, 1:jmax, 1:kmax )
real(DP), intent(out ) :: xy_Rain ( 0:imax-1, 1:jmax )
real(DP), intent(out ) :: xy_Snow ( 0:imax-1, 1:jmax )
! 実行文 ; Executable statement
!
! 初期化確認
! Initialization check
!
if ( .not. cloud_mars_h2o_inited ) then
call MessageNotify( 'E', module_name, 'This module has not been initialized.' )
end if
xyz_QH2OSol = xyz_QH2OSol + ( xyz_DQH2OSolDtCum + xyz_DQH2OSolDtLSC ) * 2.0_DP * DelTime
xy_Rain = 0.0_DP
xy_Snow = 0.0_DP
! 重力沈降過程
! Gravitational sedimentation process
!
call GravSed( 'MarsH2OCloud', xyr_Press, xyr_Height, xyz_QH2OSol, xy_Snow )
xy_Snow = - xy_Snow
end subroutine CloudMarsH2O
| Subroutine : |
subroutine CloudMarsH2OInit
!!$ ! ファイル入出力補助
!!$ ! File I/O support
!!$ !
!!$ use dc_iounit, only: FileOpen
!!$
!!$ ! NAMELIST ファイル入力に関するユーティリティ
!!$ ! Utilities for NAMELIST file input
!!$ !
!!$ use namelist_util, only: namelist_filename, NmlutilMsg, NmlutilAryValid
! ヒストリデータ出力
! History data output
!
use gtool_historyauto, only: HistoryAutoAddVariable
! 重力沈降過程
! Gravitational sedimentation process
!
use grav_sed, only : GravSedInit
! 宣言文 ; Declaration statements
!
!!$ integer:: unit_nml ! NAMELIST ファイルオープン用装置番号.
!!$ ! Unit number for NAMELIST file open
!!$ integer:: iostat_nml ! NAMELIST 読み込み時の IOSTAT.
!!$ ! IOSTAT of NAMELIST read
! NAMELIST 変数群
! NAMELIST group name
!
!!$ namelist /cloud_simple_nml/ &
!!$ & CloudLifeTime, &
!!$ & CloudWatLifeTime, &
!!$ & CloudIceLifeTime, &
!!$ & CloudCoverMethod, &
!!$ & RHCrtl, &
!!$ & CloudCover
!
! デフォルト値については初期化手続 "cloud_mars_h2o#CloudMarsH2OInit"
! のソースコードを参照のこと.
!
! Refer to source codes in the initialization procedure
! "cloud_mars_h2o#CloudMarsH2OInit" for the default values.
!
! 実行文 ; Executable statement
!
if ( cloud_mars_h2o_inited ) return
! デフォルト値の設定
! Default values settings
!
! NAMELIST の読み込み
! NAMELIST is input
!
!!$ if ( trim(namelist_filename) /= '' ) then
!!$ call FileOpen( unit_nml, & ! (out)
!!$ & namelist_filename, mode = 'r' ) ! (in)
!!$
!!$ rewind( unit_nml )
!!$ read( unit_nml, & ! (in)
!!$ & nml = cloud_mars_h2o_nml, & ! (out)
!!$ & iostat = iostat_nml ) ! (out)
!!$ close( unit_nml )
!!$
!!$ call NmlutilMsg( iostat_nml, module_name ) ! (in)
!!$ end if
! Initialization of modules used in this module
!
! 重力沈降過程
! Gravitational sedimentation process
!
call GravSedInit
! ヒストリデータ出力のためのへの変数登録
! Register of variables for history data output
!
!!$ call HistoryAutoAddVariable( 'EffCloudCover', &
!!$ & (/ 'lon ', 'lat ', 'time' /), &
!!$ & 'effective cloud cover', '1' )
! 印字 ; Print
!
call MessageNotify( 'M', module_name, '----- Initialization Messages -----' )
call MessageNotify( 'M', module_name, '-- version = %c', c1 = trim(version) )
cloud_mars_h2o_inited = .true.
end subroutine CloudMarsH2OInit
| Variable : | |||
| cloud_mars_h2o_inited = .false. : | logical, save
|
| Constant : | |||
| module_name = ‘cloud_mars_h2o‘ : | character(*), parameter
|
| Constant : | |||
| version = ’$Name: $’ // ’$Id: cloud_mars_h2o.f90,v 1.2 2015/01/29 12:06:42 yot Exp $’ : | character(*), parameter
|