Changeset 5942 for LMDZ6/trunk/libf/phylmd/inlandsis
- Timestamp:
- Dec 17, 2025, 7:33:39 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/inlandsis/surf_inlandsis_mod.f90
r5296 r5942 65 65 LOGICAL, INTENT(IN) :: lafin ! true if last step 66 66 67 INTEGER, DIMENSION(k lon), INTENT(IN) :: ikl2i ! Index Decompression67 INTEGER, DIMENSION(knon), INTENT(IN) :: ikl2i ! Index Decompression 68 68 REAL, DIMENSION(klon), INTENT(IN) :: rlon, rlat 69 REAL, DIMENSION(k lon), INTENT(IN) :: rmu0 ! cos sol. zenith angle70 REAL, DIMENSION(k lon), INTENT(IN) :: swdown !71 REAL, DIMENSION(k lon), INTENT(IN) :: lwdown !72 REAL, DIMENSION(k lon), INTENT(IN) :: albedo_old73 REAL, DIMENSION(k lon), INTENT(IN) :: pexner ! Exner potential74 REAL, DIMENSION(k lon), INTENT(IN) :: precip_rain, precip_snow75 REAL, DIMENSION(k lon), INTENT(IN) :: zsl_height, wind_velo76 REAL, DIMENSION(k lon), INTENT(IN) :: temp_air, spechum, ps, p1lay77 REAL, DIMENSION(k lon), INTENT(IN) :: dens_air, tsurf78 REAL, DIMENSION(k lon), INTENT(IN) :: rugos79 REAL, DIMENSION(k lon), INTENT(IN) :: snow_cont_air80 REAL, DIMENSION(k lon), INTENT(IN) :: alb_soil, slope81 REAL, DIMENSION(k lon), INTENT(IN) :: alt ! surface elevation82 REAL, DIMENSION(k lon), INTENT(IN) :: cloudf83 REAL, DIMENSION(k lon), INTENT(IN) :: AcoefH, AcoefQ84 REAL, DIMENSION(k lon), INTENT(IN) :: BcoefH, BcoefQ85 REAL, DIMENSION(k lon), INTENT(IN) :: cdragm, cdragh86 REAL, DIMENSION(k lon), INTENT(IN) :: ustar ! friction velocity69 REAL, DIMENSION(knon), INTENT(IN) :: rmu0 ! cos sol. zenith angle 70 REAL, DIMENSION(knon), INTENT(IN) :: swdown ! 71 REAL, DIMENSION(knon), INTENT(IN) :: lwdown ! 72 REAL, DIMENSION(knon), INTENT(IN) :: albedo_old 73 REAL, DIMENSION(knon), INTENT(IN) :: pexner ! Exner potential 74 REAL, DIMENSION(knon), INTENT(IN) :: precip_rain, precip_snow 75 REAL, DIMENSION(knon), INTENT(IN) :: zsl_height, wind_velo 76 REAL, DIMENSION(knon), INTENT(IN) :: temp_air, spechum, ps, p1lay 77 REAL, DIMENSION(knon), INTENT(IN) :: dens_air, tsurf 78 REAL, DIMENSION(knon), INTENT(IN) :: rugos 79 REAL, DIMENSION(knon), INTENT(IN) :: snow_cont_air 80 REAL, DIMENSION(knon), INTENT(IN) :: alb_soil, slope 81 REAL, DIMENSION(knon), INTENT(IN) :: alt ! surface elevation 82 REAL, DIMENSION(knon), INTENT(IN) :: cloudf 83 REAL, DIMENSION(knon), INTENT(IN) :: AcoefH, AcoefQ 84 REAL, DIMENSION(knon), INTENT(IN) :: BcoefH, BcoefQ 85 REAL, DIMENSION(knon), INTENT(IN) :: cdragm, cdragh 86 REAL, DIMENSION(knon), INTENT(IN) :: ustar ! friction velocity 87 87 88 88 ! Variables exchanged between LMDZ and SISVAT 89 REAL, DIMENSION(k lon), INTENT(IN) :: radsol ! Surface absorbed rad.90 REAL, DIMENSION(k lon), INTENT(INOUT) :: snow ! Tot snow mass [kg/m2]91 REAL, DIMENSION(k lon), INTENT(INOUT) :: zfra ! snwo surface fraction [0-1]92 REAL, DIMENSION(k lon, nsoilmx), INTENT(OUT) :: tsoil ! Soil Temperature93 REAL, DIMENSION(k lon), INTENT(OUT) :: qsol ! Soil Water Content94 REAL, DIMENSION(k lon), INTENT(INOUT) :: z0m ! Momentum Roughn Lgt95 REAL, DIMENSION(k lon), INTENT(INOUT) :: z0h ! Momentum Roughn Lgt89 REAL, DIMENSION(knon), INTENT(IN) :: radsol ! Surface absorbed rad. 90 REAL, DIMENSION(knon), INTENT(INOUT) :: snow ! Tot snow mass [kg/m2] 91 REAL, DIMENSION(knon), INTENT(INOUT) :: zfra ! snwo surface fraction [0-1] 92 REAL, DIMENSION(knon, nsoilmx), INTENT(OUT) :: tsoil ! Soil Temperature 93 REAL, DIMENSION(knon), INTENT(OUT) :: qsol ! Soil Water Content 94 REAL, DIMENSION(knon), INTENT(INOUT) :: z0m ! Momentum Roughn Lgt 95 REAL, DIMENSION(knon), INTENT(INOUT) :: z0h ! Momentum Roughn Lgt 96 96 97 97 ! Output Variables for LMDZ 98 REAL, DIMENSION(k lon), INTENT(OUT) :: alb1 ! Albedo SW99 REAL, DIMENSION(k lon), INTENT(OUT) :: alb2, alb3 ! Albedo NIR and LW100 REAL, DIMENSION(k lon,6), INTENT(OUT) :: alb6 ! 6 band Albedo101 REAL, DIMENSION(k lon), INTENT(OUT) :: emis_new ! Surface Emissivity102 REAL, DIMENSION(k lon), INTENT(OUT) :: runoff_lic ! Runoff103 REAL, DIMENSION(k lon), INTENT(OUT) :: ffonte ! enthalpy flux due to surface melting104 REAL, DIMENSION(k lon), INTENT(OUT) :: fqfonte ! water flux due to surface melting105 REAL, DIMENSION(k lon), INTENT(OUT) :: dflux_s ! d/dT sens. ht flux106 REAL, DIMENSION(k lon), INTENT(OUT) :: dflux_l ! d/dT latent ht flux107 REAL, DIMENSION(k lon), INTENT(OUT) :: fluxsens ! Sensible ht flux108 REAL, DIMENSION(k lon), INTENT(OUT) :: fluxlat ! Latent heat flux109 REAL, DIMENSION(k lon), INTENT(OUT) :: evap ! Evaporation110 REAL, DIMENSION(k lon), INTENT(OUT) :: erod ! Erosion of surface snow (flux)111 REAL, DIMENSION(k lon), INTENT(OUT) :: agesno ! Snow age (top layer)112 REAL, DIMENSION(k lon), INTENT(OUT) :: tsurf_new ! Surface Temperature113 REAL, DIMENSION(k lon), INTENT(OUT) :: qsurf ! Surface Humidity98 REAL, DIMENSION(knon), INTENT(OUT) :: alb1 ! Albedo SW 99 REAL, DIMENSION(knon), INTENT(OUT) :: alb2, alb3 ! Albedo NIR and LW 100 REAL, DIMENSION(knon,6), INTENT(OUT) :: alb6 ! 6 band Albedo 101 REAL, DIMENSION(knon), INTENT(OUT) :: emis_new ! Surface Emissivity 102 REAL, DIMENSION(knon), INTENT(OUT) :: runoff_lic ! Runoff 103 REAL, DIMENSION(knon), INTENT(OUT) :: ffonte ! enthalpy flux due to surface melting 104 REAL, DIMENSION(knon), INTENT(OUT) :: fqfonte ! water flux due to surface melting 105 REAL, DIMENSION(knon), INTENT(OUT) :: dflux_s ! d/dT sens. ht flux 106 REAL, DIMENSION(knon), INTENT(OUT) :: dflux_l ! d/dT latent ht flux 107 REAL, DIMENSION(knon), INTENT(OUT) :: fluxsens ! Sensible ht flux 108 REAL, DIMENSION(knon), INTENT(OUT) :: fluxlat ! Latent heat flux 109 REAL, DIMENSION(knon), INTENT(OUT) :: evap ! Evaporation 110 REAL, DIMENSION(knon), INTENT(OUT) :: erod ! Erosion of surface snow (flux) 111 REAL, DIMENSION(knon), INTENT(OUT) :: agesno ! Snow age (top layer) 112 REAL, DIMENSION(knon), INTENT(OUT) :: tsurf_new ! Surface Temperature 113 REAL, DIMENSION(knon), INTENT(OUT) :: qsurf ! Surface Humidity 114 114 115 115 ! Specific INLANDIS outputs 116 REAL, DIMENSION(k lon), INTENT(OUT) :: qsnow ! Total H2O snow[kg/m2]117 REAL, DIMENSION(k lon), INTENT(OUT) :: snowhgt ! Snow height (m)118 REAL, DIMENSION(k lon), INTENT(OUT) :: to_ice ! Snow passed to ice119 REAL, DIMENSION(k lon), INTENT(OUT) :: sissnow ! Snow in model (kg/m2)116 REAL, DIMENSION(knon), INTENT(OUT) :: qsnow ! Total H2O snow[kg/m2] 117 REAL, DIMENSION(knon), INTENT(OUT) :: snowhgt ! Snow height (m) 118 REAL, DIMENSION(knon), INTENT(OUT) :: to_ice ! Snow passed to ice 119 REAL, DIMENSION(knon), INTENT(OUT) :: sissnow ! Snow in model (kg/m2) 120 120 121 121 ! +--Internal Variables … … 485 485 INQUIRE(FILE = "startsis.nc", EXIST = file_exists) 486 486 IF (file_exists) THEN 487 CALL sisvatetat0("startsis.nc", ikl2i)487 CALL sisvatetat0("startsis.nc", knon, ikl2i) 488 488 END IF 489 489 … … 732 732 IF (lafin) THEN 733 733 fichnom = "restartsis.nc" 734 CALL sisvatredem("restartsis.nc", ikl2i, rlon, rlat)734 CALL sisvatredem("restartsis.nc", knon, ikl2i, rlon, rlat) 735 735 736 736 IF (ok_outfor) THEN … … 1027 1027 !*************************************************************************** 1028 1028 1029 SUBROUTINE sisvatetat0 (fichnom, ikl2i)1029 SUBROUTINE sisvatetat0 (fichnom, knon, ikl2i) 1030 1030 USE clesphys_mod_h 1031 1031 USE dimphy … … 1048 1048 1049 1049 CHARACTER(LEN = *) :: fichnom 1050 1051 INTEGER, DIMENSION(k lon), INTENT(IN) :: ikl2i1050 INTEGER, INTENT(IN) :: knon 1051 INTEGER, DIMENSION(knon), INTENT(IN) :: ikl2i 1052 1052 REAL, DIMENSION(klon) :: rlon 1053 1053 REAL, DIMENSION(klon) :: rlat … … 1191 1191 ! Compress restart file variables for SISVAT 1192 1192 1193 DO ikl = 1, k lon1193 DO ikl = 1, knon 1194 1194 i = ikl2i(ikl) 1195 1195 IF (i > 0) THEN … … 1256 1256 1257 1257 !====================================================================== 1258 SUBROUTINE sisvatredem (fichnom, ikl2i, rlon, rlat)1258 SUBROUTINE sisvatredem (fichnom, knon, ikl2i, rlon, rlat) 1259 1259 1260 1260 … … 1281 1281 1282 1282 CHARACTER(LEN = *) :: fichnom 1283 INTEGER, DIMENSION(klon), INTENT(IN) :: ikl2i 1283 INTEGER, INTENT(IN) :: knon 1284 INTEGER, DIMENSION(knon), INTENT(IN) :: ikl2i 1284 1285 REAL, DIMENSION(klon), INTENT(IN) :: rlon 1285 1286 REAL, DIMENSION(klon), INTENT(IN) :: rlat … … 1332 1333 ! Uncompress SISVAT output variables for storage 1333 1334 1334 DO ikl = 1, k lon1335 DO ikl = 1, knon 1335 1336 i = ikl2i(ikl) 1336 1337 IF (i > 0) THEN
Note: See TracChangeset
for help on using the changeset viewer.
