Class grid_3d_mod
In: src/shared/grid/grid_3d.f90

Methods

Included Modules

type_mod nmlfile_mod dc_trace dc_message

Public Instance methods

((< nmlfile_init >)) で指定されることが想定されているが、 もしもこの初期化ルーチンより以前に指定されていなければ、 ((< nmlfile_init >)) のデフォルトで指定される NAMELIST ファイルを 読む。

[Source]

  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

[Validate]