Class | grid_3d_mod |
In: |
src/shared/grid/grid_3d.f90
|
((< nmlfile_init >)) で指定されることが想定されているが、 もしもこの初期化ルーチンより以前に指定されていなければ、 ((< nmlfile_init >)) のデフォルトで指定される NAMELIST ファイルを 読む。
subroutine grid_3d_init ! !==== Dependency ! !=end implicit none !------------------------------------------------------------------- ! 変数定義 !------------------------------------------------------------------- logical :: invalid_grid = .false. logical :: nmlreadable integer(INTKIND) :: nmlunit, nmlstat character(STRING), parameter:: subname = "grid_3d_init" !=begin !==== NAMELIST ! namelist /grid_3d_nml/ im , jm , km ! 鉛直格子点数 !=end continue !---------------------------------------------------------------- ! Check Initialization !---------------------------------------------------------------- call BeginSub(subname) if (grid_3d_initialized) then call EndSub( subname, '%c is already called', c1=trim(subname) ) return else grid_3d_initialized = .true. endif !---------------------------------------------------------------- ! Version identifier !---------------------------------------------------------------- call DbgMessage('%c :: %c', c1=trim(version), c2=trim(tagname)) !---------------------------------------------------------------- ! read grid_3d_nml !---------------------------------------------------------------- call nmlfile_init call nmlfile_open(nmlunit, nmlreadable) if (nmlreadable) then read(nmlunit, nml=grid_3d_nml, iostat=nmlstat) call DbgMessage('Stat of NAMELIST grid_3d_nml Input is <%d>', i=(/nmlstat/)) write(0, nml=grid_3d_nml) else call DbgMessage('Not Read NAMELIST grid_3d_nml') call MessageNotify('W', subname, 'Can not Read NAMELIST grid_3d_nml. Force Use Default Value.') end if call nmlfile_close !---------------------------------------------------------------- ! Exception handling !---------------------------------------------------------------- invalid_grid = .false. if (im < 1) then im = 64 invalid_grid = .true. end if if (jm < 1) then jm = 32 invalid_grid = .true. end if if (km < 1) then km = 12 invalid_grid = .true. end if if (invalid_grid) then call MessageNotify('W', subname, 'Invalid grid number is exist. Force Set im=<%d>, jm=<%d>, km=<%d>', i=(/im, jm, km/) ) call DbgMessage( 'Invalid grid number is exist. Force Set im=<%d>, jm=<%d>, km=<%d>', i=(/im, jm, km/) ) endif call EndSub( subname, 'im=<%d>, jm=<%d>, km=<%d>', i=(/im, jm, km/) ) end subroutine grid_3d_init