11 #include "inc_openmp.h" 63 real(RP),
public,
allocatable ::
ocn_u10 (:,:)
64 real(RP),
public,
allocatable ::
ocn_v10 (:,:)
65 real(RP),
public,
allocatable ::
ocn_t2 (:,:)
66 real(RP),
public,
allocatable ::
ocn_q2 (:,:)
81 real(RP),
public,
allocatable ::
lnd_u10 (:,:)
82 real(RP),
public,
allocatable ::
lnd_v10 (:,:)
83 real(RP),
public,
allocatable ::
lnd_t2 (:,:)
84 real(RP),
public,
allocatable ::
lnd_q2 (:,:)
99 real(RP),
public,
allocatable ::
urb_u10 (:,:)
100 real(RP),
public,
allocatable ::
urb_v10 (:,:)
101 real(RP),
public,
allocatable ::
urb_t2 (:,:)
102 real(RP),
public,
allocatable ::
urb_q2 (:,:)
188 real(RP) :: checkfact
192 if(
io_l )
write(
io_fid_log,*)
'++++++ Module[VARS] / Categ[CPL] / Origin[SCALE-RM]' 197 if ( .NOT.
ocean_sw .AND. checkfact > 0.0_rp )
then 198 if(
io_l )
write(
io_fid_log,*)
'xxx Ocean fraction exists, but ocean components never called. STOP.', checkfact
199 write(*,*)
'xxx Ocean fraction exists, but ocean components never called. STOP.', checkfact
205 if ( .NOT.
land_sw .AND. checkfact > 0.0_rp )
then 206 if(
io_l )
write(
io_fid_log,*)
'xxx Land fraction exists, but land components never called. STOP.', checkfact
207 write(*,*)
'xxx Land fraction exists, but land components never called. STOP.', checkfact
213 if ( .NOT.
urban_sw .AND. checkfact > 0.0_rp )
then 214 if(
io_l )
write(
io_fid_log,*)
'xxx URBAN fraction exists, but urban components never called. STOP.', checkfact
215 write(*,*)
'xxx URBAN fraction exists, but urban components never called. STOP.', checkfact
438 real(RP),
intent(in) :: temp (
ia,
ja)
439 real(RP),
intent(in) :: pres (
ia,
ja)
440 real(RP),
intent(in) :: w (
ia,
ja)
441 real(RP),
intent(in) :: u (
ia,
ja)
442 real(RP),
intent(in) :: v (
ia,
ja)
443 real(RP),
intent(in) :: dens (
ia,
ja)
444 real(RP),
intent(in) :: qtrc (
ia,
ja,
qa)
445 real(RP),
intent(in) :: pbl (
ia,
ja)
446 real(RP),
intent(in) :: sfc_pres (
ia,
ja)
447 real(RP),
intent(in) :: sflx_rad_dn(
ia,
ja,2,2)
448 real(RP),
intent(in) :: cossza (
ia,
ja)
449 real(RP),
intent(in) :: sflx_rain (
ia,
ja)
450 real(RP),
intent(in) :: sflx_snow (
ia,
ja)
452 logical,
intent(in) :: countup
628 real(RP),
intent(in) :: sfc_temp (
ia,
ja)
629 real(RP),
intent(in) :: sfc_albedo(
ia,
ja,2)
630 real(RP),
intent(in) :: sfc_z0m (
ia,
ja)
631 real(RP),
intent(in) :: sfc_z0h (
ia,
ja)
632 real(RP),
intent(in) :: sfc_z0e (
ia,
ja)
633 real(RP),
intent(in) :: sflx_mw (
ia,
ja)
634 real(RP),
intent(in) :: sflx_mu (
ia,
ja)
635 real(RP),
intent(in) :: sflx_mv (
ia,
ja)
636 real(RP),
intent(in) :: sflx_sh (
ia,
ja)
637 real(RP),
intent(in) :: sflx_lh (
ia,
ja)
638 real(RP),
intent(in) :: sflx_wh (
ia,
ja)
639 real(RP),
intent(in) :: sflx_evap (
ia,
ja)
640 real(RP),
intent(in) :: u10 (
ia,
ja)
641 real(RP),
intent(in) :: v10 (
ia,
ja)
642 real(RP),
intent(in) :: t2 (
ia,
ja)
643 real(RP),
intent(in) :: q2 (
ia,
ja)
645 logical,
intent(in) :: countup
729 real(RP),
intent(in) :: sfc_temp (
ia,
ja)
730 real(RP),
intent(in) :: sfc_albedo(
ia,
ja,2)
731 real(RP),
intent(in) :: sfc_z0m (
ia,
ja)
732 real(RP),
intent(in) :: sfc_z0h (
ia,
ja)
733 real(RP),
intent(in) :: sfc_z0e (
ia,
ja)
734 real(RP),
intent(in) :: sflx_mw (
ia,
ja)
735 real(RP),
intent(in) :: sflx_mu (
ia,
ja)
736 real(RP),
intent(in) :: sflx_mv (
ia,
ja)
737 real(RP),
intent(in) :: sflx_sh (
ia,
ja)
738 real(RP),
intent(in) :: sflx_lh (
ia,
ja)
739 real(RP),
intent(in) :: sflx_gh (
ia,
ja)
740 real(RP),
intent(in) :: sflx_evap (
ia,
ja)
741 real(RP),
intent(in) :: u10 (
ia,
ja)
742 real(RP),
intent(in) :: v10 (
ia,
ja)
743 real(RP),
intent(in) :: t2 (
ia,
ja)
744 real(RP),
intent(in) :: q2 (
ia,
ja)
746 logical,
intent(in) :: countup
831 real(RP),
intent(in) :: sfc_temp (
ia,
ja)
832 real(RP),
intent(in) :: sfc_albedo(
ia,
ja,2)
833 real(RP),
intent(in) :: sfc_z0m (
ia,
ja)
834 real(RP),
intent(in) :: sfc_z0h (
ia,
ja)
835 real(RP),
intent(in) :: sfc_z0e (
ia,
ja)
836 real(RP),
intent(in) :: sflx_mw (
ia,
ja)
837 real(RP),
intent(in) :: sflx_mu (
ia,
ja)
838 real(RP),
intent(in) :: sflx_mv (
ia,
ja)
839 real(RP),
intent(in) :: sflx_sh (
ia,
ja)
840 real(RP),
intent(in) :: sflx_lh (
ia,
ja)
841 real(RP),
intent(in) :: sflx_gh (
ia,
ja)
842 real(RP),
intent(in) :: sflx_evap (
ia,
ja)
843 real(RP),
intent(in) :: u10 (
ia,
ja)
844 real(RP),
intent(in) :: v10 (
ia,
ja)
845 real(RP),
intent(in) :: t2 (
ia,
ja)
846 real(RP),
intent(in) :: q2 (
ia,
ja)
848 logical,
intent(in) :: countup
936 real(RP),
intent(out) :: sfc_temp (
ia,
ja)
937 real(RP),
intent(out) :: sfc_albedo(
ia,
ja,2)
938 real(RP),
intent(out) :: sfc_z0m (
ia,
ja)
939 real(RP),
intent(out) :: sfc_z0h (
ia,
ja)
940 real(RP),
intent(out) :: sfc_z0e (
ia,
ja)
941 real(RP),
intent(out) :: sflx_mw (
ia,
ja)
942 real(RP),
intent(out) :: sflx_mu (
ia,
ja)
943 real(RP),
intent(out) :: sflx_mv (
ia,
ja)
944 real(RP),
intent(out) :: sflx_sh (
ia,
ja)
945 real(RP),
intent(out) :: sflx_lh (
ia,
ja)
946 real(RP),
intent(out) :: sflx_gh (
ia,
ja)
947 real(RP),
intent(out) :: sflx_qtrc (
ia,
ja,
qa)
948 real(RP),
intent(out) :: u10 (
ia,
ja)
949 real(RP),
intent(out) :: v10 (
ia,
ja)
950 real(RP),
intent(out) :: t2 (
ia,
ja)
951 real(RP),
intent(out) :: q2 (
ia,
ja)
970 sflx_qtrc(i,j,iq) = 0.0_rp
977 sfc_albedo(i,j,i_lw) = fact_ocean(i,j) *
ocn_sfc_albedo(i,j,i_lw) &
981 sfc_albedo(i,j,i_sw) = fact_ocean(i,j) *
ocn_sfc_albedo(i,j,i_sw) &
985 sfc_z0m(i,j) = fact_ocean(i,j) *
ocn_sfc_z0m(i,j) &
989 sfc_z0h(i,j) = fact_ocean(i,j) *
ocn_sfc_z0h(i,j) &
993 sfc_z0e(i,j) = fact_ocean(i,j) *
ocn_sfc_z0e(i,j) &
997 sflx_mw(i,j) = fact_ocean(i,j) *
ocn_sflx_mw(i,j) &
1001 sflx_mu(i,j) = fact_ocean(i,j) *
ocn_sflx_mu(i,j) &
1005 sflx_mv(i,j) = fact_ocean(i,j) *
ocn_sflx_mv(i,j) &
1009 sflx_sh(i,j) = fact_ocean(i,j) *
ocn_sflx_sh(i,j) &
1013 sflx_lh(i,j) = fact_ocean(i,j) *
ocn_sflx_lh(i,j) &
1017 sflx_gh(i,j) = fact_ocean(i,j) *
ocn_sflx_wh(i,j) &
1021 if (
i_qv > 0 )
then 1027 u10(i,j) = fact_ocean(i,j) *
ocn_u10(i,j) &
1028 + fact_land(i,j) *
lnd_u10(i,j) &
1029 + fact_urban(i,j) *
urb_u10(i,j)
1031 v10(i,j) = fact_ocean(i,j) *
ocn_v10(i,j) &
1032 + fact_land(i,j) *
lnd_v10(i,j) &
1033 + fact_urban(i,j) *
urb_v10(i,j)
1035 t2(i,j) = fact_ocean(i,j) *
ocn_t2(i,j) &
1036 + fact_land(i,j) *
lnd_t2(i,j) &
1037 + fact_urban(i,j) *
urb_t2(i,j)
1039 q2(i,j) = fact_ocean(i,j) *
ocn_q2(i,j) &
1040 + fact_land(i,j) *
lnd_q2(i,j) &
1041 + fact_urban(i,j) *
urb_q2(i,j)
1069 real(RP),
intent(out) :: temp (
ia,
ja)
1070 real(RP),
intent(out) :: pres (
ia,
ja)
1071 real(RP),
intent(out) :: w (
ia,
ja)
1072 real(RP),
intent(out) :: u (
ia,
ja)
1073 real(RP),
intent(out) :: v (
ia,
ja)
1074 real(RP),
intent(out) :: dens (
ia,
ja)
1075 real(RP),
intent(out) :: qv (
ia,
ja)
1076 real(RP),
intent(out) :: pbl (
ia,
ja)
1077 real(RP),
intent(out) :: sfc_pres (
ia,
ja)
1078 real(RP),
intent(out) :: sflx_rad_dn(
ia,
ja,2,2)
1079 real(RP),
intent(out) :: cossza (
ia,
ja)
1080 real(RP),
intent(out) :: sflx_rain (
ia,
ja)
1081 real(RP),
intent(out) :: sflx_snow (
ia,
ja)
1137 real(RP),
intent(out) :: temp (
ia,
ja)
1138 real(RP),
intent(out) :: pres (
ia,
ja)
1139 real(RP),
intent(out) :: w (
ia,
ja)
1140 real(RP),
intent(out) :: u (
ia,
ja)
1141 real(RP),
intent(out) :: v (
ia,
ja)
1142 real(RP),
intent(out) :: dens (
ia,
ja)
1143 real(RP),
intent(out) :: qv (
ia,
ja)
1144 real(RP),
intent(out) :: pbl (
ia,
ja)
1145 real(RP),
intent(out) :: sfc_pres (
ia,
ja)
1146 real(RP),
intent(out) :: sflx_rad_dn(
ia,
ja,2,2)
1147 real(RP),
intent(out) :: cossza (
ia,
ja)
1148 real(RP),
intent(out) :: sflx_rain (
ia,
ja)
1149 real(RP),
intent(out) :: sflx_snow (
ia,
ja)
1205 real(RP),
intent(out) :: temp (
ia,
ja)
1206 real(RP),
intent(out) :: pres (
ia,
ja)
1207 real(RP),
intent(out) :: w (
ia,
ja)
1208 real(RP),
intent(out) :: u (
ia,
ja)
1209 real(RP),
intent(out) :: v (
ia,
ja)
1210 real(RP),
intent(out) :: dens (
ia,
ja)
1211 real(RP),
intent(out) :: qv (
ia,
ja)
1212 real(RP),
intent(out) :: pbl (
ia,
ja)
1213 real(RP),
intent(out) :: sfc_pres (
ia,
ja)
1214 real(RP),
intent(out) :: sflx_rad_dn(
ia,
ja,2,2)
1215 real(RP),
intent(out) :: cossza (
ia,
ja)
1216 real(RP),
intent(out) :: sflx_rain (
ia,
ja)
1217 real(RP),
intent(out) :: sflx_snow (
ia,
ja)
integer, public is
start point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public ocn_sflx_evap
real(rp), dimension(:,:), allocatable, public urb_atm_w
real(rp), dimension(:,:), allocatable, public urb_sflx_mv
integer, public je
end point of inner domain: y, local
real(rp), public cnt_putatm_ocn
integer, public const_i_lw
long-wave radiation index
subroutine, public prc_mpistop
Abort MPI.
real(rp), dimension(:,:), allocatable, public landuse_fact_urban
urban factor
real(rp), public cnt_putatm_lnd
real(rp), dimension(:,:), allocatable, public ocn_v10
real(rp), dimension(:,:), allocatable, public lnd_sflx_mw
real(rp), dimension(:,:), allocatable, public ocn_atm_w
real(rp), dimension(:,:), allocatable, public ocn_atm_pbl
subroutine, public cpl_putatm(TEMP, PRES, W, U, V, DENS, QTRC, PBL, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_rain, SFLX_snow, countup)
real(rp), dimension(:,:), allocatable, public ocn_sflx_mv
real(rp), dimension(:,:), allocatable, public lnd_sfc_temp
logical, public io_l
output log or not? (this process)
real(rp), dimension(:,:), allocatable, public lnd_atm_cossza
real(rp), dimension(:,:), allocatable, public ocn_sflx_lh
real(rp), dimension(:,:), allocatable, public urb_sfc_z0h
real(rp), dimension(:,:), allocatable, public lnd_atm_dens
real(rp), dimension(:,:), allocatable, public urb_sflx_sh
real(rp), dimension(:,:), allocatable, public ocn_atm_dens
real(rp), dimension(:,:), allocatable, public lnd_sflx_mv
real(rp), dimension(:,:), allocatable, public ocn_q2
real(rp), dimension(:,:), allocatable, public urb_atm_pres
real(rp), dimension(:,:), allocatable, public ocn_sfc_temp
real(rp), dimension(:,:), allocatable, public urb_atm_cossza
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0e
real(rp), dimension(:,:), allocatable, public urb_sfc_z0e
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_snow
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_evap, U10, V10, T2, Q2, countup)
subroutine, public cpl_getatm_urb(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_rain, SFLX_snow)
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_GH, SFLX_QTRC, U10, V10, T2, Q2)
real(rp), dimension(:,:), allocatable, public lnd_atm_temp
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_snow
real(rp), public const_undef
real(rp), dimension(:,:), allocatable, public urb_q2
real(rp), dimension(:,:), allocatable, public ocn_atm_temp
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0h
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_GH, SFLX_evap, U10, V10, T2, Q2, countup)
real(rp), dimension(:,:), allocatable, public urb_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public ocn_t2
real(rp), dimension(:,:), allocatable, public lnd_atm_qv
real(rp), dimension(:,:), allocatable, public lnd_v10
real(rp), dimension(:,:), allocatable, public ocn_atm_sfc_pres
real(rp), public cnt_putlnd
integer, public ia
of whole cells: x, local, with HALO
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_WH, SFLX_evap, U10, V10, T2, Q2, countup)
real(rp), dimension(:,:), allocatable, public ocn_atm_qv
real(rp), dimension(:,:), allocatable, public lnd_t2
real(rp), dimension(:,:), allocatable, public lnd_sflx_evap
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_snow
real(rp), dimension(:,:), allocatable, public lnd_atm_v
real(rp), dimension(:,:), allocatable, public ocn_u10
subroutine, public cpl_vars_setup
Setup.
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0e
real(rp), dimension(:,:), allocatable, public ocn_sflx_sh
real(rp), dimension(:,:), allocatable, public ocn_atm_v
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0m
real(rp), dimension(:,:), allocatable, public urb_sfc_z0m
real(rp), dimension(:,:), allocatable, public landuse_fact_ocean
ocean factor
integer, public js
start point of inner domain: y, local
real(rp), dimension(:,:), allocatable, public lnd_atm_sflx_rain
real(rp), dimension(:,:), allocatable, public ocn_atm_cossza
real(rp), dimension(:,:), allocatable, public ocn_atm_sflx_rain
real(rp), dimension(:,:), allocatable, public ocn_sflx_mw
real(rp), dimension(:,:), allocatable, public lnd_sflx_lh
real(rp), dimension(:,:), allocatable, public lnd_atm_pbl
real(rp), dimension(:,:), allocatable, public ocn_atm_u
real(rp), dimension(:,:,:,:), allocatable, public lnd_atm_sflx_rad_dn
real(rp), dimension(:,:), allocatable, public urb_atm_v
real(rp), dimension(:,:), allocatable, public urb_t2
real(rp), dimension(:,:), allocatable, public urb_sflx_lh
real(rp), dimension(:,:), allocatable, public lnd_u10
real(rp), dimension(:,:), allocatable, public urb_atm_pbl
real(rp), dimension(:,:,:), allocatable, public ocn_sfc_albedo
real(rp), dimension(:,:), allocatable, public lnd_atm_sfc_pres
real(rp), dimension(:,:), allocatable, public lnd_sflx_mu
real(rp), dimension(:,:,:,:), allocatable, public ocn_atm_sflx_rad_dn
integer, public ie
end point of inner domain: x, local
real(rp), dimension(:,:), allocatable, public lnd_atm_pres
real(rp), dimension(:,:), allocatable, public lnd_q2
real(rp), dimension(:,:), allocatable, public urb_atm_qv
real(rp), dimension(:,:), allocatable, public urb_u10
real(rp), dimension(:,:), allocatable, public lnd_sflx_gh
subroutine, public cpl_getatm_ocn(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_rain, SFLX_snow)
real(rp), dimension(:,:,:), allocatable, public urb_sfc_albedo
real(rp), dimension(:,:), allocatable, public urb_atm_sflx_rain
real(rp), dimension(:,:), allocatable, public urb_atm_dens
real(rp), dimension(:,:), allocatable, public ocn_sflx_wh
integer, public const_i_sw
short-wave radiation index
real(rp), dimension(:,:,:), allocatable, public lnd_sfc_albedo
real(rp), dimension(:,:), allocatable, public ocn_atm_pres
real(rp), dimension(:,:), allocatable, public lnd_atm_u
real(rp), dimension(:,:), allocatable, public lnd_atm_w
real(rp), dimension(:,:), allocatable, public urb_v10
real(rp), dimension(:,:), allocatable, public landuse_fact_land
land factor
integer, public io_fid_log
Log file ID.
real(rp), dimension(:,:), allocatable, public urb_sfc_temp
subroutine, public cpl_getatm_lnd(TEMP, PRES, W, U, V, DENS, QV, PBL, SFC_PRES, SFLX_rad_dn, cosSZA, SFLX_rain, SFLX_snow)
real(rp), dimension(:,:), allocatable, public lnd_sflx_sh
real(rp), dimension(:,:), allocatable, public urb_sflx_evap
real(rp), dimension(:,:), allocatable, public urb_sflx_gh
real(rp), public cnt_puturb
real(rp), dimension(:,:), allocatable, public urb_sflx_mw
real(rp), dimension(:,:), allocatable, public lnd_sfc_z0h
real(rp), dimension(:,:), allocatable, public ocn_sflx_mu
real(rp), public cnt_putocn
real(rp), dimension(:,:), allocatable, public urb_sflx_mu
real(rp), dimension(:,:), allocatable, public ocn_sfc_z0m
real(rp), dimension(:,:), allocatable, public urb_atm_temp
real(rp), dimension(:,:), allocatable, public urb_atm_u
real(rp), dimension(:,:,:,:), allocatable, public urb_atm_sflx_rad_dn
integer, public ja
of whole cells: y, local, with HALO
real(rp), public cnt_putatm_urb