- Timestamp:
- Mar 7, 2003, 5:57:53 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90
r441 r457 67 67 & evap, fluxsens, fluxlat, dflux_l, dflux_s, & 68 68 & tsol_rad, tsurf_new, alb_new, alblw, emis_new, & 69 & z0_new, pctsrf_new, agesno) 69 !IM cf. JLD & z0_new, pctsrf_new, agesno) 70 & z0_new, pctsrf_new, agesno,fqcalving,ffonte) 70 71 71 72 … … 165 166 real, dimension(klon), intent(IN) :: sollw, sollwdown, swnet, swdown 166 167 real, dimension(klon), intent(IN) :: ps, albedo 168 !IM cf LF 169 ! real, dimension(klon), intent(INOUT) :: tsurf 170 ! real, dimension(klon), intent(IN) :: p1lay 167 171 real, dimension(klon), intent(IN) :: tsurf, p1lay 168 172 REAL, DIMENSION(klon), INTENT(INOUT) :: radsol,fder … … 188 192 real, dimension(klon), intent(INOUT):: agesno 189 193 194 ! Flux thermique utiliser pour fondre la neige 195 !jld a rajouter real, dimension(klon), intent(INOUT):: ffonte 196 real, dimension(klon), intent(INOUT):: ffonte 197 ! Flux d'eau "perdue" par la surface et nécessaire pour que limiter la 198 ! hauteur de neige, en kg/m2/s 199 !jld a rajouter real, dimension(klon), intent(INOUT):: fqcalving 200 real, dimension(klon), intent(INOUT):: fqcalving 201 190 202 ! Local 191 203 character (len = 20),save :: modname = 'interfsurf_hq' … … 206 218 real, DIMENSION(klon):: zfra 207 219 logical :: cumul = .false. 220 !IM cf LF 221 integer :: i 208 222 209 223 if (check) write(*,*) 'Entree ', modname … … 334 348 & radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, & 335 349 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 336 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 350 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 351 !IM cf JLD 352 & fqcalving,ffonte) 337 353 338 354 … … 494 510 & tsurf_new, pctsrf_new) 495 511 512 !IM cf LF 513 DO i = 1, knon 514 IF (pctsrf_new(i,nisurf) < EPSFRA) then 515 snow(i) = 0.0 516 !IM cf LF/JLD tsurf(i) = RTT - 1.8 517 tsurf_new(i) = RTT - 1.8 518 IF (soil_model) tsoil(i,:) = RTT -1.8 519 endif 520 enddo 521 496 522 CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd) 497 523 498 524 IF (soil_model) THEN 499 CALL soil(dtime, nisurf, knon,snow, tsurf, tsoil,soilcap, soilflux) 525 !IM cf LF/JLD CALL soil(dtime, nisurf, knon,snow, tsurf, tsoil,soilcap, soilflux) 526 CALL soil(dtime, nisurf, knon,snow, tsurf_new, tsoil,soilcap, soilflux) 500 527 cal(1:knon) = RCPD / soilcap(1:knon) 501 528 radsol(1:knon) = radsol(1:knon) + soilflux(1:knon) … … 517 544 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 518 545 546 !IM cf JP 12.02.03 547 ! DO i = 1, knon 548 ! IF (pctsrf_new(i,nisurf) < EPSFRA) then 549 ! snow(i) = 0.0 550 ! tsurf_new(i) = RTT - 1.8 551 ! IF (soil_model) tsoil(i,:) = RTT -1.8 552 ! endif 553 ! enddo 554 519 555 IF (ocean /= 'couple') THEN 520 556 CALL fonte_neige( klon, knon, nisurf, dtime, & … … 523 559 & radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, & 524 560 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 525 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 561 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 562 !IM cf JLD 563 & fqcalving,ffonte) 526 564 527 565 ! calcul albedo … … 592 630 & radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, & 593 631 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 594 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 632 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 633 !IM cf JLD 634 & fqcalving,ffonte) 595 635 596 636 ! … … 2439 2479 & radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, & 2440 2480 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 2441 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 2481 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 2482 !IM cf JLD 2483 & fqcalving,ffonte) 2442 2484 2443 2485 ! Routine de traitement de la fonte de la neige dans le cas du traitement … … 2477 2519 #include "FCTTRE.inc" 2478 2520 #include "indicesol.inc" 2521 !IM cf JLD 2522 !#include "YOMCST.inc" 2479 2523 2480 2524 ! Parametres d'entree … … 2493 2537 real, dimension(klon), intent(INOUT):: tsurf_new, evap, fluxsens, fluxlat 2494 2538 real, dimension(klon), intent(INOUT):: dflux_s, dflux_l 2539 ! Flux thermique utiliser pour fondre la neige 2540 real, dimension(klon), intent(INOUT):: ffonte 2541 ! Flux d'eau "perdue" par la surface et necessaire pour que limiter la 2542 ! hauteur de neige, en kg/m2/s 2543 real, dimension(klon), intent(INOUT):: fqcalving 2495 2544 2496 2545 ! Variables locales 2546 ! Masse maximum de neige (kg/m2). Au dessus de ce seuil, la neige 2547 ! en exces "s'ecoule" (calving) 2548 real, parameter :: snow_max=1. 2497 2549 integer :: i 2498 2550 real, dimension(klon) :: zx_mh, zx_nh, zx_oh … … 2507 2559 real, parameter :: t_grnd = 271.35, t_coup = 273.15 2508 2560 !! PB temporaire en attendant mieux pour le modele de neige 2561 ! REAL, parameter :: chasno = RLMLT/(2.3867E+06*0.15) 2509 2562 REAL, parameter :: chasno = 3.334E+05/(2.3867E+06*0.15) 2510 2563 ! … … 2585 2638 ! Y'a-t-il fonte de neige? 2586 2639 ! 2640 ffonte=0. 2587 2641 do i = 1, knon 2588 2642 neige_fond = ((snow(i) > epsfra .OR. nisurf == is_sic .OR. nisurf == is_lic) & … … 2590 2644 if (neige_fond) then 2591 2645 fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i)) 2646 ffonte(i) = fq_fonte * RLMLT/dtime 2592 2647 snow(i) = max(0., snow(i) - fq_fonte) 2593 2648 bil_eau_s(i) = bil_eau_s(i) + fq_fonte 2594 2649 tsurf_new(i) = tsurf_new(i) - fq_fonte * chasno 2595 IF (nisurf == is_sic .OR. nisurf == is_lic ) tsurf_new(i) = RTT -1.8 2650 !IM cf JLD OK 2651 IF (nisurf == is_sic .OR. nisurf == is_lic ) tsurf_new(i) = RTT 2596 2652 d_ts(i) = tsurf_new(i) - tsurf(i) 2597 2653 ! zx_h_ts(i) = tsurf_new(i) * RCPD * zx_pkh(i) … … 2611 2667 !!$ fq_fonte = bilan_f / zx_sl(i) 2612 2668 endif 2613 2669 ! 2670 ! s'il y a une hauteur trop importante de neige, elle s'coule 2671 fqcalving(i) = max(0., snow(i) - snow_max)/dtime 2672 snow(i)=min(snow(i),snow_max) 2673 ! 2614 2674 IF (nisurf == is_ter) then 2615 2675 qsol(i) = qsol(i) + bil_eau_s(i)
Note: See TracChangeset
for help on using the changeset viewer.