subroutine grid_wavenumber_init
!
!==== Dependency
!
use type_mod, only: INTKIND
use nmlfile_mod,only: nmlfile_init, nmlfile_open, nmlfile_close
use dc_trace, only: DbgMessage, BeginSub, EndSub
use dc_message, only: MessageNotify
!=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