Go to the documentation of this file.
196 real(
rp) :: checkfact
200 log_info(
"CPL_vars_setup",*)
'Setup'
201 log_info(
"CPL_vars_setup",*)
'No namelists.'
205 if ( .NOT.
ocean_do .AND. checkfact > 0.0_rp )
then
206 log_error(
"CPL_vars_setup",*)
'Ocean fraction exists, but ocean component has not been called. Please check this inconsistency. STOP.', checkfact
212 if ( .NOT.
land_do .AND. checkfact > 0.0_rp )
then
213 log_error(
"CPL_vars_setup",*)
'Land fraction exists, but land component has not been called. Please check this inconsistency. STOP.', checkfact
219 if ( .NOT.
urban_do .AND. checkfact > 0.0_rp )
then
220 log_error(
"CPL_vars_setup",*)
'Urban fraction exists, but urban component has not been called. Please check this inconsistency. STOP.', checkfact
226 if ( .NOT.
lake_do .AND. checkfact > 0.0_rp )
then
227 log_error(
"CPL_vars_setup",*)
'Lake fraction exists, but lake component has not been called. Please check this inconsistency. STOP.', checkfact
469 real(
rp),
intent(in) :: temp (
ia,
ja)
470 real(
rp),
intent(in) :: pres (
ia,
ja)
471 real(
rp),
intent(in) :: w (
ia,
ja)
472 real(
rp),
intent(in) :: u (
ia,
ja)
473 real(
rp),
intent(in) :: v (
ia,
ja)
474 real(
rp),
intent(in) :: dens (
ia,
ja)
475 real(
rp),
intent(in) :: qv (
ia,
ja)
476 real(
rp),
intent(in) :: pbl (
ia,
ja)
477 real(
rp),
intent(in) :: sfc_dens (
ia,
ja)
478 real(
rp),
intent(in) :: sfc_pres (
ia,
ja)
480 real(
rp),
intent(in) :: cossza (
ia,
ja)
481 real(
rp),
intent(in) :: sflx_water (
ia,
ja)
482 real(
rp),
intent(in) :: sflx_engi (
ia,
ja)
483 logical,
intent(in) :: countup
485 integer :: i, j, idir, irgn
659 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
661 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
662 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
663 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
664 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
665 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
666 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
667 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
668 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
669 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
670 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
671 real(
rp),
intent(in) :: u10 (
ia,
ja)
672 real(
rp),
intent(in) :: v10 (
ia,
ja)
673 real(
rp),
intent(in) :: t2 (
ia,
ja)
674 real(
rp),
intent(in) :: q2 (
ia,
ja)
675 logical,
intent(in) :: mask (
ia,
ja)
676 logical,
intent(in) :: countup
678 integer :: i, j, iq, idir, irgn
691 if ( mask(i,j) )
then
771 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
773 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
774 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
775 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
776 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
777 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
778 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
779 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
780 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
781 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
782 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
783 real(
rp),
intent(in) :: u10 (
ia,
ja)
784 real(
rp),
intent(in) :: v10 (
ia,
ja)
785 real(
rp),
intent(in) :: t2 (
ia,
ja)
786 real(
rp),
intent(in) :: q2 (
ia,
ja)
787 logical,
intent(in) :: mask (
ia,
ja)
788 logical,
intent(in) :: countup
790 integer :: i, j, iq, idir, irgn
804 if ( mask(i,j) )
then
886 real(
rp),
intent(in) :: sfc_temp (
ia,
ja)
888 real(
rp),
intent(in) :: sfc_z0m (
ia,
ja)
889 real(
rp),
intent(in) :: sfc_z0h (
ia,
ja)
890 real(
rp),
intent(in) :: sfc_z0e (
ia,
ja)
891 real(
rp),
intent(in) :: sflx_mw (
ia,
ja)
892 real(
rp),
intent(in) :: sflx_mu (
ia,
ja)
893 real(
rp),
intent(in) :: sflx_mv (
ia,
ja)
894 real(
rp),
intent(in) :: sflx_sh (
ia,
ja)
895 real(
rp),
intent(in) :: sflx_lh (
ia,
ja)
896 real(
rp),
intent(in) :: sflx_shex (
ia,
ja)
897 real(
rp),
intent(in) :: sflx_qvex (
ia,
ja)
898 real(
rp),
intent(in) :: sflx_gh (
ia,
ja)
899 real(
rp),
intent(in) :: sflx_qtrc (
ia,
ja,
qa)
900 real(
rp),
intent(in) :: u10 (
ia,
ja)
901 real(
rp),
intent(in) :: v10 (
ia,
ja)
902 real(
rp),
intent(in) :: t2 (
ia,
ja)
903 real(
rp),
intent(in) :: q2 (
ia,
ja)
904 logical,
intent(in) :: mask (
ia,
ja)
905 logical,
intent(in) :: countup
907 integer :: i, j, iq, idir, irgn
920 if ( mask(i,j) )
then
1009 real(
rp),
intent(out) :: sfc_temp (
ia,
ja)
1011 real(
rp),
intent(out) :: sfc_z0m (
ia,
ja)
1012 real(
rp),
intent(out) :: sfc_z0h (
ia,
ja)
1013 real(
rp),
intent(out) :: sfc_z0e (
ia,
ja)
1014 real(
rp),
intent(out) :: sflx_mw (
ia,
ja)
1015 real(
rp),
intent(out) :: sflx_mu (
ia,
ja)
1016 real(
rp),
intent(out) :: sflx_mv (
ia,
ja)
1017 real(
rp),
intent(out) :: sflx_sh (
ia,
ja)
1018 real(
rp),
intent(out) :: sflx_lh (
ia,
ja)
1019 real(
rp),
intent(out) :: sflx_shex (
ia,
ja)
1020 real(
rp),
intent(out) :: sflx_qvex (
ia,
ja)
1021 real(
rp),
intent(out) :: sflx_gh (
ia,
ja)
1022 real(
rp),
intent(out) :: sflx_qtrc (
ia,
ja,
qa)
1023 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1024 real(
rp),
intent(out) :: u10 (
ia,
ja)
1025 real(
rp),
intent(out) :: v10 (
ia,
ja)
1026 real(
rp),
intent(out) :: t2 (
ia,
ja)
1027 real(
rp),
intent(out) :: q2 (
ia,
ja)
1029 integer :: i, j, idir, irgn, iq
1051 sfc_albedo(i,j,idir,irgn) = fact_ocean(i,j) *
ocn_sfc_albedo(i,j,idir,irgn) &
1057 sfc_z0m(i,j) = fact_ocean(i,j) *
ocn_sfc_z0m(i,j) &
1061 sfc_z0h(i,j) = fact_ocean(i,j) *
ocn_sfc_z0h(i,j) &
1065 sfc_z0e(i,j) = fact_ocean(i,j) *
ocn_sfc_z0e(i,j) &
1069 sflx_mw(i,j) = fact_ocean(i,j) *
ocn_sflx_mw(i,j) &
1073 sflx_mu(i,j) = fact_ocean(i,j) *
ocn_sflx_mu(i,j) &
1077 sflx_mv(i,j) = fact_ocean(i,j) *
ocn_sflx_mv(i,j) &
1081 sflx_sh(i,j) = fact_ocean(i,j) *
ocn_sflx_sh(i,j) &
1085 sflx_lh(i,j) = fact_ocean(i,j) *
ocn_sflx_lh(i,j) &
1093 sflx_gh(i,j) = fact_ocean(i,j) *
ocn_sflx_gh(i,j) &
1098 sflx_qtrc(i,j,iq) = fact_ocean(i,j) *
ocn_sflx_qtrc(i,j,iq) &
1107 u10(i,j) = fact_ocean(i,j) *
ocn_u10(i,j) &
1108 + fact_land(i,j) *
lnd_u10(i,j) &
1109 + fact_urban(i,j) *
urb_u10(i,j)
1111 v10(i,j) = fact_ocean(i,j) *
ocn_v10(i,j) &
1112 + fact_land(i,j) *
lnd_v10(i,j) &
1113 + fact_urban(i,j) *
urb_v10(i,j)
1115 t2(i,j) = fact_ocean(i,j) *
ocn_t2(i,j) &
1116 + fact_land(i,j) *
lnd_t2(i,j) &
1117 + fact_urban(i,j) *
urb_t2(i,j)
1119 q2(i,j) = fact_ocean(i,j) *
ocn_q2(i,j) &
1120 + fact_land(i,j) *
lnd_q2(i,j) &
1121 + fact_urban(i,j) *
urb_q2(i,j)
1150 real(
rp),
intent(out) :: temp (
ia,
ja)
1151 real(
rp),
intent(out) :: pres (
ia,
ja)
1152 real(
rp),
intent(out) :: w (
ia,
ja)
1153 real(
rp),
intent(out) :: u (
ia,
ja)
1154 real(
rp),
intent(out) :: v (
ia,
ja)
1155 real(
rp),
intent(out) :: dens (
ia,
ja)
1156 real(
rp),
intent(out) :: qv (
ia,
ja)
1157 real(
rp),
intent(out) :: pbl (
ia,
ja)
1158 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1159 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1161 real(
rp),
intent(out) :: cossza (
ia,
ja)
1162 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1163 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1165 integer :: i, j, idir, irgn
1219 real(
rp),
intent(out) :: temp (
ia,
ja)
1220 real(
rp),
intent(out) :: pres (
ia,
ja)
1221 real(
rp),
intent(out) :: w (
ia,
ja)
1222 real(
rp),
intent(out) :: u (
ia,
ja)
1223 real(
rp),
intent(out) :: v (
ia,
ja)
1224 real(
rp),
intent(out) :: dens (
ia,
ja)
1225 real(
rp),
intent(out) :: qv (
ia,
ja)
1226 real(
rp),
intent(out) :: pbl (
ia,
ja)
1227 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1228 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1230 real(
rp),
intent(out) :: cossza (
ia,
ja)
1231 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1232 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1234 integer :: i, j, idir, irgn
1288 real(
rp),
intent(out) :: temp (
ia,
ja)
1289 real(
rp),
intent(out) :: pres (
ia,
ja)
1290 real(
rp),
intent(out) :: w (
ia,
ja)
1291 real(
rp),
intent(out) :: u (
ia,
ja)
1292 real(
rp),
intent(out) :: v (
ia,
ja)
1293 real(
rp),
intent(out) :: dens (
ia,
ja)
1294 real(
rp),
intent(out) :: qv (
ia,
ja)
1295 real(
rp),
intent(out) :: pbl (
ia,
ja)
1296 real(
rp),
intent(out) :: sfc_dens (
ia,
ja)
1297 real(
rp),
intent(out) :: sfc_pres (
ia,
ja)
1299 real(
rp),
intent(out) :: cossza (
ia,
ja)
1300 real(
rp),
intent(out) :: sflx_water (
ia,
ja)
1301 real(
rp),
intent(out) :: sflx_engi (
ia,
ja)
1303 integer :: i, j, idir, irgn
real(rp), dimension(:,:), allocatable, public ocn_atm_cossza
real(rp), dimension(:,:), allocatable, public lnd_atm_qv
real(rp), dimension(:,:), allocatable, public ocn_atm_pres
real(rp), dimension(:,:), allocatable, public landuse_fact_lake
lake factor
integer, parameter, public n_rad_dir
real(rp), dimension(:,:), allocatable, public lnd_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_sflx_shex
real(rp), dimension(:,:), allocatable, public urb_atm_w
real(rp), dimension(:,:), allocatable, public ocn_sflx_mu
real(rp), dimension(:,:), allocatable, public landuse_fact_ocean
ocean factor
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_dens
subroutine, public prc_abort
Abort Process.
integer, parameter, public i_r_direct
real(rp), dimension(:,:), allocatable, public ocn_sflx_lh
real(rp), dimension(:,:), allocatable, public ocn_sflx_mv
real(rp), dimension(:,:), allocatable, public lnd_sfc_temp
real(rp), public cnt_putocn
real(rp), dimension(:,:), allocatable, public urb_sflx_mv
real(rp), public cnt_putatm_urb
real(rp), dimension(:,:), allocatable, public urb_sflx_lh
integer, parameter, public i_r_diffuse
real(rp), dimension(:,:), allocatable, public urb_atm_v
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_dens
integer, parameter, public i_r_ir
real(rp), dimension(:,:), allocatable, public ocn_atm_pbl
real(rp), dimension(:,:), allocatable, public ocn_atm_u
real(rp), dimension(:,:), allocatable, public lnd_sflx_mv
real(rp), dimension(:,:), allocatable, public lnd_atm_pres
module atmosphere / hydrometeor
real(rp), dimension(:,:,:,:), allocatable, public lnd_atm_sflx_rad_dn
real(rp), dimension(:,:), allocatable, public lnd_q2
real(rp), dimension(:,:), allocatable, public ocn_atm_w
subroutine, public cpl_puturb(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_SHEX, SFLX_QVEX, SFLX_GH, SFLX_QTRC, U10, V10, T2, Q2, mask, countup)
real(rp), dimension(:,:), allocatable, public urb_sfc_z0h
real(rp), dimension(:,:), allocatable, public lnd_u10
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_water
real(rp), public cnt_putlnd
logical, public atmos_hydrometeor_dry
real(rp), dimension(:,:), allocatable, public ocn_q2
real(rp), dimension(qa_max), public tracer_engi0
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0e
real(rp), dimension(:,:), allocatable, public urb_sfc_z0m
real(rp), dimension(:,:), allocatable, public ocn_atm_qv
real(rp), dimension(:,:), allocatable, public lnd_t2
real(rp), dimension(:,:), allocatable, public lnd_atm_w
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public urb_sflx_qvex
subroutine, public cpl_putatm(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_DENS, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_water, SFLX_ENGI, countup)
integer, parameter, public rp
real(rp), dimension(:,:), allocatable, public lnd_sflx_gh
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public ocn_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0h
real(rp), dimension(:,:,:,:), allocatable, public urb_sfc_albedo
module atmosphere / grid / cartesC index
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0m
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 lnd_sflx_sh
real(rp), dimension(:,:), allocatable, public lnd_sflx_lh
real(rp), dimension(:,:), allocatable, public urb_atm_u
real(rp), dimension(:,:), allocatable, public lnd_sflx_mw
real(rp), dimension(qa_max), public tracer_cv
subroutine, public cpl_getatm_urb(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 lnd_sflx_qtrc
real(rp), dimension(:,:), allocatable, public urb_atm_pbl
real(rp), public cnt_putatm_ocn
real(rp), dimension(:,:), allocatable, public lnd_atm_cossza
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_water
integer, public is
start point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public ocn_atm_v
real(rp), dimension(:,:), allocatable, public ocn_sflx_mw
subroutine, public cpl_vars_setup
Setup.
real(rp), dimension(:,:), allocatable, public lnd_sflx_mu
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_water
real(rp), dimension(:,:), allocatable, public lnd_atm_v
real(rp), dimension(:,:), allocatable, public ocn_u10
real(rp), dimension(:,:), allocatable, public urb_u10
real(rp), dimension(:,:), allocatable, public landuse_fact_land
land factor
real(rp), dimension(:,:), allocatable, public ocn_sflx_engi
real(rp), dimension(:,:), allocatable, public urb_atm_cossza
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0m
real(rp), dimension(:,:), allocatable, public urb_sfc_z0e
real(rp), dimension(:,:), allocatable, public urb_atm_pres
real(rp), dimension(:,:), allocatable, public urb_sfc_temp
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public urb_sflx_sh
real(rp), dimension(:,:), allocatable, public ocn_atm_dens
real(rp), dimension(:,:), allocatable, public lnd_atm_dens
module coupler / surface-atmospehre
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0e
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public ocn_t2
integer, parameter, public i_r_vis
real(rp), dimension(:,:), allocatable, public lnd_atm_pbl
real(rp), dimension(:,:), allocatable, public urb_sflx_gh
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 lnd_atm_sflx_engi
real(rp), public lhf
latent heat of fusion for use [J/kg]
real(rp), dimension(:,:), allocatable, public urb_t2
real(rp), dimension(:,:), allocatable, public urb_atm_dens
real(rp), dimension(:,:), allocatable, public urb_sflx_mu
real(rp), dimension(:,:), allocatable, public lnd_atm_temp
real(rp), dimension(:,:), allocatable, public lnd_v10
real(rp), dimension(:,:), allocatable, public lnd_atm_u
real(rp), dimension(:,:), allocatable, public landuse_fact_urban
urban factor
real(rp), dimension(:,:), allocatable, public ocn_sflx_gh
real(rp), dimension(:,:), allocatable, public ocn_atm_temp
subroutine, public cpl_getsfc_atm(SFC_TEMP, SFC_albedo, SFC_Z0M, SFC_Z0H, SFC_Z0E, SFLX_MW, SFLX_MU, SFLX_MV, SFLX_SH, SFLX_LH, SFLX_SHEX, SFLX_QVEX, SFLX_GH, SFLX_QTRC, SFLX_ENGI, U10, V10, T2, Q2)
real(rp), dimension(:,:,:), allocatable, public ocn_sflx_qtrc
real(rp), dimension(:,:,:), allocatable, public urb_sflx_qtrc
real(rp), dimension(:,:), allocatable, public ocn_sfc_temp
real(rp), dimension(:,:), allocatable, public urb_atm_temp
real(rp), dimension(:,:), allocatable, public urb_q2
integer, parameter, public n_rad_rgn
real(rp), dimension(:,:), allocatable, public urb_atm_qv
real(rp), public const_undef
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_dens
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_pres
subroutine, public cpl_putlnd(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 ocn_atm_sflx_rad_dn
real(rp), dimension(:,:,:,:), allocatable, public ocn_sfc_albedo
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_engi
real(rp), public cnt_putatm_lnd
real(rp), dimension(:,:), allocatable, public urb_sflx_mw
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0h
integer, public je
end point of inner domain: y, local
subroutine, public cpl_getatm_lnd(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 urb_sflx_engi
real(rp), public cv_water
CV for water [J/kg/K].
real(rp), public cnt_puturb
real(rp), dimension(:,:,:,:), allocatable, public lnd_sfc_albedo
real(rp), public cv_ice
CV for ice [J/kg/K].
real(rp), dimension(:,:), allocatable, public urb_v10
real(rp), dimension(:,:), allocatable, public ocn_v10
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_engi
real(rp), dimension(:,:,:,:), allocatable, public urb_atm_sflx_rad_dn