Changeset 710 for LMDZ4/branches/IPSL-CM4_IPCC_branch
- Timestamp:
- Sep 20, 2006, 12:54:27 PM (18 years ago)
- Location:
- LMDZ4/branches/IPSL-CM4_IPCC_branch
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/clesphys.h
r524 r710 10 10 REAL*8 RCO2, RCH4, RN2O, RCFC11, RCFC12 11 11 REAL*8 CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 12 cOM ---> correction du bilan d'eau global 13 cOM Correction sur precip KE 14 REAL cvl_corr 15 cOM Fonte calotte dans bilan eau 16 LOGICAL ok_lic_melt 17 12 18 cIM simulateur ISCCP 13 19 INTEGER top_height, overlap … … 29 35 , , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter 30 36 , , ok_kzmin, lev_histhf, lev_histday, lev_histmth 37 , , ok_lic_melt, cvl_corr -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/clesphys.inc
r524 r710 16 16 INTEGER :: lev_histhf, lev_histday, lev_histmth 17 17 18 !OM ---> correction du bilan d'eau global 19 !OM Correction sur precip KE 20 REAL cvl_corr 21 !OM Fonte calotte dans bilan eau 22 LOGICAL ok_lic_melt 23 18 24 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, & 19 25 & ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con & … … 21 27 & , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 22 28 & , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter & 23 & , ok_kzmin, lev_histhf, lev_histday, lev_histmth 29 & , ok_kzmin, lev_histhf, lev_histday, lev_histmth & 30 & , ok_lic_melt, cvl_corr -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/clmain.F
r524 r710 20 20 cIM cf JLD . zcoefh,zu1,zv1, t2m, q2m, u10m, v10m) 21 21 . zcoefh,zu1,zv1, t2m, q2m, u10m, v10m, 22 . fqcalving,f fonte, run_off_lic_0)22 . fqcalving,fqfonte,ffonte, run_off_lic_0) 23 23 cAA . itr, tr, flux_surf, d_tr) 24 24 cAA REM: … … 73 73 c dflux_q derive du flux latent 74 74 c ffonte----Flux thermique utilise pour fondre la neige 75 c fqfonte -- quantite d'eau due a la fonte de la calotte 75 76 c fqcalving-Flux d'eau "perdue" par la surface et necessaire pour limiter la 76 77 c hauteur de neige, en kg/m2/s … … 102 103 REAL dflux_t(klon), dflux_q(klon) 103 104 cIM cf JLD 104 REAL y_fqcalving(klon), y_f fonte(klon)105 REAL fqcalving(klon,nbsrf), f fonte(klon,nbsrf)105 REAL y_fqcalving(klon), y_fqfonte(klon), y_ffonte(klon) 106 REAL fqcalving(klon,nbsrf), fqfonte(klon,nbsrf), ffonte(klon,nbsrf) 106 107 REAL run_off_lic_0(klon), y_run_off_lic_0(klon) 107 108 … … 562 563 cIM cf JLD s y_flux_t, y_flux_q, y_dflux_t, y_dflux_q) 563 564 s y_flux_t, y_flux_q, y_dflux_t, y_dflux_q, 564 s y_fqcalving,y_f fonte,y_run_off_lic_0)565 s y_fqcalving,y_fqfonte,y_ffonte,y_run_off_lic_0) 565 566 c 566 567 c calculer la longueur de rugosite sur ocean … … 626 627 cIM cf JLD ?? 627 628 fqcalving(i,nsrf) = y_fqcalving(j) 629 fqfonte(i,nsrf) = y_fqfonte(j) 628 630 ffonte(i,nsrf) = y_ffonte(j) 629 631 cdragh(i) = cdragh(i) + ycoefh(j,1) … … 804 806 cIM cf JLD s flux_t, flux_q,dflux_s,dflux_l) 805 807 s flux_t, flux_q,dflux_s,dflux_l, 806 s fqcalving,f fonte,run_off_lic_0)808 s fqcalving,fqfonte,ffonte,run_off_lic_0) 807 809 808 810 USE interface_surf … … 874 876 c hauteur de neige, en kg/m2/s 875 877 REAL fqcalving(klon) 878 c Quantite d'eau de fonte de la calotte kg/mé/s 879 REAL fqfonte(klon) 876 880 c====================================================================== 877 881 REAL t_grnd ! temperature de rappel pour glace de mer … … 1090 1094 s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new, 1091 1095 cIM cf JLD s pctsrf_new, agesno) 1092 s pctsrf_new, agesno,fqcalving,f fonte, run_off_lic_0)1096 s pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0) 1093 1097 1094 1098 -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/conf_phys.F90
r588 r710 275 275 !! KE 276 276 ! 277 !Config key = cvl_corr 278 !Config Desc = Facteur multiplication des precip convectives dans KE 279 !Config Def = 1.00 280 !Config Help = 1.02 pour un moderne ou un pre-ind. A ajuster pour un glaciaire 281 cvl_corr = 1.00 282 CALL getin('cvl_corr', cvl_corr) 283 277 284 !Config Key = epmax 278 285 !Config Desc = Efficacite precip … … 514 521 ok_kzmin = .true. 515 522 call getin('ok_kzmin',ok_kzmin) 523 524 !Config Key = ok_lic_melt 525 !Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau 526 !Config Def = .false. 527 !Config Help = mettre a .false. pour assurer la conservation en eau 528 ok_lic_melt = .false. 529 call getin('ok_lic_melt', ok_lic_melt) 516 530 517 531 ! … … 574 588 write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 = ',RCFC11 575 589 write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 = ',RCFC12 590 write(numout,*)' cvl_corr=', cvl_corr 591 write(numout,*)'ok_lic_melt=', ok_lic_melt 576 592 write(numout,*)' epmax = ', epmax 577 593 write(numout,*)' ok_adj_ema = ', ok_adj_ema -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/ini_histmth.h
r668 r710 317 317 . "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 318 318 . "ave(X)", zsto,zout) 319 c 320 CALL histdef(nid_mth, "fqfonte","Land ice melt", 321 . "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 322 . "ave(X)", zsto,zout) 319 323 cIM: 171003 320 324 DO nsrf = 1, nbsrf -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/interface_surf.F90
r628 r710 39 39 #include "YOMCST.inc" 40 40 #include "indicesol.inc" 41 41 !IM 42 #include "clesphys.inc" 42 43 43 44 ! run_off ruissellement total … … 70 71 & evap, fluxsens, fluxlat, dflux_l, dflux_s, & 71 72 & tsol_rad, tsurf_new, alb_new, alblw, emis_new, & 72 & z0_new, pctsrf_new, agesno,fqcalving,f fonte, run_off_lic_0)73 & z0_new, pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0) 73 74 74 75 … … 272 273 ffonte(1:knon)=0. 273 274 fqcalving(1:knon)=0. 275 fqfonte (1:knon)=0. 274 276 275 277 cal = 999999. ; beta = 999999. ; dif_grnd = 999999. ; capsol = 999999. … … 365 367 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 366 368 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 367 & fqcalving,f fonte, run_off_lic_0)369 & fqcalving,fqfonte,ffonte, run_off_lic_0) 368 370 369 371 … … 603 605 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 604 606 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 605 & fqcalving,f fonte, run_off_lic_0)607 & fqcalving,fqfonte,ffonte, run_off_lic_0) 606 608 607 609 ! calcul albedo … … 693 695 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 694 696 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 695 & fqcalving,f fonte, run_off_lic_0)697 & fqcalving,fqfonte,ffonte, run_off_lic_0) 696 698 697 699 ! passage du run-off des glaciers calcule dans fonte_neige au coupleur … … 1314 1316 ! l'avoir lu 1315 1317 real, allocatable,dimension(:,:),save :: pctsrf_sav 1316 real, dimension(iim, jjm+1, 2) :: tamp_srf1318 real, dimension(iim, jjm+1, 3) :: tamp_srf 1317 1319 integer, allocatable, dimension(:), save :: tamp_ind 1318 1320 real, allocatable, dimension(:,:),save :: tamp_zmasq … … 1640 1642 wri_rriv = cpl_rriv(:,:) 1641 1643 wri_rcoa = cpl_rcoa(:,:) 1642 DO j = 1, jjm + 1 1643 wri_calv(:,j) = sum(cpl_rlic(:,j)) / iim 1644 enddo 1644 !Essai OM+JLD : ca marche !!!! (17 mars 2006) 1645 CALL gath2cpl( pctsrf(1,is_lic), tamp_srf(1,1,3), klon, klon, iim, jjm, tamp_ind) 1646 DO j = 1, jjm+1 1647 wri_calv(1,j) = DOT_PRODUCT (cpl_rlic(1:iim,j), tamp_srf(1:iim,j,3)) / REAL(iim) 1648 wri_calv(2:iim,j) = wri_calv(1,j) 1649 ENDDO 1645 1650 1646 1651 where (tamp_zmasq /= 1.) … … 2566 2571 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 2567 2572 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 2568 & fqcalving,f fonte,run_off_lic_0)2573 & fqcalving,fqfonte,ffonte,run_off_lic_0) 2569 2574 2570 2575 ! Routine de traitement de la fonte de la neige dans le cas du traitement … … 2627 2632 real, dimension(klon), intent(INOUT):: ffonte 2628 2633 ! Flux d'eau "perdue" par la surface et necessaire pour que limiter la 2629 ! hauteur de neige, en kg/m2/s 2630 real, dimension(klon), intent(INOUT):: fqcalving2634 ! hauteur de neige, en kg/m2/s. Et flux d'eau de fonte de la calotte. 2635 REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte 2631 2636 real, dimension(klon), intent(INOUT):: run_off_lic_0 2632 2637 ! Variables locales … … 2748 2753 fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i)) 2749 2754 ffonte(i) = fq_fonte * RLMLT/dtime 2755 fqfonte(i) = fq_fonte/dtime 2750 2756 snow(i) = max(0., snow(i) - fq_fonte) 2751 2757 bil_eau_s(i) = bil_eau_s(i) + fq_fonte … … 2756 2762 fq_fonte = MAX((tsurf_new(i)-RTT )/chaice,0.0) 2757 2763 ffonte(i) = ffonte(i) + fq_fonte * RLMLT/dtime 2758 bil_eau_s(i) = bil_eau_s(i) + fq_fonte 2764 IF ( ok_lic_melt ) THEN 2765 fqfonte(i) = fqfonte(i) + fq_fonte/dtime 2766 bil_eau_s(i) = bil_eau_s(i) + fq_fonte 2767 ENDIF 2759 2768 tsurf_new(i) = RTT 2760 2769 ENDIF … … 2774 2783 & (1. - coeff_rel) * run_off_lic_0(i) 2775 2784 run_off_lic_0(i) = run_off_lic(i) 2776 run_off_lic(i) = run_off_lic(i) + bil_eau_s(i)/dtime2785 run_off_lic(i) = run_off_lic(i) + fqfonte(i)/dtime 2777 2786 endif 2778 2787 enddo -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/physiq.F
r524 r710 3 3 ! 4 4 C 5 c $Header$6 c7 5 SUBROUTINE physiq (nlon,nlev,nqmax, 8 6 . debut,lafin,rjourvrai,gmtime,pdtphys, … … 592 590 c !et necessaire pour limiter la 593 591 c !hauteur de neige, en kg/m2/s 594 REAL zxffonte(klon), zxfqcalving(klon) 592 REAL fqfonte(klon,nbsrf) !Quantite d'eau de fonte des glaciers 593 REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon) 595 594 596 595 LOGICAL offline ! Controle du stockage ds "physique" … … 972 971 c Declaration des constantes et des fonctions thermodynamiques 973 972 c 973 SAVE fqfonte 974 974 #include "YOMCST.h" 975 975 #include "YOETHF.h" … … 1026 1026 IF (debut) THEN 1027 1027 C 1028 fqfonte(:,:)=0. 1028 1029 IF (if_ebil.ge.1) d_h_vcol_phy=0. 1029 1030 c … … 1510 1511 s dsens, devap, 1511 1512 s ycoefh,yu1,yv1, t2m, q2m, u10m, v10m, 1512 s fqcalving, f fonte, run_off_lic_0)1513 s fqcalving, fqfonte,ffonte, run_off_lic_0) 1513 1514 c 1514 1515 CXXX PB … … 1577 1578 zxffonte(i) = 0.0 1578 1579 zxfqcalving(i) = 0.0 1580 zxfqfonte(i) = 0.0 1579 1581 c 1580 1582 IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) + … … 1603 1605 zxfqcalving(i) = zxfqcalving(i) + 1604 1606 . fqcalving(i,nsrf)*pctsrf(i,nsrf) 1607 zxfqfonte(i) = zxfqfonte(i) + 1608 . fqfonte(i,nsrf)*pctsrf(i,nsrf) 1605 1609 c ENDIF 1606 1610 ENDDO … … 1622 1626 IF (pctsrf(i,nsrf) .LT. epsfra) 1623 1627 . fqcalving(i,nsrf) = zxfqcalving(i) 1628 IF (pctsrf(i,nsrf) .LT. epsfra) 1629 . fqfonte(i,nsrf) = zxfqfonte(i) 1624 1630 ENDDO 1625 1631 ENDDO -
LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/write_histmth.h
r524 r710 322 322 CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1, 323 323 $ ndex2d) 324 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqfonte,zx_tmp_2d) 325 CALL histwrite(nid_mth,"fqfonte",itau_w,zx_tmp_2d,iim*jjmp1, 326 $ ndex2d) 324 327 cIM: 171003 325 328 DO nsrf = 1, nbsrf -
LMDZ4/branches/IPSL-CM4_IPCC_branch/physiq.def
r524 r710 15 15 ok_adj_ema = n 16 16 iflag_clw = 1 17 cvl_corr=1.02 18 ok_lic_melt=no 17 19 # 18 20 # parametres nuages
Note: See TracChangeset
for help on using the changeset viewer.