Go to the documentation of this file.
43 private :: ocean_grid_icoa_read
44 private :: ocean_grid_icoa_generate
50 integer,
private,
parameter :: fz_max = 100
51 real(
rp),
private :: fz(fz_max)
53 character(len=H_LONG) :: ocean_grid_icoa_in_basename =
''
54 logical :: ocean_grid_icoa_in_aggregate
67 namelist / param_ocean_grid_icoa / &
68 ocean_grid_icoa_in_basename, &
69 ocean_grid_icoa_in_aggregate, &
77 log_info(
"OCEAN_GRID_ICOA_setup",*)
'Setup'
80 log_info(
"OCEAN_GRID_ICOA_setup",*)
'Skip because OKMAX < 1'
90 read(
io_fid_conf,nml=param_ocean_grid_icoa,iostat=ierr)
92 log_info(
"OCEAN_GRID_ICOA_setup",*)
'Not found namelist. Default used.'
93 elseif( ierr > 0 )
then
94 log_error(
"OCEAN_GRID_ICOA_setup",*)
'Not appropriate names in namelist PARAM_OCEAN_GRID_ICOA. Check!'
97 log_nml(param_ocean_grid_icoa)
104 log_info(
"OCEAN_GRID_ICOA_setup",*)
'Ocean grid information '
106 if ( ocean_grid_icoa_in_basename /=
'' )
then
107 call ocean_grid_icoa_read
109 log_info(
"OCEAN_GRID_ICOA_setup",*)
'Not found input grid file. Grid position is calculated.'
111 call ocean_grid_icoa_generate
119 log_info(
"OCEAN_GRID_ICOA_setup",
'(1x,A)')
'Vertical Coordinate'
120 log_info_cont(
'(1x,A)')
'| k z zh dz k |'
121 log_info_cont(
'(1x,A)')
'| [m] [m] [m] |'
123 log_info_cont(
'(1x,A,F8.3,A,I4,A)')
'| ',
ocean_grid_icoa_fz(k),
' ',k,
' | Atmosphere interface'
125 log_info_cont(
'(1x,A,I4,F8.3,A,F8.3,A)')
'|',k,
ocean_grid_icoa_cz(k),
' ',
ocean_grid_icoa_cdz(k),
' | '
129 log_info_cont(
'(1x,A,I4,F8.3,A,F8.3,A)')
'|',k,
ocean_grid_icoa_cz(k),
' ',
ocean_grid_icoa_cdz(k),
' | '
130 log_info_cont(
'(1x,A,F8.3,A,I4,A)')
'| ',
ocean_grid_icoa_fz(k),
' ',k,
' | layer of no motion'
131 log_info_cont(
'(1x,A)')
'|=================================|'
139 subroutine ocean_grid_icoa_read
151 log_info(
"OCEAN_GRID_ICOA_read",*)
'Input ocean grid file '
153 call file_open( ocean_grid_icoa_in_basename, fid, rankid=
prc_myrank, aggregate=ocean_grid_icoa_in_aggregate )
160 end subroutine ocean_grid_icoa_read
165 subroutine ocean_grid_icoa_generate
171 if (
oka == 1 .and. fz(1) == 0.0_rp )
then
185 end subroutine ocean_grid_icoa_generate
real(rp), dimension(:), allocatable, public ocean_grid_icoa_fz
face coordinate [m]: z, local=global
subroutine, public prc_abort
Abort Process.
integer, public prc_myrank
process num in local communicator
integer, parameter, public rp
real(rp), dimension(:), allocatable, public ocean_grid_icoa_cz
center coordinate [m]: z, local=global
subroutine, public file_open(basename, fid, mode, single, aggregate, rankid, postfix)
logical, public file_aggregate
real(rp), dimension(:), allocatable, public ocean_grid_icoa_cdz
z-length of control volume [m]
module ocean / grid / icosahedralA
module atmosphere / grid / icosahedralA / index
module ocean / grid / icosahedralA / index
integer, public io_fid_conf
Config file ID.
subroutine, public ocean_grid_icoa_setup
Setup.