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
logical, public file_aggregate
module ocean / grid / icosahedralA
integer, public io_fid_conf
Config file ID.
subroutine, public file_open(basename, fid, mode, single, aggregate, rankid, postfix)
module ocean / grid / icosahedralA / index
real(rp), dimension(:), allocatable, public ocean_grid_icoa_cz
center coordinate [m]: z, local=global
integer, public prc_myrank
process num in local communicator
subroutine, public prc_abort
Abort Process.
real(rp), dimension(:), allocatable, public ocean_grid_icoa_cdz
z-length of control volume [m]
real(rp), dimension(:), allocatable, public ocean_grid_icoa_fz
face coordinate [m]: z, local=global
module atmosphere / grid / icosahedralA / index
subroutine, public ocean_grid_icoa_setup
Setup.