Changeset 5942 for LMDZ6/trunk/libf/phylmd/surf_land_mod.F90
- Timestamp:
- Dec 17, 2025, 7:33:39 PM (4 weeks ago)
- File:
-
- 1 edited
-
LMDZ6/trunk/libf/phylmd/surf_land_mod.F90 (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/surf_land_mod.F90
r5927 r5942 26 26 ,xtprecip_rain, xtprecip_snow,xtspechum, & 27 27 xtsnow, xtsol,xtevap,h1, & 28 runoff_diag,xtrunoff_diag,Rland_ice, & 29 xtriverflow, xtcoastalflow, Rsol & 28 runoff_diag,xtrunoff_diag,Rland_ice & 30 29 #endif 31 30 ) … … 87 86 !**************************************************************************************** 88 87 INTEGER, INTENT(IN) :: itime, jour, knon 89 INTEGER, DIMENSION(k lon), INTENT(IN) :: knindex88 INTEGER, DIMENSION(knon), INTENT(IN) :: knindex 90 89 REAL, INTENT(IN) :: date0 91 90 REAL, DIMENSION(klon), INTENT(IN) :: rlon, rlat 92 REAL, DIMENSION(k lon), INTENT(IN) :: yrmu0 ! cosine of solar zenith angle91 REAL, DIMENSION(knon), INTENT(IN) :: yrmu0 ! cosine of solar zenith angle 93 92 LOGICAL, INTENT(IN) :: debut, lafin 94 93 REAL, INTENT(IN) :: dtime 95 REAL, DIMENSION(k lon), INTENT(IN) :: ccanopy96 REAL, DIMENSION(k lon), INTENT(IN) :: swnet, lwnet97 REAL, DIMENSION(k lon), INTENT(IN) :: albedo ! albedo for whole short-wave interval98 REAL, DIMENSION(k lon), INTENT(IN) :: tsurf99 REAL, DIMENSION(k lon), INTENT(IN) :: p1lay100 REAL, DIMENSION(k lon), INTENT(IN) :: cdragh, cdragm101 REAL, DIMENSION(k lon), INTENT(IN) :: precip_rain, precip_snow, precip_bs102 REAL, DIMENSION(k lon), INTENT(IN) :: temp_air, spechum103 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefH, AcoefQ, BcoefH, BcoefQ104 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV105 REAL, DIMENSION(k lon), INTENT(IN) :: pref ! pressure reference106 REAL, DIMENSION(k lon), INTENT(IN) :: u1, v1, gustiness107 REAL, DIMENSION(k lon), INTENT(IN) :: rugoro94 REAL, DIMENSION(knon), INTENT(IN) :: ccanopy 95 REAL, DIMENSION(knon), INTENT(IN) :: swnet, lwnet 96 REAL, DIMENSION(knon), INTENT(IN) :: albedo ! albedo for whole short-wave interval 97 REAL, DIMENSION(knon), INTENT(IN) :: tsurf 98 REAL, DIMENSION(knon), INTENT(IN) :: p1lay 99 REAL, DIMENSION(knon), INTENT(IN) :: cdragh, cdragm 100 REAL, DIMENSION(knon), INTENT(IN) :: precip_rain, precip_snow, precip_bs 101 REAL, DIMENSION(knon), INTENT(IN) :: temp_air, spechum 102 REAL, DIMENSION(knon), INTENT(IN) :: AcoefH, AcoefQ, BcoefH, BcoefQ 103 REAL, DIMENSION(knon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 104 REAL, DIMENSION(knon), INTENT(IN) :: pref ! pressure reference 105 REAL, DIMENSION(knon), INTENT(IN) :: u1, v1, gustiness 106 REAL, DIMENSION(knon), INTENT(IN) :: rugoro 108 107 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf 109 REAL, DIMENSION(k lon), INTENT(IN) :: lwdown_m ! downwelling longwave radiation at mean surface108 REAL, DIMENSION(knon), INTENT(IN) :: lwdown_m ! downwelling longwave radiation at mean surface 110 109 ! corresponds to previous sollwdown 111 REAL, DIMENSION(k lon), INTENT(IN) :: q2m, t2m110 REAL, DIMENSION(knon), INTENT(IN) :: q2m, t2m 112 111 REAL, DIMENSION(klon, nbtersrf), INTENT(IN) :: tsurf_tersrf 113 112 #ifdef ISO 114 REAL, DIMENSION(ntiso,k lon), INTENT(IN) :: xtprecip_rain, xtprecip_snow115 REAL, DIMENSION(ntiso,k lon), INTENT(IN) :: xtspechum113 REAL, DIMENSION(ntiso,knon), INTENT(IN) :: xtprecip_rain, xtprecip_snow 114 REAL, DIMENSION(ntiso,knon), INTENT(IN) :: xtspechum 116 115 #endif 117 116 ! In/Output variables 118 117 !**************************************************************************************** 119 REAL, DIMENSION(k lon), INTENT(INOUT) :: snow, qsol120 REAL, DIMENSION(k lon), INTENT(INOUT) :: agesno121 REAL, DIMENSION(k lon, nsoilmx), INTENT(INOUT) :: tsoil122 REAL, DIMENSION(k lon), INTENT(INOUT) :: zlev118 REAL, DIMENSION(knon), INTENT(INOUT) :: snow, qsol 119 REAL, DIMENSION(knon), INTENT(INOUT) :: agesno 120 REAL, DIMENSION(knon, nsoilmx), INTENT(INOUT) :: tsoil 121 REAL, DIMENSION(knon), INTENT(INOUT) :: zlev 123 122 REAL, DIMENSION(klon, nsoilmx, nbtersrf), INTENT(INOUT) :: tsoil_tersrf 124 123 #ifdef ISO 125 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: xtsnow, xtsol 126 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: Rsol 124 REAL, DIMENSION(niso,knon), INTENT(INOUT) :: xtsnow, xtsol 127 125 #endif 128 126 129 127 ! Output variables 130 128 !**************************************************************************************** 131 REAL, DIMENSION(k lon), INTENT(OUT) :: z0m, z0h129 REAL, DIMENSION(knon), INTENT(OUT) :: z0m, z0h 132 130 !albedo SB >>> 133 131 ! REAL, DIMENSION(klon), INTENT(OUT) :: alb1_new ! albdeo for shortwave interval 1(visible) 134 132 ! REAL, DIMENSION(klon), INTENT(OUT) :: alb2_new ! albedo for shortwave interval 2(near infrared) 135 133 REAL, DIMENSION(6), INTENT(IN) :: SFRWL 136 REAL, DIMENSION(k lon,nsw), INTENT(OUT) :: alb_dir_new,alb_dif_new134 REAL, DIMENSION(knon,nsw), INTENT(OUT) :: alb_dir_new,alb_dif_new 137 135 !albedo SB <<< 138 REAL, DIMENSION(k lon), INTENT(OUT) :: evap139 REAL, DIMENSION(k lon), INTENT(OUT) :: fluxsens, fluxlat, fluxbs140 REAL, DIMENSION(k lon), INTENT(OUT) :: qsurf141 REAL, DIMENSION(k lon), INTENT(OUT) :: tsurf_new142 REAL, DIMENSION(k lon), INTENT(OUT) :: dflux_s, dflux_l143 REAL, DIMENSION(k lon), INTENT(OUT) :: flux_u1, flux_v1 ! flux for U and V at first model level144 REAL, DIMENSION(k lon,nvm_lmdz), INTENT(OUT) :: veget,lai145 REAL, DIMENSION(k lon,nvm_lmdz), INTENT(OUT) :: height136 REAL, DIMENSION(knon), INTENT(OUT) :: evap 137 REAL, DIMENSION(knon), INTENT(OUT) :: fluxsens, fluxlat, fluxbs 138 REAL, DIMENSION(knon), INTENT(OUT) :: qsurf 139 REAL, DIMENSION(knon), INTENT(OUT) :: tsurf_new 140 REAL, DIMENSION(knon), INTENT(OUT) :: dflux_s, dflux_l 141 REAL, DIMENSION(knon), INTENT(OUT) :: flux_u1, flux_v1 ! flux for U and V at first model level 142 REAL, DIMENSION(knon,nvm_lmdz), INTENT(OUT) :: veget,lai 143 REAL, DIMENSION(knon,nvm_lmdz), INTENT(OUT) :: height 146 144 ! AM 147 145 REAL, DIMENSION(klon, nbtersrf), INTENT(OUT) :: tsurf_new_tersrf … … 154 152 REAL, DIMENSION(klon, nbtersrf), INTENT(OUT) :: fluxlat_tersrf 155 153 #ifdef ISO 156 REAL, DIMENSION(ntiso,klon), INTENT(OUT) :: xtevap 157 REAL, DIMENSION(klon), INTENT(OUT) :: h1 158 REAL, DIMENSION(klon), INTENT(OUT) :: runoff_diag 159 REAL, DIMENSION(niso,klon), INTENT(OUT) :: xtrunoff_diag 160 REAL, DIMENSION(niso,klon), INTENT(IN) :: Rland_ice 161 REAL, DIMENSION(niso,klon), INTENT(OUT) :: xtriverflow 162 REAL, DIMENSION(niso,klon), INTENT(OUT) :: xtcoastalflow 154 REAL, DIMENSION(ntiso,knon), INTENT(OUT) :: xtevap 155 REAL, DIMENSION(knon), INTENT(OUT) :: h1 156 REAL, DIMENSION(niso,knon), INTENT(OUT) :: xtrunoff_diag 157 REAL, DIMENSION(knon), INTENT(OUT) :: runoff_diag 158 REAL, DIMENSION(niso,knon), INTENT(IN) :: Rland_ice 163 159 #endif 164 160 165 161 ! Local variables 166 162 !**************************************************************************************** 167 REAL, DIMENSION(k lon) :: p1lay_tmp168 REAL, DIMENSION(k lon) :: pref_tmp169 REAL, DIMENSION(k lon) :: swdown ! downwelling shortwave radiation at land surface170 REAL, DIMENSION(k lon) :: epot_air ! potential air temperature171 REAL, DIMENSION(k lon) :: tsol_rad, emis_new ! output from interfsol not used172 REAL, DIMENSION(k lon) :: u0, v0 ! surface speed173 REAL, DIMENSION(k lon) :: precip_totsnow ! total solid precip163 REAL, DIMENSION(knon) :: p1lay_tmp 164 REAL, DIMENSION(knon) :: pref_tmp 165 REAL, DIMENSION(knon) :: swdown ! downwelling shortwave radiation at land surface 166 REAL, DIMENSION(knon) :: epot_air ! potential air temperature 167 REAL, DIMENSION(knon) :: tsol_rad, emis_new ! output from interfsol not used 168 REAL, DIMENSION(knon) :: u0, v0 ! surface speed 169 REAL, DIMENSION(knon) :: precip_totsnow ! total solid precip 174 170 INTEGER :: i,j 175 171 CHARACTER (len = 20) :: modname = 'surf_land' … … 182 178 #ifdef ISO 183 179 real, parameter :: t_coup = 273.15 184 real, dimension(k lon) :: fqfonte_diag185 real, dimension(k lon) :: snow_evap_diag186 real, dimension(k lon) :: fqcalving_diag180 real, dimension(knon) :: fqfonte_diag 181 real, dimension(knon) :: snow_evap_diag 182 real, dimension(knon) :: fqcalving_diag 187 183 integer :: ixt 188 184 #endif … … 249 245 END DO 250 246 251 !!SN LMDZORISO252 !#ifdef ISO 253 ! CALL abort_physic('surf_land_mod 220','isos pas prevus dans orchidee',1) 254 !#endif 247 #ifdef ISO 248 CALL abort_physic('surf_land_mod 220','isos pas prevus dans orchidee',1) 249 #endif 250 255 251 ! temporary for keeping same results using lwdown_m instead of lwdown 256 252 CALL surf_land_orchidee(itime, dtime, date0, knon, & … … 265 261 emis_new, z0m, z0h, qsurf, & 266 262 veget, lai, height & 267 #ifdef ISO 268 ,xtprecip_rain, xtprecip_snow, & 269 xtriverflow, xtcoastalflow, xtevap, Rsol & 270 #endif 263 !#ifdef ISO 264 ! , xtprecip_rain, xtprecip_snow, xtspechum, xtevap & 265 !#endif 271 266 ) 272 267 … … 408 403 INTEGER, INTENT(IN) :: knon 409 404 REAL, DIMENSION(klon), INTENT(IN) :: rlon, rlat 410 REAL, DIMENSION(k lon), INTENT(INOUT) :: qsol411 INTEGER, DIMENSION(k lon), INTENT(IN) :: knindex412 REAL, DIMENSION(niso,k lon), INTENT(INOUT) :: xtsol405 REAL, DIMENSION(knon), INTENT(INOUT) :: qsol 406 INTEGER, DIMENSION(knon), INTENT(IN) :: knindex 407 REAL, DIMENSION(niso,knon), INTENT(INOUT) :: xtsol 413 408 REAL :: lat_min_nudge_qsol,lat_max_nudge_qsol 414 409 REAL :: lon_min_nudge_qsol,lon_max_nudge_qsol
Note: See TracChangeset
for help on using the changeset viewer.
