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 ) |
xyz_VirTemp( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(in ) |
xyr_Height( 0:imax-1, 1:jmax, 0:kmax ) : | real(DP), intent(in ) |
xyz_DQH2OLiqDtCum( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(in ) |
xyz_DQH2OLiqDtLSC( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(in ) |
xyz_QH2OLiq( 0:imax-1, 1:jmax, 1:kmax ) : | real(DP), intent(inout) |
xy_RainCum( 0:imax-1, 1:jmax ) : | real(DP), intent(out ) |
xy_SnowCum( 0:imax-1, 1:jmax ) : | real(DP), intent(out ) |
xy_RainLsc( 0:imax-1, 1:jmax ) : | real(DP), intent(out ) |
xy_SnowLsc( 0:imax-1, 1:jmax ) : | real(DP), intent(out ) |
subroutine CloudMarsH2O( xyr_Press, xyz_VirTemp, xyr_Height, xyz_DQH2OLiqDtCum, xyz_DQH2OLiqDtLSC, xyz_QH2OLiq, xy_RainCum, xy_SnowCum, xy_RainLsc, xy_SnowLsc ) ! 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 ) :: xyz_VirTemp ( 0:imax-1, 1:jmax, 1:kmax ) real(DP), intent(in ) :: xyr_Height ( 0:imax-1, 1:jmax, 0:kmax ) real(DP), intent(in ) :: xyz_DQH2OLiqDtCum( 0:imax-1, 1:jmax, 1:kmax ) real(DP), intent(in ) :: xyz_DQH2OLiqDtLSC( 0:imax-1, 1:jmax, 1:kmax ) real(DP), intent(inout) :: xyz_QH2OLiq ( 0:imax-1, 1:jmax, 1:kmax ) real(DP), intent(out ) :: xy_RainCum ( 0:imax-1, 1:jmax ) real(DP), intent(out ) :: xy_SnowCum ( 0:imax-1, 1:jmax ) real(DP), intent(out ) :: xy_RainLsc ( 0:imax-1, 1:jmax ) real(DP), intent(out ) :: xy_SnowLsc ( 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_QH2OLiq = xyz_QH2OLiq + ( xyz_DQH2OLiqDtCum + xyz_DQH2OLiqDtLSC ) * 2.0_DP * DelTime xy_RainCum = 0.0_DP xy_SnowCum = 0.0_DP xy_RainLsc = 0.0_DP xy_SnowLsc = 0.0_DP ! 重力沈降過程 ! Gravitational sedimentation process ! call GravSed( 'MarsH2OCloud', xyr_Press, xyz_VirTemp, xyr_Height, xyz_QH2OLiq, xy_SnowLsc ) xy_SnowLsc = - xy_SnowLsc 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: dcpam5-20131007 $’ // ’$Id: cloud_mars_h2o.f90,v 1.1 2013-09-30 03:04:39 yot Exp $’ : | character(*), parameter
|