subroutine DynamicsPhysicsOnlyInit
! モジュール引用 ; USE statements
!
! 宣言文 ; Declaration statements
!
implicit none
!!$ integer:: unit_nml ! NAMELIST ファイルオープン用装置番号.
!!$ ! Unit number for NAMELIST file open
!!$ integer:: iostat_nml ! NAMELIST 読み込み時の IOSTAT.
!!$ ! IOSTAT of NAMELIST read
! NAMELIST 変数群
! NAMELIST group name
!
!!$ namelist /surface_flux_bulk_nml/ &
!!$ & VelMinForRi, VelMinForVel, VelMinForTemp, VelMinForQVap, &
!!$ & VelMaxForVel, VelMaxForTemp, VelMaxForQVap, &
!!$!
!!$ & Neutral, ConstBulkCoef, &
!!$ & VelBulkCoefMin, TempBulkCoefMin, QVapBulkCoefMin, &
!!$ & VelBulkCoefMax, TempBulkCoefMax, QVapBulkCoefMax
!!$ !
!!$ ! デフォルト値については初期化手続 "surface_flux_bulk#SurfFluxInit"
!!$ ! のソースコードを参照のこと.
!!$ !
!!$ ! Refer to source codes in the initialization procedure
!!$ ! "surface_flux_bulk#SurfFluxInit" for the default values.
!!$ !
! 実行文 ; Executable statement
!
if ( dynamics_physicsonly_inited ) return
!!$ call InitCheck
! デフォルト値の設定
! 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 = surface_flux_bulk_nml, & ! (out)
!!$ & iostat = iostat_nml ) ! (out)
!!$ close( unit_nml )
!!$
!!$ call NmlutilMsg( iostat_nml, module_name ) ! (in)
!!$ end if
!!$
!!$ ! ヒストリデータ出力のためのへの変数登録
!!$ ! Register of variables for history data output
!!$ !
!!$ call HistoryAutoAddVariable( 'TauX', &
!!$ & (/ 'lon ', 'lat ', 'time' /), &
!!$ & 'surface stress(x) ', 'N m-2' )
!!$
!!$ call HistoryAutoAddVariable( 'TauY', &
!!$ & (/ 'lon ', 'lat ', 'time' /), &
!!$ & 'surface stress(y) ', 'N m-2' )
!!$
!!$ call HistoryAutoAddVariable( 'Sens', &
!!$ & (/ 'lon ', 'lat ', 'time' /), &
!!$ & 'sensible heat flux', 'W m-2' )
!!$
!!$ call HistoryAutoAddVariable( 'EVap', &
!!$ & (/ 'lon ', 'lat ', 'time' /), &
!!$ & 'latent heat flux ', 'W m-2' )
!!$
!!$ ! 印字 ; Print
!!$ !
!!$ call MessageNotify( 'M', module_name, '----- Initialization Messages -----' )
!!$
!!$ call MessageNotify( 'M', module_name, ' VelMinForRi = %f', d = (/ VelMinForRi /) )
!!$ call MessageNotify( 'M', module_name, ' VelMinForVel = %f', d = (/ VelMinForVel /) )
!!$ call MessageNotify( 'M', module_name, ' VelMinForTemp = %f', d = (/ VelMinForTemp /) )
!!$ call MessageNotify( 'M', module_name, ' VelMinForQVap = %f', d = (/ VelMinForQVap /) )
!!$ call MessageNotify( 'M', module_name, ' VelMaxForVel = %f', d = (/ VelMaxForVel /) )
!!$ call MessageNotify( 'M', module_name, ' VelMaxForTemp = %f', d = (/ VelMaxForTemp /) )
!!$ call MessageNotify( 'M', module_name, ' VelMaxForQVap = %f', d = (/ VelMaxForQVap /) )
!!$
!!$ call MessageNotify( 'M', module_name, 'Bulk coefficients:' )
!!$ call MessageNotify( 'M', module_name, ' Neutral = %b', l = (/ Neutral /) )
!!$ call MessageNotify( 'M', module_name, ' ConstBulkCoef = %f', d = (/ ConstBulkCoef /) )
!!$ call MessageNotify( 'M', module_name, ' VelBulkCoefMin = %f', d = (/ VelBulkCoefMin /) )
!!$ call MessageNotify( 'M', module_name, ' TempBulkCoefMin = %f', d = (/ TempBulkCoefMin /) )
!!$ call MessageNotify( 'M', module_name, ' QVapBulkCoefMin = %f', d = (/ QVapBulkCoefMin /) )
!!$ call MessageNotify( 'M', module_name, ' VelBulkCoefMax = %f', d = (/ VelBulkCoefMax /) )
!!$ call MessageNotify( 'M', module_name, ' TempBulkCoefMax = %f', d = (/ TempBulkCoefMax /) )
!!$ call MessageNotify( 'M', module_name, ' QVapBulkCoefMax = %f', d = (/ QVapBulkCoefMax /) )
!!$ call MessageNotify( 'M', module_name, 'Saturation:' )
!!$ call MessageNotify( 'M', module_name, ' Scheme of saturation = %c', &
!!$ & c1 = saturate_scheme )
!!$ call MessageNotify( 'M', module_name, '-- version = %c', c1 = trim(version) )
dynamics_physicsonly_inited = .true.
end subroutine DynamicsPhysicsOnlyInit