Go to the documentation of this file.
47 real(RP),
private,
allocatable :: WSTR (:,:)
48 real(RP),
private,
allocatable :: QVEF (:,:)
49 real(RP),
private,
allocatable :: SR (:,:)
50 real(RP),
private,
allocatable :: ATMOS_W(:,:)
98 log_info(
"OCEAN_driver_setup",*)
'Setup'
110 log_error(
"OCEAN_driver_setup",*)
'OCEAN_DYN_TYPE is invalid: ', trim(
ocean_dyn_type)
115 case (
'FIXED-TEMP' )
118 log_error(
"OCEAN_driver_setup",*)
'OCEAN_SFC_TYPE is invalid: ', trim(
ocean_sfc_type)
128 log_error(
"OCEAN_driver_setup",*)
'OCEAN_ICE_TYPE is invalid: ', trim(
ocean_ice_type)
134 case (
'NAKAJIMA00' )
143 log_error(
"OCEAN_driver_setup",*)
'OCEAN_ALB_TYPE is invalid: ', trim(
ocean_alb_type)
160 log_error(
"OCEAN_driver_setup",*)
'OCEAN_RGN_TYPE is invalid: ', trim(
ocean_rgn_type)
170 allocate( atmos_w(
oia,
oja) )
178 atmos_w(:,:) = 0.0_rp
200 hydrometeor_lhv => atmos_hydrometeor_lhv, &
201 hydrometeor_lhs => atmos_hydrometeor_lhs, &
234 bulkflux_diagnose_scales
310 logical,
intent(in) :: force
314 real(rp) :: atmos_uabs (
oia,
oja)
315 real(rp) :: sfc_temp (
oia,
oja)
317 real(rp) :: sfc_z0m (
oia,
oja)
318 real(rp) :: sfc_z0h (
oia,
oja)
319 real(rp) :: sfc_z0e (
oia,
oja)
320 real(rp) :: subsfc_temp (
oia,
oja)
321 real(rp) :: tc_dz (
oia,
oja)
322 real(rp) :: sflx_mw (
oia,
oja)
323 real(rp) :: sflx_mu (
oia,
oja)
324 real(rp) :: sflx_mv (
oia,
oja)
325 real(rp) :: sflx_sh (
oia,
oja)
326 real(rp) :: sflx_lh (
oia,
oja)
327 real(rp) :: sflx_qv (
oia,
oja)
328 real(rp) :: ocean_sflx_qv(
oia,
oja)
333 real(rp) :: sflx_hbalance(
oia,
oja)
334 real(rp) :: sflx_gh (
oia,
oja)
335 real(rp) :: sflx_water (
oia,
oja)
336 real(rp) :: sflx_engi (
oia,
oja)
337 real(rp) :: ice_mass (
oia,
oja)
338 logical :: exists_ice (
oia,
oja)
343 integer ::
k, i, j, iq, idir, irgn
361 exists_ice(i,j) = .false.
362 if( exists_ocean(i,j) .AND.
ocean_ice_frac(i,j) > 0.0_rp ) exists_ice(i,j) = .true.
412 case (
'NAKAJIMA00' )
416 sfc_albedo(:,:,:,:) )
425 sfc_albedo(:,:,:,:) )
432 if ( exists_ocean(i,j) )
then
471 case (
'FIXED-TEMP' )
495 sfc_albedo(:,:,:,:), &
507 ocean_sflx_qv(:,:), &
523 if ( exists_ocean(i,j) )
then
536 call file_history_in(
ocean_u10(:,:),
'OCEAN_OCN_U10',
'Wind velocity u at 10 m on open ocean surface',
'm/s' )
537 call file_history_in(
ocean_v10(:,:),
'OCEAN_OCN_V10',
'Wind velocity v at 10 m on open ocean surface',
'm/s' )
538 call file_history_in(
ocean_t2(:,:),
'OCEAN_OCN_T2',
'Air temperature at 2m on open ocean surface',
'K' )
539 call file_history_in(
ocean_q2(:,:),
'OCEAN_OCN_Q2',
'Specific humidity at 2m on open ocean surface',
'kg/kg' )
545 if ( exists_ocean(i,j) )
then
557 ocean_sflx_qv(i,j) = ocean_sflx_qv(i,j) * sfc_frac
592 case (
'NAKAJIMA00' )
595 sfc_albedo(:,:,:,:) )
599 sfc_albedo(:,:,:,:) )
615 case (
'MILLER92',
'MOON07' )
649 case (
'FIXED-TEMP' )
653 if ( exists_ocean(i,j) )
then
682 sfc_albedo(:,:,:,:), &
710 if ( exists_ocean(i,j) )
then
722 if ( exists_ocean(i,j) )
then
731 ocean_sflx_qv(i,j) = ocean_sflx_qv(i,j) + sflx_qv(i,j) *
ocean_ice_frac(i,j)
754 if ( exists_ocean(i,j) )
then
755 ocean_sfc_albedo(i,j,idir,irgn) =
ocean_sfc_albedo(i,j,idir,irgn) + sfc_albedo(i,j,idir,irgn) *
ocean_ice_frac(i,j)
770 if ( exists_ocean(i,j) )
then
771 sflx_hbalance(i,j) = sflx_gh(i,j) + sflx_engi(i,j)
779 sflx_hbalance(:,:), &
796 if ( exists_ocean(i,j) )
then
798 sflx_water(i,j) = 0.0_rp
799 sflx_engi(i,j) = 0.0_rp
806 call file_history_in( u10(:,:),
'OCEAN_ICE_U10',
'Wind velocity u at 10 m on sea ice surface',
'm/s' )
807 call file_history_in( v10(:,:),
'OCEAN_ICE_V10',
'Wind velocity v at 10 m on sea ice surface',
'm/s' )
808 call file_history_in( t2(:,:),
'OCEAN_ICE_T2',
'Air temperature at 2m on sea ice surface',
'K' )
809 call file_history_in( q2(:,:),
'OCEAN_ICE_Q2',
'Specific humidity at 2m on sea ice surface',
'kg/kg' )
815 if ( exists_ocean(i,j) )
then
829 mask = exists_ocean(:,:) )
840 if ( exists_ocean(i,j) )
then
856 ocean_grid_cartesc_real_vol(:,:,:), &
857 ocean_grid_cartesc_real_totvol )
920 real(rp) :: mass_flux(
oia,
oja)
921 real(rp) :: engi_flux(
oia,
oja)
922 real(rp) :: mass_supl(
oia,
oja)
923 real(rp) :: engi_supl(
oia,
oja)
925 real(rp) :: sflx_gh(
oia,
oja)
950 if ( exists_ocean(i,j) )
then
971 if ( exists_ocean(i,j) )
then
998 if ( exists_ocean(i,j) )
then
1008 exists_ocean(:,:), &
1021 if ( exists_ocean(i,j) )
then
1125 logical,
intent(in) :: countup
1147 exists_ocean(:,:), &
integer, parameter, public n_rad_dir
subroutine, public ocean_dyn_offline_setup
Setup.
subroutine, public ocean_dyn_slab(OKMAX, OKS, OKE, OIA, OIS, OIE, OJA, OJS, OJE, OCEAN_TEMP_t, OCEAN_SFLX_G, OCEAN_SFLX_water, calc_flag, dt, NOWDAYSEC, OCEAN_TEMP, MASS_SUPL, ENGI_SUPL)
Slab ocean model.
real(rp), dimension(:,:), allocatable, public ocean_ocn_z0m
surface roughness length for momentum, open ocean [m]
subroutine, public ocean_phy_roughness_seaice(OIA, OIS, OIE, OJA, OJS, OJE, Z0M, Z0H, Z0E)
real(rp), dimension(:,:), allocatable, public ocean_sflx_mv
ocean surface v-momentum flux [kg/m/s2]
module ocean / dynamics / offline
subroutine, public ocean_phy_albedo_const(OIA, OIS, OIE, OJA, OJS, OJE, SFC_albedo)
subroutine, public ocean_driver_update
Ocean step.
character(len=h_short), public ocean_ice_type
real(dp), public time_nowdaysec
second of current time [sec]
real(rp), dimension(:,:), allocatable, public ocean_sflx_mu
ocean surface u-momentum flux [kg/m/s2]
subroutine, public prc_abort
Abort Process.
integer, parameter, public i_r_direct
real(rp), dimension(:,:), allocatable, public atmos_pbl
real(rp), dimension(:,:), allocatable, public ocean_ice_temp
sea ice temperature [K]
real(rp), dimension(:,:), pointer, public ocean_oflx_water
ocean-ice surface water mass flux [kg/m2/s]
real(rp), public ocean_grid_cartesc_real_totarea
total area
real(rp), dimension(:,:), allocatable, public atmos_sflx_engi
subroutine, public ocean_phy_ice_adjustment(OIA, OIS, OIE, OJA, OJS, OJE, calc_flag, OCEAN_DEPTH, OCEAN_TEMP, ICE_TEMP, ICE_MASS, MASS_FLUX, ENGI_FLUX, MASS_SUPL, ENGI_SUPL)
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0e
ocean surface roughness length for vapor [m]
character(len=h_short), public ocean_alb_type
module ocean / physics / ice / simple
real(rp), dimension(:,:), allocatable, public ocean_sflx_mw
ocean surface w-momentum flux [kg/m/s2]
real(rp), dimension(:,:,:), allocatable, public ocean_salt_t
tendency of OCEAN_OCN_SALT
real(rp), dimension(:,:), allocatable, public atmos_grid_cartesc_real_z1
Height of the lowermost grid from surface (cell center) [m].
integer, parameter, public i_r_diffuse
real(rp), dimension(:,:), allocatable, public ocean_ice_rlmo
real(rp), dimension(:,:), allocatable, public ocean_q2
ocean surface water vapor at 2m [kg/kg]
subroutine, public ocean_surface_get
Get surface boundary from other model.
subroutine, public ocean_phy_albedo_nakajima00_setup
integer, parameter, public i_r_ir
real(rp), dimension(:,:), allocatable, target, public ocean_ustar
ocean surface friction velocity [m/s]
real(rp), public const_eps
small number
subroutine, public ocean_phy_albedo_const_setup
subroutine, public ocean_phy_roughness_const(OIA, OIS, OIE, OJA, OJS, OJE, Z0M, Z0H, Z0E)
real(rp), dimension(:,:,:), allocatable, public ocean_temp_t
tendency of OCEAN_OCN_TEMP
subroutine, public prof_rapstart(rapname_base, level, disable_barrier)
Start raptime.
real(rp), dimension(:,:), allocatable, public atmos_cossza
module atmosphere / hydrometeor
real(rp), dimension(:,:), allocatable, public ocean_ice_wstar
module ocean / physics / surface roughness length / moon07
real(rp), dimension(:,:), allocatable, public ocean_ice_qstar
subroutine, public atmos_phy_ch_driver_ocean_flux(SFLX_QTRC)
Driver.
real(rp), dimension(:,:), allocatable, public ocean_v10
ocean surface velocity v at 10m [m/s]
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0m
ocean surface roughness length for momentum [m]
logical, public atmos_hydrometeor_dry
subroutine, public cpl_phy_sfc_fixed_temp_setup
Setup.
module ocean / physics / surface albedo / nakajima00
subroutine, public ocean_phy_tc_seaice_setup
real(rp), dimension(:,:,:), allocatable, public ocean_sflx_qtrc
ocean surface tracer flux [kg/m2/s]
module ocean / grid / cartesianC
real(rp), dimension(:,:), allocatable, public ocean_grid_cartesc_real_area
area of grid cell
module Atmosphere GRID CartesC Real(real space)
real(rp), dimension(:,:), allocatable, public ocean_sflx_sh
ocean surface sensible heat flux [J/m2/s]
real(rp), dimension(:,:), pointer, public ocean_ocn_tstar
real(rp), dimension(:,:), pointer, public ocean_ocn_ustar
subroutine, public ocean_dyn_slab_setup(DEPTH)
Setup.
subroutine, public ocean_surface_set(countup)
Put surface boundary to other model.
subroutine, public ocean_phy_roughness_moon07_setup
real(rp), dimension(:,:), pointer, public ocean_oflx_gh
ocean-ice surface water heat flux [J/m2/s]
real(rp), dimension(:,:), allocatable, target, public ocean_sflx_gh
ocean surface water heat flux [J/m2/s]
character(len=h_short), public ocean_sfc_type
real(rp), dimension(:,:,:), allocatable, public ocean_vvel_t
tendency of OCEAN_OCN_VVEL
real(rp), dimension(:,:), pointer, public ocean_ocn_qstar
subroutine, public ocean_phy_roughness_miller92_setup
subroutine, public ocean_phy_roughness_miller92(OIA, OIS, OIE, OJA, OJS, OJE, Uabs, Z0M, Z0H, Z0E)
real(rp), dimension(:,:), allocatable, public ocean_engi_supl
real(rp), dimension(:,:), allocatable, public atmos_sflx_water
real(rp), dimension(:,:), allocatable, public ocean_sfc_z0h
ocean surface roughness length for heat [m]
real(rp), dimension(:,:,:), allocatable, public ocean_uvel_t
tendency of OCEAN_OCN_UVEL
subroutine, public ocean_phy_albedo_nakajima00(OIA, OIS, OIE, OJA, OJS, OJE, cosSZA, SFC_albedo)
real(rp), dimension(:,:,:), allocatable, public ocean_uvel
ocean zonal velocity [m/s]
character(len=h_short), public ocean_dyn_type
subroutine, public ocean_phy_albedo_seaice_setup
real(rp), dimension(:,:,:,:), allocatable, public atmos_sflx_rad_dn
module ocean / physics / surface thermal conductivity
subroutine, public cpl_putocn(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_GH, SFLX_QTRC, U10, V10, T2, Q2, mask, countup)
real(rp), dimension(:,:), allocatable, public atmos_sfc_dens
real(rp), dimension(:,:), allocatable, public ocean_ice_temp_t
tendency of OCEAN_ICE_TEMP
real(rp), public const_huge
huge number
character(len=h_short), public ocean_rgn_type
module ocean / physics / surface albedo
subroutine, public ocean_driver_calc_tendency(force)
Calculate tendency.
real(rp), dimension(:), allocatable, public ocean_grid_cartesc_cdz
z-length of control volume [m]
real(rp), dimension(:,:), allocatable, target, public ocean_tstar
ocean surface tempreture scale [K]
real(dp), public time_dtsec_ocean
time interval of ocean step [sec]
real(rp), dimension(:,:), allocatable, public atmos_temp
module ocean / grid / cartesianC / index
logical, public atmos_sw_phy_ch
subroutine, public ocean_phy_tc_seaice(OIA, OIS, OIE, OJA, OJS, OJE, ICE_MASS, ICE_FRAC, mask, TC_dz)
real(rp), dimension(:,:), pointer, public ocean_ocn_rlmo
subroutine, public ocean_phy_albedo_seaice(OIA, OIS, OIE, OJA, OJS, OJE, SFC_albedo)
real(rp), dimension(:,:), allocatable, target, public ocean_wstar
ocean surface convective velocity scale [m/s]
module ocean / physics / surface roughness length
real(rp), dimension(:,:), allocatable, public ocean_mass_supl
real(rp), dimension(:,:), pointer, public ocean_oflx_engi
ocean-ice surface internal energy flux [J/m2/s]
real(rp), dimension(:,:), allocatable, target, public ocean_sflx_water
ocean surface water mass flux [kg/m2/s]
subroutine, public ocean_phy_ice_simple(OIA, OIS, OIE, OJA, OJS, OJE, iflx_water, iflx_hbalance, subsfc_temp, TC_dz, ICE_TEMP, ICE_MASS, ICE_FRAC, calc_flag, dt, ICE_TEMP_t, ICE_MASS_t, sflx_G, sflx_water, sflx_RHOE)
Slab ocean model.
subroutine, public ocean_dyn_offline(OKMAX, OKS, OKE, OIA, OIS, OIE, OJA, OJS, OJE, calc_flag, dt, NOWDAYSEC, OCEAN_TEMP)
Slab ocean model.
real(rp), dimension(:,:), allocatable, public ocean_ice_tstar
logical, dimension(:,:), allocatable, public landuse_exists_ocean
ocean calculation flag
module ATMOSPHERE / Physics Chemistry
real(rp), dimension(:,:), allocatable, public ocean_ice_mass
sea ice mass [kg]
real(rp), dimension(:,:,:), allocatable, public ocean_grid_cartesc_real_vol
volume of grid cell
real(rp), dimension(:,:,:), allocatable, public ocean_vvel
ocean meridional velocity [m/s]
logical, public statistics_checktotal
calc&report variable totals to logfile?
module coupler / surface-atmospehre
subroutine, public ocean_driver_setup
Setup.
real(rp), dimension(:,:), allocatable, target, public ocean_sflx_engi
ocean surface internal energy flux [J/m2/s]
integer, parameter, public i_r_vis
subroutine, public ocean_phy_ice_setup
real(rp), dimension(:,:), allocatable, public atmos_v
subroutine, public cpl_getatm_ocn(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI)
real(rp), dimension(:,:,:,:), allocatable, public ocean_sfc_albedo
ocean surface albedo (direct/diffuse,IR/near-IR/VIS) (0-1)
real(rp), dimension(:,:), allocatable, public atmos_dens
subroutine, public ocean_phy_roughness_seaice_setup
subroutine, public cpl_phy_sfc_fixed_temp(IA, IS, IE, JA, JS, JE, TMPA, PRSA, WA, UA, VA, RHOA, QVA, LH, Z1, PBL, RHOS, PRSS, RFLXD, TMPS, WSTR, QVEF, ALBEDO, Rb, Z0M, Z0H, Z0E, calc_flag, dt, ZMFLX, XMFLX, YMFLX, SHFLX, LHFLX, QVFLX, GFLX, Ustar, Tstar, Qstar, Wstar, RLmo, U10, V10, T2, Q2)
real(rp), dimension(:,:), allocatable, public ocean_sfc_temp
ocean surface skin temperature [K]
real(rp), public lhf
latent heat of fusion for use [J/kg]
subroutine, public ocean_phy_roughness_const_setup
subroutine, public ocean_phy_ice_fraction(OIA, OIS, OIE, OJA, OJS, OJE, ICE_MASS, ICE_FRAC)
subroutine, public prof_rapend(rapname_base, level, disable_barrier)
Save raptime.
module ocean / grid / cartesianC / real
real(rp), dimension(:,:), allocatable, target, public ocean_rlmo
ocean surface inversed Obukhov length [1/m]
real(rp), dimension(:,:), allocatable, public ocean_ice_frac
area fraction of sea ice [1]
real(rp), dimension(:,:), allocatable, public ocean_sflx_lh
ocean surface latent heat flux [J/m2/s]
real(rp), dimension(:,:,:), allocatable, public ocean_salt
ocean salinity [PSU]
real(rp), dimension(:,:), allocatable, public ocean_ice_mass_t
tendency of OCEAN_ICE_MASS
real(rp), dimension(:,:), allocatable, public atmos_pres
integer, parameter, public n_rad_rgn
real(rp), dimension(:,:), allocatable, public ocean_u10
ocean surface velocity u at 10m [m/s]
real(rp), dimension(:,:), allocatable, public atmos_u
real(rp), dimension(:,:), pointer, public ocean_ocn_wstar
module ocean / physics / surface roughness length / miller92
real(rp), dimension(:,:), allocatable, target, public ocean_qstar
ocean surface moisture scale [kg/kg]
real(rp), public cv_water
CV for water [J/kg/K].
real(rp), dimension(:,:), allocatable, public ocean_t2
ocean surface temperature at 2m [K]
real(rp), public ocean_grid_cartesc_real_totvol
total volume
real(rp), public cv_ice
CV for ice [J/kg/K].
subroutine, public ocean_phy_roughness_moon07(OIA, OIS, OIE, OJA, OJS, OJE, Uabs, Z1, mask, Z0M, Z0H, Z0E)
real(rp), dimension(:,:), allocatable, public atmos_sfc_pres
module ocean / dynamics / slab
subroutine, public ocean_vars_check(force)
Budget monitor for ocean.
module coupler / surface fixed temp model
real(rp), dimension(:,:,:), allocatable, public ocean_temp
ocean temperature [K]
real(rp), dimension(:,:), allocatable, public ocean_ice_ustar
real(rp), dimension(:,:), allocatable, public atmos_qv