getdisturbvar.f90

Path: src/io/getdisturbvar.f90
Last Update: Sat Apr 23 00:01:52 JST 2005

    Copyright (C) GFD Dennou Club, 2004. All rights reserved.

begin

Subroutine GetDisturbVar

  * Developer: SUGIYAMA Ko-ichiro (sugiyama@gfd-dennou.org)
  * Version: $Id: getdisturbvar.f90,v 1.2 2005/04/22 15:01:52 sugiyama Exp $
  * Tag Name: $Name:  $
  * Change History:

Overview

擾乱場の初期値を netCDF ファイルから取得する.

Error Handling

Known Bugs

Note

Future Plans

  * 時間刻みのチェックだけでなく, 解像度のチェックおよび物理定数のチェックも必要だろう.

end

Methods

Included Modules

gt4_history dc_trace dc_message bcset timeset gridset

Public Instance methods

disturbfile :character(*), intent(in)
: end
 暗黙の型宣言禁止

begin

 Input

擾乱場のファイル

ReStartTime(2) :real(8), intent(out)
: Output
fs_VelX_b(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
sf_VelZ_b(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_Exner_b(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_PotTemp_b(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_Km_b(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_Kh_b(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
fs_VelX_n(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
sf_VelZ_n(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_Exner_n(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_PotTemp_n(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_Km_n(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)
ss_Kh_n(DimXMin:DimXMax, DimZMin:DimZMax) :real(8), intent(out)

[Source]

subroutine GetDisturbVar(disturbfile, ReStartTime,    fs_VelX_b,    sf_VelZ_b, ss_Exner_b,  ss_PotTemp_b, ss_Km_b,   ss_Kh_b,     fs_VelX_n,    sf_VelZ_n, ss_Exner_n,  ss_PotTemp_n, ss_Km_n,   ss_Kh_n     )
                                                                 !=begin
  !== Dependency

                                                                 !=end    
  !== 暗黙の型宣言禁止
  implicit none
                                                                 !=begin
  !== Input 
  character(*), intent(in)  :: disturbfile  !擾乱場のファイル

  !== Output
  real(8), intent(out)  :: ReStartTime(2)
  real(8), intent(out)  :: fs_VelX_n(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: fs_VelX_b(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: sf_VelZ_n(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: sf_VelZ_b(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_Exner_n(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_Exner_b(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_PotTemp_n(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_PotTemp_b(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_Km_n(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_Km_b(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_Kh_n(DimXMin:DimXMax, DimZMin:DimZMax)
  real(8), intent(out)  :: ss_Kh_b(DimXMin:DimXMax, DimZMin:DimZMax)
                                                                 !=end    
  !== Work
  real(8)        :: DelTime
  character(30)  :: name            !変数名
  

  call BeginSub("GetDisturbVar",                  fmt="%c",                        c1="Input initial disturbance variables.")

  !=== Get a Value from netCDF File
  name = "t"
  call HistoryGet( disturbfile, name, ReStartTime )

  !=== 時間刻みのチェック
  DelTime = ReStartTime(2) - ReStartTime(1)
  if ( DelTime /= DelTimeLong ) then 
     call MessageNotify("Error", "getdistrbvar",     "DelTime for ReStartFile is not the same as DelTimeLong")
     stop
  end if
  

  !=== Get a Value from netCDF File 
  name = "VelX_n"
  call HistoryGet( disturbfile, name, fs_VelX_n )
  
  name = "VelX_b"
  call HistoryGet( disturbfile, name, fs_VelX_b )
  
  name = "VelZ_n"
  call HistoryGet( disturbfile, name, sf_VelZ_n )
  
  name = "VelZ_b"
  call HistoryGet( disturbfile, name, sf_VelZ_b )
  
  name = "Exner_n"
  call HistoryGet( disturbfile, name, ss_Exner_n )
  
  name = "Exner_b"
  call HistoryGet( disturbfile, name, ss_Exner_b )
  
  name = "PotTemp_n"
  call HistoryGet( disturbfile, name, ss_PotTemp_n )
  
  name = "PotTemp_b"
  call HistoryGet( disturbfile, name, ss_PotTemp_b )

  name = "Km_n"
  call HistoryGet( disturbfile, name, ss_Km_n )
  
  name = "Km_b"
  call HistoryGet( disturbfile, name, ss_Km_b )
  
  name = "Kh_n"
  call HistoryGet( disturbfile, name, ss_Kh_n )
  
  name = "Kh_b"
  call HistoryGet( disturbfile, name, ss_Kh_b )
  
  
  call EndSub("GetDisturbVar")
  
end subroutine GetDisturbVar

[Validate]