78 real(RP),
public,
allocatable ::
ocean_t2 (:,:)
79 real(RP),
public,
allocatable ::
ocean_q2 (:,:)
84 real(RP),
public,
allocatable ::
atmos_w (:,:)
85 real(RP),
public,
allocatable ::
atmos_u (:,:)
86 real(RP),
public,
allocatable ::
atmos_v (:,:)
88 real(RP),
public,
allocatable ::
atmos_qv (:,:)
104 logical,
private :: ocean_vars_checkrange = .false.
106 integer,
private,
parameter :: vmax = 14
107 integer,
private,
parameter :: i_temp = 1
108 integer,
private,
parameter :: i_sfc_temp = 2
109 integer,
private,
parameter :: i_alb_lw = 3
110 integer,
private,
parameter :: i_alb_sw = 4
111 integer,
private,
parameter :: i_sfc_z0m = 5
112 integer,
private,
parameter :: i_sfc_z0h = 6
113 integer,
private,
parameter :: i_sfc_z0e = 7
114 integer,
private,
parameter :: i_sflx_mw = 8
115 integer,
private,
parameter :: i_sflx_mu = 9
116 integer,
private,
parameter :: i_sflx_mv = 10
117 integer,
private,
parameter :: i_sflx_sh = 11
118 integer,
private,
parameter :: i_sflx_lh = 12
119 integer,
private,
parameter :: i_sflx_wh = 13
120 integer,
private,
parameter :: i_sflx_evap = 14
122 character(len=H_SHORT),
private :: var_name(vmax)
123 character(len=H_MID),
private :: var_desc(vmax)
124 character(len=H_SHORT),
private :: var_unit(vmax)
126 data var_name /
'OCEAN_TEMP', &
140 data var_desc /
'temperature at uppermost ocean layer', &
141 'ocean surface skin temperature', &
142 'ocean surface albedo (longwave)', &
143 'ocean surface albedo (shortwave)', &
144 'ocean surface roughness length (momentum)', &
145 'ocean surface roughness length (heat)', &
146 'ocean surface roughness length (vapor)', &
147 'ocean surface w-momentum flux', &
148 'ocean surface u-momentum flux', &
149 'ocean surface v-momentum flux', &
150 'ocean surface sensible heat flux', &
151 'ocean surface latent heat flux', &
152 'ocean surface water heat flux', &
153 'ocean surface water vapor flux' /
154 data var_unit /
'K', &
180 namelist / param_ocean_vars / &
185 ocean_vars_checkrange
192 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[OCEAN] / Origin[SCALE-RM]' 275 if(
io_l )
write(
io_fid_log,*)
'*** Not found namelist. Default used.' 276 elseif( ierr > 0 )
then 277 write(*,*)
'xxx Not appropriate names in namelist PARAM_OCEAN_VARS. Check!' 283 if(
io_l )
write(
io_fid_log,*)
'*** List of prognostic variables (OCEAN) ***' 285 '*** |',
'VARNAME ',
'|',
'DESCRIPTION ',
'[',
'UNIT ',
']' 288 '*** NO.',iv,
'|',var_name(iv),
'|',var_desc(iv),
'[',var_unit(iv),
']' 320 if(
io_l )
write(
io_fid_log,*)
'*** Input restart file (OCEAN) ***' 357 if(
io_l )
write(
io_fid_log,*)
'*** restart file for ocean is not specified.' 374 character(len=20) :: timelabel
375 character(len=H_LONG) :: basename
384 if(
io_l )
write(
io_fid_log,*)
'*** Output restart file (OCEAN) ***' 390 var_name(i_temp), var_desc(i_temp), var_unit(i_temp), &
393 var_name(i_sfc_temp), var_desc(i_sfc_temp), var_unit(i_sfc_temp), &
396 var_name(i_alb_lw), var_desc(i_alb_lw), var_unit(i_alb_lw), &
399 var_name(i_alb_sw), var_desc(i_alb_sw), var_unit(i_alb_sw), &
402 var_name(i_sfc_z0m), var_desc(i_sfc_z0m), var_unit(i_sfc_z0m), &
405 var_name(i_sfc_z0h), var_desc(i_sfc_z0h), var_unit(i_sfc_z0h), &
408 var_name(i_sfc_z0e), var_desc(i_sfc_z0e), var_unit(i_sfc_z0e), &
411 var_name(i_sflx_mw), var_desc(i_sflx_mw), var_unit(i_sflx_mw), &
414 var_name(i_sflx_mu), var_desc(i_sflx_mu), var_unit(i_sflx_mu), &
417 var_name(i_sflx_mv), var_desc(i_sflx_mv), var_unit(i_sflx_mv), &
420 var_name(i_sflx_sh), var_desc(i_sflx_sh), var_unit(i_sflx_sh), &
423 var_name(i_sflx_lh), var_desc(i_sflx_lh), var_unit(i_sflx_lh), &
426 var_name(i_sflx_wh), var_desc(i_sflx_wh), var_unit(i_sflx_wh), &
429 var_name(i_sflx_evap), var_desc(i_sflx_evap), var_unit(i_sflx_evap), &
445 if ( ocean_vars_checkrange )
then 462 call hist_in(
ocean_temp(:,:), var_name(i_temp), var_desc(i_temp), var_unit(i_temp) )
463 call hist_in(
ocean_sfc_temp(:,:), var_name(i_sfc_temp), var_desc(i_sfc_temp), var_unit(i_sfc_temp) )
464 call hist_in(
ocean_sfc_albedo(:,:,i_lw), var_name(i_alb_lw), var_desc(i_alb_lw), var_unit(i_alb_lw) )
465 call hist_in(
ocean_sfc_albedo(:,:,i_sw), var_name(i_alb_sw), var_desc(i_alb_sw), var_unit(i_alb_sw) )
466 call hist_in(
ocean_sfc_z0m(:,:), var_name(i_sfc_z0m), var_desc(i_sfc_z0m), var_unit(i_sfc_z0m) )
467 call hist_in(
ocean_sfc_z0h(:,:), var_name(i_sfc_z0h), var_desc(i_sfc_z0h), var_unit(i_sfc_z0h) )
468 call hist_in(
ocean_sfc_z0e(:,:), var_name(i_sfc_z0e), var_desc(i_sfc_z0e), var_unit(i_sfc_z0e) )
470 call hist_in(
ocean_sflx_mw(:,:), var_name(i_sflx_mw), var_desc(i_sflx_mw), var_unit(i_sflx_mw) )
471 call hist_in(
ocean_sflx_mu(:,:), var_name(i_sflx_mu), var_desc(i_sflx_mu), var_unit(i_sflx_mu) )
472 call hist_in(
ocean_sflx_mv(:,:), var_name(i_sflx_mv), var_desc(i_sflx_mv), var_unit(i_sflx_mv) )
473 call hist_in(
ocean_sflx_sh(:,:), var_name(i_sflx_sh), var_desc(i_sflx_sh), var_unit(i_sflx_sh) )
474 call hist_in(
ocean_sflx_lh(:,:), var_name(i_sflx_lh), var_desc(i_sflx_lh), var_unit(i_sflx_lh) )
475 call hist_in(
ocean_sflx_wh(:,:), var_name(i_sflx_wh), var_desc(i_sflx_wh), var_unit(i_sflx_wh) )
476 call hist_in(
ocean_sflx_evap(:,:), var_name(i_sflx_evap), var_desc(i_sflx_evap), var_unit(i_sflx_evap) )
494 call stat_total( total,
ocean_temp(:,:), var_name(i_temp) )
495 call stat_total( total,
ocean_sfc_temp(:,:), var_name(i_sfc_temp) )
498 call stat_total( total,
ocean_sfc_z0m(:,:), var_name(i_sfc_z0m) )
499 call stat_total( total,
ocean_sfc_z0h(:,:), var_name(i_sfc_z0h) )
500 call stat_total( total,
ocean_sfc_z0e(:,:), var_name(i_sfc_z0e) )
502 call stat_total( total,
ocean_sflx_mw(:,:), var_name(i_sflx_mw) )
503 call stat_total( total,
ocean_sflx_mu(:,:), var_name(i_sflx_mu) )
504 call stat_total( total,
ocean_sflx_mv(:,:), var_name(i_sflx_mv) )
505 call stat_total( total,
ocean_sflx_sh(:,:), var_name(i_sflx_sh) )
506 call stat_total( total,
ocean_sflx_lh(:,:), var_name(i_sflx_lh) )
507 call stat_total( total,
ocean_sflx_wh(:,:), var_name(i_sflx_wh) )
520 OCEAN_SFC_albedo_in, &
526 real(RP),
intent(in) :: OCEAN_TEMP_in (
ia,
ja)
527 real(RP),
intent(in) :: OCEAN_SFC_TEMP_in (
ia,
ja)
528 real(RP),
intent(in) :: OCEAN_SFC_albedo_in(
ia,
ja,2)
529 real(RP),
intent(in) :: OCEAN_SFC_Z0M_in (
ia,
ja)
530 real(RP),
intent(in) :: OCEAN_SFC_Z0H_in (
ia,
ja)
531 real(RP),
intent(in) :: OCEAN_SFC_Z0E_in (
ia,
ja)
535 if(
io_l )
write(
io_fid_log,*)
'*** External Input file (ocean) ***' character(len=h_mid), public ocean_restart_out_dtype
REAL4 or REAL8.
real(rp), dimension(:,:), allocatable, public ocean_v10
ocean surface velocity v at 10m [m/s]
integer, public is
start point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public atmos_w
logical, public statistics_checktotal
calc&report variable totals to logfile?
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp_t
tendency of OCEAN_SFC_TEMP
integer, public je
end point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e_t
tendency of OCEAN_SFC_Z0E
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo [0-1]
real(rp), dimension(:,:), allocatable, public atmos_dens
integer, public const_i_lw
long-wave radiation index
subroutine, public prc_mpistop
Abort MPI.
real(rp), dimension(:,:,:), allocatable, public ocean_sfc_albedo_t
tendency of OCEAN_SFC_alebdo
logical, public io_l
output log or not? (this process)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
real(rp), dimension(:,:), allocatable, public ocean_temp
temperature at uppermost ocean layer [K]
subroutine, public ocean_vars_restart_write
Write ocean restart.
real(rp), dimension(:,:), allocatable, public atmos_v
subroutine, public ocean_vars_history
History output set for ocean variables.
real(rp), dimension(:,:), allocatable, public ocean_sflx_wh
ocean surface water heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public atmos_sflx_lw
real(rp), dimension(:,:), allocatable, public ocean_temp_t
tendency of OCEAN_TEMP
real(rp), public const_undef
real(rp), dimension(:,:), allocatable, public atmos_cossza
integer, public ia
of x whole cells (local, with HALO)
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m2/s]
subroutine, public time_gettimelabel(timelabel)
generate time label
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
real(rp), dimension(:,:), allocatable, public atmos_qv
subroutine, public ocean_vars_total
Budget monitor for ocean.
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h_t
tendency of OCEAN_SFC_Z0H
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public atmos_sflx_prec
subroutine, public ocean_vars_external_in(OCEAN_TEMP_in, OCEAN_SFC_TEMP_in, OCEAN_SFC_albedo_in, OCEAN_SFC_Z0M_in, OCEAN_SFC_Z0H_in, OCEAN_SFC_Z0E_in)
Input from External I/O.
real(rp), dimension(:,:), allocatable, public atmos_temp
subroutine, public ocean_vars_restart_read
Read ocean restart.
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_q2
ocean surface water vapor at 2m [kg/kg]
real(rp), dimension(:,:), allocatable, public atmos_u
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public atmos_sflx_sw
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
real(rp), dimension(:,:), allocatable, public atmos_pbl
logical, public io_lnml
output log or not? (for namelist, this process)
integer, public const_i_sw
short-wave radiation index
subroutine, public ocean_vars_setup
Setup.
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
character(len=h_long), public ocean_restart_in_basename
basename of the input file
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
character(len=h_long), public ocean_restart_out_basename
basename of the output file
integer, public io_fid_conf
Config file ID.
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m_t
tendency of OCEAN_SFC_Z0M
logical, public ocean_restart_output
output restart file?
integer, public io_fid_log
Log file ID.
real(rp), dimension(:,:), allocatable, public atmos_pres
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_u10
ocean surface velocity u at 10m [m/s]
real(rp), dimension(:,:), allocatable, public ocean_sflx_evap
ocean surface water vapor flux [kg/m2/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
real(rp), dimension(:,:), allocatable, public ocean_t2
ocean surface temperature at 2m [K]
character(len=h_mid), public ocean_restart_out_title
title of the output file
integer, public ja
of y whole cells (local, with HALO)