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