SCALE-RM
scale_land_grid_cartesC_index.F90
Go to the documentation of this file.
1 !-------------------------------------------------------------------------------
9 !-------------------------------------------------------------------------------
10 #include "scalelib.h"
12  !-----------------------------------------------------------------------------
13  !
14  !++ used modules
15  !
16  use scale_precision
17  use scale_io
18  use scale_prof
19  !-----------------------------------------------------------------------------
20  implicit none
21  private
22  !-----------------------------------------------------------------------------
23  !
24  !++ Public procedure
25  !
27 
28  !-----------------------------------------------------------------------------
29  !
30  !++ Public parameters & variables
31  !
32  integer, public :: lkmax = -1 ! # of computational cells: z for land
33  integer, public :: limax = -1 ! # of computational cells: x for land
34  integer, public :: ljmax = -1 ! # of computational cells: y for land
35  !$acc declare create(LKMAX, LIMAX, LJMAX)
36 
37  integer, public :: lka = -1 ! # of total grids: z for land, local
38  integer, public :: lks ! start point of inner domain: z for land, local
39  integer, public :: lke ! end point of inner domain: z for land, local
40 
41  integer, public :: lia ! # of total grids: x for land, local
42  integer, public :: lis ! start point of inner domain: x for land, local
43  integer, public :: lie ! end point of inner domain: x for land, local
44 
45  integer, public :: lja ! # of total grids: y for land, local
46  integer, public :: ljs ! start point of inner domain: y for land, local
47  integer, public :: lje ! end point of inner domain: y for land, local
48  !$acc declare create(LKA, LIA, LJA, LKS, LKE, LIS, LIE, LJS, LJE)
49 
50  !-----------------------------------------------------------------------------
51  !
52  !++ Private procedure
53  !
54  !-----------------------------------------------------------------------------
55  !
56  !++ Private parameters & variables
57  !
58  !-----------------------------------------------------------------------------
59 contains
60  !-----------------------------------------------------------------------------
63  use scale_prc, only: &
64  prc_abort
66  imax, &
67  ia, is, ie, &
68  jmax, &
69  ja, js, je
70  implicit none
71 
72  namelist / param_land_grid_cartesc_index / &
73  lkmax
74 
75  integer :: ierr
76  !---------------------------------------------------------------------------
77 
78  log_newline
79  log_info("LAND_GRID_CARTESC_INDEX_setup",*) 'Setup'
80 
81  !--- read namelist
82  rewind(io_fid_conf)
83  read(io_fid_conf,nml=param_land_grid_cartesc_index,iostat=ierr)
84  if( ierr < 0 ) then !--- missing
85  log_info("LAND_GRID_CARTESC_INDEX_setup",*) 'Not found namelist. Default used.'
86  elseif( ierr > 0 ) then !--- fatal error
87  log_error("LAND_GRID_CARTESC_INDEX_setup",*) 'Not appropriate names in namelist PARAM_LAND_GRID_CARTESC_INDEX. Check!'
88  call prc_abort
89  endif
90  log_nml(param_land_grid_cartesc_index)
91 
92  if ( lkmax < 1 ) then
93  log_error("LAND_GRID_CARTESC_INDEX_setup",*) 'LKMAX must be >= 1 ', lkmax
94  call prc_abort
95  end if
96 
97  lks = 1
98  lke = lkmax
99  lka = lkmax
100 
101  log_newline
102  log_info("LAND_GRID_CARTESC_INDEX_setup",*) 'Land grid index information '
103  log_info_cont('(1x,A,I6,A,I6,A,I6)') 'z-axis levels :', lkmax
104 
105  ! at this moment horizontal grid is same as that in atmosphere
106  limax = imax
107  lia = ia
108  lis = is
109  lie = ie
110 
111  ljmax = jmax
112  lja = ja
113  ljs = js
114  lje = je
115 
116  !$acc update device(LKMAX, LIMAX, LJMAX)
117  !$acc update device(LKA, LIA, LJA, LKS, LKE, LIS, LIE, LJS, LJE)
118 
119  return
120  end subroutine land_grid_cartesc_index_setup
121 
module atmosphere / grid / cartesC index
integer, public ie
end point of inner domain: x, local
integer, public je
end point of inner domain: y, local
integer, public is
start point of inner domain: x, local
integer, public js
start point of inner domain: y, local
module STDIO
Definition: scale_io.F90:10
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
module land / grid / cartesianC / index
subroutine, public land_grid_cartesc_index_setup
Setup.
module PROCESS
Definition: scale_prc.F90:11
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
module PRECISION
module profiler
Definition: scale_prof.F90:11