Changeset 5022 for LMDZ6/trunk/libf/phylmd/surf_landice_mod.F90
- Timestamp:
- Jul 5, 2024, 4:38:48 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/surf_landice_mod.F90
r4947 r5022 23 23 snowhgt, qsnow, to_ice, sissnow, & 24 24 alb3, runoff, & 25 flux_u1, flux_v1) 25 flux_u1, flux_v1 & 26 #ifdef ISO 27 & ,xtprecip_rain, xtprecip_snow,xtspechum,Rland_ice & 28 & ,xtsnow,xtsol,xtevap & 29 #endif 30 & ) 26 31 27 32 USE dimphy … … 33 38 USE phys_local_var_mod, ONLY : zxrhoslic, zxustartlic, zxqsaltlic 34 39 USE phys_output_var_mod, ONLY : snow_o,zfra_o 40 #ifdef ISO 41 USE fonte_neige_mod, ONLY : xtrun_off_lic 42 USE infotrac_phy, ONLY : ntiso,niso 43 USE isotopes_routines_mod, ONLY: calcul_iso_surf_lic_vectall 44 #ifdef ISOVERIF 45 USE isotopes_mod, ONLY: iso_eau,ridicule 46 USE isotopes_verif_mod 47 #endif 48 #endif 49 35 50 !FC 36 51 USE ioipsl_getin_p_mod, ONLY : getin_p … … 68 83 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 69 84 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf 85 #ifdef ISO 86 REAL, DIMENSION(ntiso,klon), INTENT(IN) :: xtprecip_rain, xtprecip_snow 87 REAL, DIMENSION(ntiso,klon), INTENT(IN) :: xtspechum 88 #endif 89 70 90 71 91 LOGICAL, INTENT(IN) :: debut !true if first step … … 85 105 REAL, DIMENSION(klon), INTENT(INOUT) :: agesno 86 106 REAL, DIMENSION(klon, nsoilmx), INTENT(INOUT) :: tsoil 107 #ifdef ISO 108 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: xtsnow, xtsol 109 REAL, DIMENSION(niso,klon), INTENT(INOUT) :: Rland_ice 110 #endif 111 87 112 88 113 ! Output variables … … 108 133 REAL, DIMENSION(klon), INTENT(OUT) :: sissnow 109 134 REAL, DIMENSION(klon), INTENT(OUT) :: runoff !Land ice runoff 135 #ifdef ISO 136 REAL, DIMENSION(ntiso,klon), INTENT(OUT) :: xtevap 137 ! real, DIMENSION(niso,klon) :: xtrun_off_lic_0_diag ! est une variable globale de 138 ! fonte_neige 139 #endif 110 140 111 141 … … 120 150 REAL, DIMENSION(klon) :: fqfonte,ffonte 121 151 REAL, DIMENSION(klon) :: run_off_lic_frac 152 #ifdef ISO 153 REAL, PARAMETER :: t_coup = 273.15 154 REAL, DIMENSION(klon) :: fqfonte_diag 155 REAL, DIMENSION(klon) :: fq_fonte_diag 156 REAL, DIMENSION(klon) :: snow_evap_diag 157 REAL, DIMENSION(klon) :: fqcalving_diag 158 REAL max_eau_sol_diag 159 REAL, DIMENSION(klon) :: runoff_diag 160 REAL, DIMENSION(klon) :: run_off_lic_diag 161 REAL :: coeff_rel_diag 162 INTEGER :: ixt 163 REAL, DIMENSION(niso,klon) :: xtsnow_prec,xtsol_prec 164 REAL, DIMENSION(klon) :: snow_prec,qsol_prec 165 ! real, DIMENSION(klon) :: run_off_lic_0_diag 166 #endif 167 168 122 169 REAL, DIMENSION(klon) :: emis_new !Emissivity 123 170 REAL, DIMENSION(klon) :: swdown,lwdown … … 163 210 !FC firtscall initializations 164 211 !****************************************************************************************** 212 #ifdef ISO 213 #ifdef ISOVERIF 214 ! write(*,*) 'surf_land_ice 1499' 215 DO i=1,knon 216 IF (iso_eau > 0) THEN 217 CALL iso_verif_egalite_choix(xtsnow(iso_eau,i),snow(i), & 218 & 'surf_land_ice 126',errmax,errmaxrel) 219 ENDIF !IF (iso_eau > 0) THEN 220 ENDDO !DO i=1,knon 221 #endif 222 #endif 223 165 224 IF (firstcall) THEN 166 225 alb_vis_sno_lic=0.77 … … 202 261 !**************************************************************************************** 203 262 #ifdef CPP_INLANDSIS 263 264 #ifdef ISO 265 CALL abort_gcm('surf_landice 235','isotopes pas dans INLANDSIS',1) 266 #endif 204 267 205 268 debut_is=debut … … 322 385 1.,AcoefH, AcoefQ, BcoefH, BcoefQ, & 323 386 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 387 388 #ifdef ISO 389 #ifdef ISOVERIF 390 !write(*,*) 'surf_land_ice 1499' 391 DO i=1,knon 392 IF (iso_eau > 0) THEN 393 IF (snow(i) > ridicule) THEN 394 CALL iso_verif_egalite_choix(xtsnow(iso_eau,i),snow(i), & 395 & 'surf_land_ice 1151',errmax,errmaxrel) 396 ENDIF !IF ((snow(i) > ridicule)) THEN 397 ENDIF !IF (iso_eau > 0) THEN 398 ENDDO !DO i=1,knon 399 #endif 400 401 DO i=1,knon 402 snow_prec(i)=snow(i) 403 DO ixt=1,niso 404 xtsnow_prec(ixt,i)=xtsnow(ixt,i) 405 ENDDO !DO ixt=1,niso 406 ! initialisation: 407 fq_fonte_diag(i)=0.0 408 fqfonte_diag(i)=0.0 409 snow_evap_diag(i)=0.0 410 ENDDO !DO i=1,knon 411 #endif 324 412 325 413 CALL calcul_flux_wind(knon, dtime, & … … 523 611 524 612 CALL fonte_neige(knon, is_lic, knindex, dtime, & 525 tsurf, precip_rain, precip_totsnow, & 526 snow, qsol, tsurf_new, evap_totsnow) 613 tsurf, precip_rain, precip_totsnow, & 614 snow, qsol, tsurf_new, evap_totsnow & 615 #ifdef ISO 616 & ,fq_fonte_diag,fqfonte_diag,snow_evap_diag,fqcalving_diag & 617 & ,max_eau_sol_diag,runoff_diag,run_off_lic_diag,coeff_rel_diag & 618 #endif 619 & ) 620 621 622 #ifdef ISO 623 #ifdef ISOVERIF 624 DO i=1,knon 625 IF (iso_eau > 0) THEN 626 CALL iso_verif_egalite_choix(Rland_ice(iso_eau,i),1.0, & 627 & 'surf_landice_mod 217',errmax,errmaxrel) 628 ENDIF !IF (iso_eau > 0) THEN 629 ENDDO !DO i=1,knon 630 #endif 631 632 CALL calcul_iso_surf_lic_vectall(klon,knon, & 633 & evap,snow_evap_diag,Tsurf_new,snow, & 634 & fq_fonte_diag,fqfonte_diag,dtime,t_coup, & 635 & precip_snow,xtprecip_snow,precip_rain,xtprecip_rain, snow_prec,xtsnow_prec, & 636 & xtspechum,spechum,ps,Rland_ice, & 637 & xtevap,xtsnow,fqcalving_diag, & 638 & knindex,is_lic,run_off_lic_diag,coeff_rel_diag & 639 & ) 640 641 ! call fonte_neige_export_xtrun_off_lic_0(knon,xtrun_off_lic_0_diag) 642 643 #endif 527 644 528 529 645 WHERE (snow(1 : knon) .LT. 0.0001) agesno(1 : knon) = 0. 530 646 zfra(1:knon) = MAX(0.0,MIN(1.0,snow(1:knon)/(snow(1:knon)+10.0)))
Note: See TracChangeset
for help on using the changeset viewer.