Class grid_wavenumber_mod
In: shared/grid_wavenumber.f90

Methods

Included Modules

type_mod nmlfile_mod dc_trace dc_message

Public Instance methods

Subroutine :

Dependency

[Source]

  subroutine grid_wavenumber_end
  !==== Dependency
    use dc_trace,  only: DbgMessage, BeginSub, EndSub
                                                                 !=end
    implicit none
    character(STRING), parameter:: subname = "grid_wavenumber_end"

    !----------------------------------------------------------------
    !   Check Initialization
    !----------------------------------------------------------------
    call BeginSub(subname)
    if ( .not. grid_wavenumber_initialized) then
       call EndSub( subname, 'grid_wavenumber_init was not called', c1=trim(subname) )
       return
    else
       grid_wavenumber_initialized = .false.
    endif

    !----------------------------------------------------------------
    !   Reset to default value
    !----------------------------------------------------------------
    nm = 12

    call EndSub( subname, 'nm=<%d>', i=(/nm/) )
  end subroutine grid_wavenumber_end
Subroutine :

Dependency

This procedure input/output NAMELIST#grid_wavenumber_nml .

[Source]

  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
nm()
Variable :
nm = 21 :integer(INTKIND), save
: 波数の設定 =end

[Validate]