SCALE-RM
scale_ocean_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 :: okmax = -1 ! # of computational cells: z for ocean
33  integer, public :: oimax = -1 ! # of computational cells: x for ocean
34  integer, public :: ojmax = -1 ! # of computational cells: y for ocean
35  !$acc declare create(OKMAX,OIMAX,OJMAX)
36 
37  integer, public :: oka = -1 ! # of total grids: z for ocean, local
38  integer, public :: oks ! start point of inner domain: z for ocean, local
39  integer, public :: oke ! end point of inner domain: z for ocean, local
40  !$acc declare create(OKA,OKS,OKE)
41 
42  integer, public :: oia ! # of total grids: x for ocean, local
43  integer, public :: ois ! start point of inner domain: x for ocean, local
44  integer, public :: oie ! end point of inner domain: x for ocean, local
45  !$acc declare create(OIA,OIS,OIE)
46 
47  integer, public :: oja ! # of total grids: y for ocean, local
48  integer, public :: ojs ! start point of inner domain: y for ocean, local
49  integer, public :: oje ! end point of inner domain: y for ocean, local
50  !$acc declare create(OJA,OJS,OJE)
51 
52  !-----------------------------------------------------------------------------
53  !
54  !++ Private procedure
55  !
56  !-----------------------------------------------------------------------------
57  !
58  !++ Private parameters & variables
59  !
60  !-----------------------------------------------------------------------------
61 contains
62  !-----------------------------------------------------------------------------
65  use scale_prc, only: &
66  prc_abort
68  imax, &
69  ia, is, ie, &
70  jmax, &
71  ja, js, je
72  implicit none
73 
74  namelist / param_ocean_grid_cartesc_index / &
75  okmax
76 
77  integer :: ierr
78  !---------------------------------------------------------------------------
79 
80  log_newline
81  log_info("OCEAN_GRID_CARTESC_INDEX_setup",*) 'Setup'
82 
83  !--- read namelist
84  rewind(io_fid_conf)
85  read(io_fid_conf,nml=param_ocean_grid_cartesc_index,iostat=ierr)
86  if( ierr < 0 ) then !--- missing
87  log_info("OCEAN_GRID_CARTESC_INDEX_setup",*) 'Not found namelist. Default used.'
88  elseif( ierr > 0 ) then !--- fatal error
89  log_error("OCEAN_GRID_CARTESC_INDEX_setup",*) 'Not appropriate names in namelist PARAM_OCEAN_GRID_CARTESC_INDEX. Check!'
90  call prc_abort
91  endif
92  log_nml(param_ocean_grid_cartesc_index)
93 
94  if ( okmax < 1 ) then
95  log_error("OCEAN_GRID_CARTESC_INDEX_setup",*) 'OKMAX must be >= 1 ', okmax
96  call prc_abort
97  end if
98 
99  oka = okmax
100  oks = 1
101  oke = okmax
102 
103  log_newline
104  log_info("OCEAN_GRID_CARTESC_INDEX_setup",*) 'Ocean grid index information '
105  log_info_cont('(1x,A,I6,A,I6,A,I6)') 'z-axis levels :', okmax
106 
107 
108  ! at this moment horizontal grid is same as that in atmosphere
109  oimax = imax
110  oia = ia
111  ois = is
112  oie = ie
113 
114  ojmax = jmax
115  oja = ja
116  ojs = js
117  oje = je
118 
119  !$acc update device(OKMAX,OIMAX,OJMAX)
120  !$acc update device(OKA,OKS,OKE)
121  !$acc update device(OIA,OIS,OIE)
122  !$acc update device(OJA,OJS,OJE)
123 
124  return
125  end subroutine ocean_grid_cartesc_index_setup
126 
scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:350
scale_ocean_grid_cartesc_index::oke
integer, public oke
Definition: scale_ocean_grid_cartesC_index.F90:39
scale_ocean_grid_cartesc_index::oie
integer, public oie
Definition: scale_ocean_grid_cartesC_index.F90:44
scale_precision
module PRECISION
Definition: scale_precision.F90:14
scale_ocean_grid_cartesc_index::oka
integer, public oka
Definition: scale_ocean_grid_cartesC_index.F90:37
scale_ocean_grid_cartesc_index::okmax
integer, public okmax
Definition: scale_ocean_grid_cartesC_index.F90:32
scale_ocean_grid_cartesc_index::ois
integer, public ois
Definition: scale_ocean_grid_cartesC_index.F90:43
scale_atmos_grid_cartesc_index::imax
integer, public imax
Definition: scale_atmos_grid_cartesC_index.F90:37
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_ocean_grid_cartesc_index::oje
integer, public oje
Definition: scale_ocean_grid_cartesC_index.F90:49
scale_atmos_grid_cartesc_index::ie
integer, public ie
end point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:54
scale_io
module STDIO
Definition: scale_io.F90:10
scale_ocean_grid_cartesc_index::oja
integer, public oja
Definition: scale_ocean_grid_cartesC_index.F90:47
scale_atmos_grid_cartesc_index
module atmosphere / grid / cartesC index
Definition: scale_atmos_grid_cartesC_index.F90:12
scale_atmos_grid_cartesc_index::ia
integer, public ia
Definition: scale_atmos_grid_cartesC_index.F90:48
scale_prof
module profiler
Definition: scale_prof.F90:11
scale_atmos_grid_cartesc_index::is
integer, public is
start point of inner domain: x, local
Definition: scale_atmos_grid_cartesC_index.F90:53
scale_ocean_grid_cartesc_index
module ocean / grid / cartesianC / index
Definition: scale_ocean_grid_cartesC_index.F90:11
scale_atmos_grid_cartesc_index::ja
integer, public ja
Definition: scale_atmos_grid_cartesC_index.F90:49
scale_ocean_grid_cartesc_index::ocean_grid_cartesc_index_setup
subroutine, public ocean_grid_cartesc_index_setup
Setup.
Definition: scale_ocean_grid_cartesC_index.F90:65
scale_ocean_grid_cartesc_index::oimax
integer, public oimax
Definition: scale_ocean_grid_cartesC_index.F90:33
scale_atmos_grid_cartesc_index::jmax
integer, public jmax
Definition: scale_atmos_grid_cartesC_index.F90:38
scale_atmos_grid_cartesc_index::js
integer, public js
start point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:55
scale_ocean_grid_cartesc_index::ojs
integer, public ojs
Definition: scale_ocean_grid_cartesC_index.F90:48
scale_ocean_grid_cartesc_index::oia
integer, public oia
Definition: scale_ocean_grid_cartesC_index.F90:42
scale_ocean_grid_cartesc_index::ojmax
integer, public ojmax
Definition: scale_ocean_grid_cartesC_index.F90:34
scale_io::io_fid_conf
integer, public io_fid_conf
Config file ID.
Definition: scale_io.F90:57
scale_atmos_grid_cartesc_index::je
integer, public je
end point of inner domain: y, local
Definition: scale_atmos_grid_cartesC_index.F90:56
scale_ocean_grid_cartesc_index::oks
integer, public oks
Definition: scale_ocean_grid_cartesC_index.F90:38