Class | ground_file_io |
In: |
io/ground_file_io.f90
|
Note that Japanese and English are described in parallel.
海面温度や地表面諸量に関するデータを NetCDF ファイルから入力します.
Data about sea surface temperature (SST) or various values on surface are input from a NetCDF file.
GroundFileGet : | 地表面データファイルの入力 |
———— : | ———— |
GroundFileGet : | Input ground data file |
Subroutine : | |||
xy_SurfTemp(0:imax-1, 1:jmax) : | real(DP), intent(out), optional
| ||
xy_SurfAlbedo(0:imax-1, 1:jmax) : | real(DP), intent(out), optional
| ||
xy_SurfHumidCoeff(0:imax-1, 1:jmax) : | real(DP), intent(out), optional
| ||
xy_SurfRoughLength(0:imax-1, 1:jmax) : | real(DP), intent(out), optional
| ||
xy_SurfHeatCapacity(0:imax-1, 1:jmax) : | real(DP), intent(out), optional
| ||
xy_GroundTempFlux(0:imax-1, 1:jmax) : | real(DP), intent(out), optional
| ||
xy_SurfCondition(0:imax-1, 1:jmax) : | integer, intent(out), optional
|
地表面データを取得します.
Get data on ground.
subroutine GroundFileGet( xy_SurfTemp, xy_SurfAlbedo, xy_SurfHumidCoeff, xy_SurfRoughLength, xy_SurfHeatCapacity, xy_GroundTempFlux, xy_SurfCondition ) ! ! 地表面データを取得します. ! ! Get data on ground. ! ! モジュール引用 ; USE statements ! ! 地表面データ提供 ! Prepare surface data ! use surface_data, only: SurfDataGet ! gtool4 データ入力 ! Gtool4 data input ! use gt4_history, only: HistoryGet ! 文字列操作 ! Character handling ! use dc_string, only: toChar ! 宣言文 ; Declaration statements ! implicit none real(DP), intent(out), optional:: xy_SurfTemp (0:imax-1, 1:jmax) ! 地表面温度. ! Surface temperature real(DP), intent(out), optional:: xy_SurfAlbedo (0:imax-1, 1:jmax) ! 地表アルベド. ! Surface albedo real(DP), intent(out), optional:: xy_SurfHumidCoeff (0:imax-1, 1:jmax) ! 地表湿潤度. ! Surface humidity coefficient real(DP), intent(out), optional:: xy_SurfRoughLength (0:imax-1, 1:jmax) ! 地表粗度長. ! Surface rough length real(DP), intent(out), optional:: xy_SurfHeatCapacity (0:imax-1, 1:jmax) ! 地表熱容量. ! Surface heat capacity real(DP), intent(out), optional:: xy_GroundTempFlux (0:imax-1, 1:jmax) ! 地中熱フラックス. ! Ground temperature flux integer, intent(out), optional:: xy_SurfCondition (0:imax-1, 1:jmax) ! 地表状態. ! Surface condition ! 作業変数 ! Work variables ! ! 実行文 ; Executable statement ! if ( .not. ground_file_io_inited ) call GroundFileInit ! データ (デフォルト値) を initial_data モジュールから取得 ! Data (default values) is input from "initial_data" module ! call SurfDataGet( xy_SurfTemp, xy_SurfAlbedo, xy_SurfHumidCoeff, xy_SurfRoughLength, xy_SurfHeatCapacity, xy_GroundTempFlux, xy_SurfCondition ) ! (out) ! データを InputFile から取得 ! Data is input from InputFile ! if ( trim(InputFile) /= '' ) then ! データ入力 ! Data input ! if ( trim(SurfTempVarname) /= '' ) then call HistoryGet( InputFile, SurfTempVarname, xy_SurfTemp ) end if if ( trim(SurfAlbedoVarname) /= '' ) then call HistoryGet( InputFile, SurfAlbedoVarname, xy_SurfAlbedo ) end if if ( trim(SurfHumidcoeffVarname) /= '' ) then call HistoryGet( InputFile, SurfHumidcoeffVarname, xy_SurfHumidcoeff ) end if if ( trim(SurfRoughLengthVarname) /= '' ) then call HistoryGet( InputFile, SurfRoughLengthVarname, xy_SurfRoughLength ) end if if ( trim(SurfHeatCapacityVarname) /= '' ) then call HistoryGet( InputFile, SurfHeatCapacityVarname, xy_SurfHeatCapacity ) end if if ( trim(GroundTempFluxVarname) /= '' ) then call HistoryGet( InputFile, GroundTempFluxVarname, xy_GroundTempFlux ) end if if ( trim(SurfConditionVarname) /= '' ) then call HistoryGet( InputFile, SurfConditionVarname, xy_SurfCondition ) end if end if end subroutine GroundFileGet
Variable : | |||
ground_file_io_inited = .false. : | logical, save, public
|
Variable : | |||
ground_file_opened = .false. : | logical, save, public
|
Subroutine : |
ground_file_io モジュールの初期化を行います. NAMELIST#ground_file_io_nml の読み込みはこの手続きで行われます.
"ground_file_io" module is initialized. "NAMELIST#ground_file_io_nml" is loaded in this procedure.
This procedure input/output NAMELIST#ground_file_io_nml .
subroutine GroundFileInit ! ! ground_file_io モジュールの初期化を行います. ! NAMELIST#ground_file_io_nml の読み込みはこの手続きで行われます. ! ! "ground_file_io" module is initialized. ! "NAMELIST#ground_file_io_nml" is loaded in this procedure. ! ! モジュール引用 ; USE statements ! ! 時刻管理 ! Time control ! use timeset, only: DelTime, TimesetGetDelTime ! NAMELIST ファイル入力に関するユーティリティ ! Utilities for NAMELIST file input ! use namelist_util, only: namelist_filename, NmlutilMsg ! ファイル入出力補助 ! File I/O support ! use dc_iounit, only: FileOpen ! 種別型パラメタ ! Kind type parameter ! use dc_types, only: STDOUT ! 標準出力の装置番号. Unit number of standard output ! 宣言文 ; Declaration statements ! implicit none ! 作業変数 ! Work variables ! integer:: unit_nml ! NAMELIST ファイルオープン用装置番号. ! Unit number for NAMELIST file open integer:: iostat_nml ! NAMELIST 読み込み時の IOSTAT. ! IOSTAT of NAMELIST read ! NAMELIST 変数群 ! NAMELIST group name ! namelist /ground_file_io_nml/ InputFile, SurfTempVarname, SurfAlbedoVarname, SurfHumidCoeffVarname, SurfRoughLengthVarname, SurfHeatCapacityVarname, GroundTempFluxVarname, SurfConditionVarname ! ! デフォルト値については初期化手続 "ground_file_io#GroundFileInit" ! のソースコードを参照のこと. ! ! Refer to source codes in the initialization procedure ! "ground_file_io#GroundFileInit" for the default values. ! !!$ & OutputFile, & !!$ & IntValue, IntUnit ! 実行文 ; Executable statement ! if ( ground_file_io_inited ) return call InitCheck ! デフォルト値の設定 ! Default values settings ! InputFile = '' SurfTempVarname = '' SurfAlbedoVarname = '' SurfHumidCoeffVarname = '' SurfRoughLengthVarname = '' SurfHeatCapacityVarname = '' GroundTempFluxVarname = '' SurfConditionVarname = '' !!$ OutputFile = 'sst.nc' !!$ IntValue = 1.0_DP !!$ IntUnit = 'day' ! NAMELIST の読み込み ! NAMELIST is input ! if ( trim(namelist_filename) /= '' ) then call FileOpen( unit_nml, namelist_filename, mode = 'r' ) ! (in) rewind( unit_nml ) read( unit_nml, nml = ground_file_io_nml, iostat = iostat_nml ) ! (out) close( unit_nml ) call NmlutilMsg( iostat_nml, module_name ) ! (in) if ( iostat_nml == 0 ) write( STDOUT, nml = ground_file_io_nml ) end if ! 印字 ; Print ! call MessageNotify( 'M', module_name, '----- Initialization Messages -----' ) call MessageNotify( 'M', module_name, 'Input:: ' ) call MessageNotify( 'M', module_name, ' InputFile = %c', c1 = trim(InputFile) ) call MessageNotify( 'M', module_name, ' SurfTempVarname = %c', c1 = trim(SurfTempVarname ) ) call MessageNotify( 'M', module_name, ' SurfAlbedoVarname = %c', c1 = trim(SurfAlbedoVarname ) ) call MessageNotify( 'M', module_name, ' SurfHumidCoeffVarname = %c', c1 = trim(SurfHumidCoeffVarname ) ) call MessageNotify( 'M', module_name, ' SurfRoughLengthVarname = %c', c1 = trim(SurfRoughLengthVarname ) ) call MessageNotify( 'M', module_name, ' SurfHeatCapacityVarname = %c', c1 = trim(SurfHeatCapacityVarname) ) call MessageNotify( 'M', module_name, ' GroundTempFluxVarname = %c', c1 = trim(GroundTempFluxVarname ) ) call MessageNotify( 'M', module_name, ' SurfConditionVarname = %c', c1 = trim(SurfConditionVarname ) ) !!$ call MessageNotify( 'M', module_name, 'Output:: ' ) !!$ call MessageNotify( 'M', module_name, ' OutputFile = %c', c1 = trim(OutputFile) ) !!$ call MessageNotify( 'M', module_name, ' IntTime = %f [%c]', d = (/ IntValue /), c1 = trim(IntUnit) ) !!$ call MessageNotify( 'M', module_name, ' IntStep = %d', i = (/ IntStep /) ) call MessageNotify( 'M', module_name, '-- version = %c', c1 = trim(version) ) ground_file_io_inited = .true. end subroutine GroundFileInit
Variable : | |||
GroundTempFluxVarname : | character(TOKEN), save
|
Subroutine : |
依存モジュールの初期化チェック
Check initialization of dependency modules
subroutine InitCheck ! ! 依存モジュールの初期化チェック ! ! Check initialization of dependency modules ! モジュール引用 ; USE statements ! ! NAMELIST ファイル入力に関するユーティリティ ! Utilities for NAMELIST file input ! use namelist_util, only: namelist_util_inited ! 出力ファイルの基本情報管理 ! Management basic information for output files ! use fileset, only: fileset_inited ! 格子点設定 ! Grid points settings ! use gridset, only: gridset_inited ! 物理定数設定 ! Physical constants settings ! use constants, only: constants_inited ! 座標データ設定 ! Axes data settings ! use axesset, only: axesset_inited ! 時刻管理 ! Time control ! use timeset, only: timeset_inited ! 実行文 ; Executable statement ! if ( .not. namelist_util_inited ) call MessageNotify( 'E', module_name, '"namelist_util" module is not initialized.' ) if ( .not. fileset_inited ) call MessageNotify( 'E', module_name, '"fileset" module is not initialized.' ) if ( .not. gridset_inited ) call MessageNotify( 'E', module_name, '"gridset" module is not initialized.' ) if ( .not. constants_inited ) call MessageNotify( 'E', module_name, '"constants" module is not initialized.' ) if ( .not. axesset_inited ) call MessageNotify( 'E', module_name, '"axesset" module is not initialized.' ) if ( .not. timeset_inited ) call MessageNotify( 'E', module_name, '"timeset" module is not initialized.' ) end subroutine InitCheck
Variable : | |||
InputFile : | character(STRING), save
|
Variable : | |||
SurfAlbedoVarname : | character(TOKEN), save
|
Variable : | |||
SurfConditionVarname : | character(TOKEN), save
|
Variable : | |||
SurfHeatCapacityVarname : | character(TOKEN), save
|
Variable : | |||
SurfHumidCoeffVarname : | character(TOKEN), save
|
Variable : | |||
SurfRoughLengthVarname : | character(TOKEN), save
|
Variable : | |||
SurfTempVarname : | character(TOKEN), save
|
Constant : | |||
module_name = ‘ground_file_io‘ : | character(*), parameter
|
Constant : | |||
version = ’$Name: dcpam5-20080812 $’ // ’$Id: ground_file_io.f90,v 1.1 2008-08-11 21:58:50 morikawa Exp $’ : | character(*), parameter
|