Linux  R2.6.5-7.282-sn2 FORTRAN90/SX         Rev.360        Tue Oct 11 12:33:24 2011
FILE NAME: gridset.f90
PROGRAM NAME: gridset
TRANSFORMATION LIST

  LINE                   FORTRAN STATEMENT

     1  != Module GridSet
     2  !
     3  ! Authors::   SUGIYAMA Ko-ichiro, ODAKA Masatsugu
     4  ! Version::   $Id: gridset.f90,v 1.6 2011-06-17 19:04:00 sugiyama Exp $
     5  ! Tag Name::  $Name: arare5-20111010 $
     6  ! Copyright:: Copyright (C) GFD Dennou Club, 2006. All rights reserved.
     7  ! License::   See COPYRIGHT[link:../../COPYRIGHT]
     8  !
     9  !== Overview
    10  !
    11  !引数に与えられた NAMELIST ファイルから, 格子点情報を取得し,
    12  !保管するための変数型モジュール
    13  !
    14  !== Error Handling
    15  !
    16  !== Known Bugs
    17  !
    18  !== Note
    19  !
    20  !== Future Plans
    21  !
    22  
    23  module gridset
    24    !
    25    !引数に与えられた NAMELIST ファイルから, 格子点情報を取得し,
    26    !保管するための変数参照型モジュール
    27    !
    28  
    29    !モジュール読み込み
    30    use dc_types,    only: DP, STRING
    31    use dc_iounit,   only: FileOpen
    32    use dc_message,  only: MessageNotify
    33    use mpi_wrapper, only: myrank
    34    use namelist_util, only: namelist_filename
    35  
    36    !暗黙の型宣言禁止
    37    implicit none
    38  
    39    !save 属性
    40    private
    41  
    42    !公開変数
    43    integer, public, save :: NX = 10 ! x 方向格子点数
    44    integer, public, save :: NY = 10 ! y 方向格子点数
    45    integer, public, save :: NZ = 10 ! z 方向格子点数
    46    integer, public, save :: NCMAX = 3  ! 組成配列要素数
    47    integer, public, save :: Xmg = 5 ! x 方向糊代格子点数
    48    integer, public, save :: Ymg = 5 ! y 方向糊代格子点数
    49    integer, public, save :: Zmg = 5 ! z 方向糊代格子点数
    50    integer, public, save :: imin    ! x 方向の配列の下限
    51    integer, public, save :: imax    ! x 方向の配列の上限
    52    integer, public, save :: jmin    ! y 方向の配列の下限
    53    integer, public, save :: jmax    ! y 方向の配列の下限
    54    integer, public, save :: kmin    ! z 方向の配列の下限
    55    integer, public, save :: kmax    ! z 方向の配列の下限
    56  
    57    public gridset_init
    58  
    59  contains
    60  
    61    subroutine gridset_init
    62      !
    63      !設定ファイルから情報を読み込み格子点数を計算する
    64      !
    65  
    66      !暗黙の型宣言禁止
    67      implicit none
    68  
    69      !内部変数
    70      integer            :: unit                !設定ファイル用装置番号
    71  
    72      !-----------------------------------------------------------------
    73      ! 設定ファイルから情報を読み込み
    74      !
    75      NAMELIST /gridset_nml/ NX, NY, NZ, NCMAX, Xmg, Ymg, Zmg
    76  
    77      call FileOpen(unit, file=namelist_filename, mode='r')
    78      read(unit, NML=gridset_nml)
    79      close(unit)
    80  
    81      if ( NX < xmg ) then
    82        call MessageNotify( "E", "gridset_init", "NX < Xmg" )
    83      end if
    84  
    85      if ( NY < ymg ) then
    86        call MessageNotify( "E", "gridset_init", "NY < Ymg" )
    87      end if
    88  
    89      if ( NZ < zmg ) then
    90        call MessageNotify( "E", "gridset_init", "NZ < Zmg" )
    91      end if
    92  
    93      !-----------------------------------------------------------------
    94      ! 配列の上限・下限を決める
    95      !
    96      imin = 1  - xmg
    97      imax = nx + xmg
    98      jmin = 1  - ymg
    99      jmax = ny + ymg
   100      kmin = 1  - zmg
   101      kmax = nz + zmg
   102  
   103      !-----------------------------------------------------------------
   104      !"myrank == 0" に該当する計算ノードが, 読み込んだ情報を出力
   105      !
   106      if (myrank == 0) then
   107        call MessageNotify( "M", "gridset_init", "NX = %d",   i=(/NX/) )
   108        call MessageNotify( "M", "gridset_init", "NY = %d",   i=(/NY/) )
   109        call MessageNotify( "M", "gridset_init", "NZ = %d",   i=(/NZ/) )
   110        call MessageNotify( "M", "gridset_init", "NCMAX = %d",   i=(/NCMAX/) )
   111        call MessageNotify( "M", "gridset_init", "xmg  = %d", i=(/Xmg/) )
   112        call MessageNotify( "M", "gridset_init", "ymg  = %d", i=(/Ymg/) )
   113        call MessageNotify( "M", "gridset_init", "zmg  = %d", i=(/Zmg/) )
   114        call MessageNotify( "M", "gridset_init", "imin = %d", i=(/imin/) )
   115        call MessageNotify( "M", "gridset_init", "imax = %d", i=(/imax/) )
   116        call MessageNotify( "M", "gridset_init", "jmin = %d", i=(/jmin/) )
   117        call MessageNotify( "M", "gridset_init", "jmax = %d", i=(/jmax/) )
   118        call MessageNotify( "M", "gridset_init", "kmin = %d", i=(/kmin/) )
   119        call MessageNotify( "M", "gridset_init", "kmax = %d", i=(/kmax/) )
   120      end if
   121    end subroutine gridset_init
   122  
   123  end module gridset
Linux  R2.6.5-7.282-sn2 FORTRAN90/SX         Rev.360        Tue Oct 11 12:33:24 2011
FILE NAME: gridset.f90
PROGRAM NAME: gridset
FORMAT LIST

  LINE    LOOP     FORTRAN STATEMENT

     1:            != Module GridSet
     2:            !
     3:            ! Authors::   SUGIYAMA Ko-ichiro, ODAKA Masatsugu
     4:            ! Version::   $Id: gridset.f90,v 1.6 2011-06-17 19:04:00 sugiyama Exp $ 
     5:            ! Tag Name::  $Name: arare5-20111010 $
     6:            ! Copyright:: Copyright (C) GFD Dennou Club, 2006. All rights reserved.
     7:            ! License::   See COPYRIGHT[link:../../COPYRIGHT]
     8:            !
     9:            !== Overview 
    10:            !
    11:            !引数に与えられた NAMELIST ファイルから, 格子点情報を取得し, 
    12:            !保管するための変数型モジュール
    13:            !
    14:            !== Error Handling
    15:            !
    16:            !== Known Bugs
    17:            !
    18:            !== Note
    19:            !
    20:            !== Future Plans
    21:            !
    22:            
    23:            module gridset
    24:              !
    25:              !引数に与えられた NAMELIST ファイルから, 格子点情報を取得し, 
    26:              !保管するための変数参照型モジュール
    27:              !
    28:            
    29:              !モジュール読み込み
    30:              use dc_types,    only: DP, STRING
    31:              use dc_iounit,   only: FileOpen
    32:              use dc_message,  only: MessageNotify
    33:              use mpi_wrapper, only: myrank
    34:              use namelist_util, only: namelist_filename
    35:              
    36:              !暗黙の型宣言禁止
    37:              implicit none
    38:              
    39:              !save 属性
    40:              private
    41:              
    42:              !公開変数
    43:              integer, public, save :: NX = 10 ! x 方向格子点数
    44:              integer, public, save :: NY = 10 ! y 方向格子点数
    45:              integer, public, save :: NZ = 10 ! z 方向格子点数
    46:              integer, public, save :: NCMAX = 3  ! 組成配列要素数
    47:              integer, public, save :: Xmg = 5 ! x 方向糊代格子点数
    48:              integer, public, save :: Ymg = 5 ! y 方向糊代格子点数
    49:              integer, public, save :: Zmg = 5 ! z 方向糊代格子点数
    50:              integer, public, save :: imin    ! x 方向の配列の下限 
    51:              integer, public, save :: imax    ! x 方向の配列の上限
    52:              integer, public, save :: jmin    ! y 方向の配列の下限 
    53:              integer, public, save :: jmax    ! y 方向の配列の下限 
    54:              integer, public, save :: kmin    ! z 方向の配列の下限 
    55:              integer, public, save :: kmax    ! z 方向の配列の下限 
    56:            
    57:              public gridset_init
    58:            
    59:            contains
    60:            
    61:              subroutine gridset_init
    62:                !
    63:                !設定ファイルから情報を読み込み格子点数を計算する
    64:                !
    65:            
    66:                !暗黙の型宣言禁止
    67:                implicit none
    68:            
    69:                !内部変数
    70:                integer            :: unit                !設定ファイル用装置番号
    71:            
    72:                !-----------------------------------------------------------------
    73:                ! 設定ファイルから情報を読み込み
    74:                !
    75:                NAMELIST /gridset_nml/ NX, NY, NZ, NCMAX, Xmg, Ymg, Zmg
    76:                
    77:                call FileOpen(unit, file=namelist_filename, mode='r')
    78:                read(unit, NML=gridset_nml)
    79:                close(unit)
    80:                
    81:                if ( NX < xmg ) then
    82:                  call MessageNotify( "E", "gridset_init", "NX < Xmg" )
    83:                end if
    84:                
    85:                if ( NY < ymg ) then
    86:                  call MessageNotify( "E", "gridset_init", "NY < Ymg" )
    87:                end if
    88:                
    89:                if ( NZ < zmg ) then
    90:                  call MessageNotify( "E", "gridset_init", "NZ < Zmg" )
    91:                end if
    92:            
    93:                !-----------------------------------------------------------------
    94:                ! 配列の上限・下限を決める
    95:                !
    96:                imin = 1  - xmg
    97:                imax = nx + xmg    
    98:                jmin = 1  - ymg
    99:                jmax = ny + ymg    
   100:                kmin = 1  - zmg
   101:                kmax = nz + zmg    
   102:                
   103:                !-----------------------------------------------------------------    
   104:                !"myrank == 0" に該当する計算ノードが, 読み込んだ情報を出力
   105:                !
   106:                if (myrank == 0) then 
   107:                  call MessageNotify( "M", "gridset_init", "NX = %d",   i=(/NX/) )
   108:                  call MessageNotify( "M", "gridset_init", "NY = %d",   i=(/NY/) )
   109:                  call MessageNotify( "M", "gridset_init", "NZ = %d",   i=(/NZ/) )
   110:                  call MessageNotify( "M", "gridset_init", "NCMAX = %d",   i=(/NCMAX/) )
   111:                  call MessageNotify( "M", "gridset_init", "xmg  = %d", i=(/Xmg/) )
   112:                  call MessageNotify( "M", "gridset_init", "ymg  = %d", i=(/Ymg/) )
   113:                  call MessageNotify( "M", "gridset_init", "zmg  = %d", i=(/Zmg/) )
   114:                  call MessageNotify( "M", "gridset_init", "imin = %d", i=(/imin/) )
   115:                  call MessageNotify( "M", "gridset_init", "imax = %d", i=(/imax/) )
   116:                  call MessageNotify( "M", "gridset_init", "jmin = %d", i=(/jmin/) )
   117:                  call MessageNotify( "M", "gridset_init", "jmax = %d", i=(/jmax/) )
   118:                  call MessageNotify( "M", "gridset_init", "kmin = %d", i=(/kmin/) )
   119:                  call MessageNotify( "M", "gridset_init", "kmax = %d", i=(/kmax/) )
   120:                end if
   121:              end subroutine gridset_init
   122:              
   123:            end module gridset
