Ignore:
Timestamp:
Sep 19, 2006, 4:23:21 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Pour la conservation du flux d'eau OM, JLD
LF

Location:
LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/clesphys.h

    r524 r705  
    1010       REAL*8 RCO2, RCH4, RN2O, RCFC11, RCFC12 
    1111       REAL*8 CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt
     12cOM ---> correction du bilan d'eau global
     13cOM Correction sur precip KE
     14       REAL cvl_corr
     15cOM Fonte calotte dans bilan eau
     16       LOGICAL ok_lic_melt
     17
    1218cIM simulateur ISCCP
    1319       INTEGER top_height, overlap
     
    2935     ,     , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter
    3036     ,     , ok_kzmin, lev_histhf, lev_histday, lev_histmth
     37     ,     , ok_lic_melt, cvl_corr
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/clesphys.inc

    r524 r705  
    1616       INTEGER :: lev_histhf, lev_histday, lev_histmth
    1717
     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
    1824       COMMON/clesphys/cycle_diurne, soil_model, new_oliq, &
    1925     &     ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con &
     
    2127     &     , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt &
    2228     &     , 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_patches/libf/phylmd/clmain.F

    r589 r705  
    2020cIM cf JLD    .                  zcoefh,zu1,zv1, t2m, q2m, u10m, v10m)
    2121     .                  zcoefh,zu1,zv1, t2m, q2m, u10m, v10m,
    22      .                  fqcalving,ffonte, run_off_lic_0)
     22     .                  fqcalving,fqfonte,ffonte, run_off_lic_0)
    2323cAA .                  itr, tr, flux_surf, d_tr)
    2424cAA REM:
     
    7373c dflux_q derive du flux latent
    7474c ffonte----Flux thermique utilise pour fondre la neige
     75c fqfonte -- quantite d'eau due a la fonte de la calotte
    7576c fqcalving-Flux d'eau "perdue" par la surface et necessaire pour limiter la
    7677c           hauteur de neige, en kg/m2/s
     
    102103      REAL dflux_t(klon), dflux_q(klon)
    103104cIM cf JLD
    104       REAL y_fqcalving(klon), y_ffonte(klon)
    105       REAL fqcalving(klon,nbsrf), ffonte(klon,nbsrf)
     105      REAL y_fqcalving(klon), y_fqfonte(klon), y_ffonte(klon)
     106      REAL fqcalving(klon,nbsrf), fqfonte(klon,nbsrf), ffonte(klon,nbsrf)
    106107      REAL run_off_lic_0(klon), y_run_off_lic_0(klon)
    107108
     
    579580cIM cf JLD    s          y_flux_t, y_flux_q, y_dflux_t, y_dflux_q)
    580581     s          y_flux_t, y_flux_q, y_dflux_t, y_dflux_q,
    581      s          y_fqcalving,y_ffonte,y_run_off_lic_0)
     582     s          y_fqcalving,y_fqfonte,y_ffonte,y_run_off_lic_0)
    582583c
    583584c calculer la longueur de rugosite sur ocean
     
    643644cIM cf JLD ??
    644645         fqcalving(i,nsrf) = y_fqcalving(j)       
     646         fqfonte(i,nsrf) = y_fqfonte(j)       
    645647         ffonte(i,nsrf) = y_ffonte(j)       
    646648         cdragh(i) = cdragh(i) + ycoefh(j,1)
     
    824826cIM cf JLD    s                flux_t, flux_q,dflux_s,dflux_l)
    825827     s                flux_t, flux_q,dflux_s,dflux_l,
    826      s                fqcalving,ffonte,run_off_lic_0)
     828     s                fqcalving,fqfonte,ffonte,run_off_lic_0)
    827829
    828830      USE interface_surf
     
    900902c hauteur de neige, en kg/m2/s
    901903      REAL fqcalving(klon)
     904c Quantite d'eau de fonte de la calotte kg/mé/s
     905      REAL fqfonte(klon)
    902906c======================================================================
    903907      REAL t_grnd  ! temperature de rappel pour glace de mer
     
    11201124     s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new,
    11211125cIM cf JLD    s pctsrf_new, agesno)
    1122      s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0)
     1126     s pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0)
    11231127
    11241128
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/conf_phys.F90

    r586 r705  
    275275!! KE
    276276!
     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
    277284!Config Key  = epmax
    278285!Config Desc = Efficacite precip
     
    514521  ok_kzmin = .true.
    515522  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)
    516530
    517531!
     
    574588  write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 =  ',RCFC11
    575589  write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 =  ',RCFC12
     590  write(numout,*)' cvl_corr=', cvl_corr
     591  write(numout,*)'ok_lic_melt=', ok_lic_melt
    576592  write(numout,*)' epmax = ', epmax
    577593  write(numout,*)' ok_adj_ema = ', ok_adj_ema
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/ini_histmth.h

    r581 r705  
    317317     .                "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    318318     .                "ave(X)", zsto,zout)
     319c
     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)
    319323cIM: 171003
    320324         DO nsrf = 1, nbsrf
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/interface_surf.F90

    r589 r705  
    3939#include "YOMCST.inc"
    4040#include "indicesol.inc"
    41 
     41!IM
     42#include "clesphys.inc"
    4243
    4344! run_off      ruissellement total
     
    7475      & evap, fluxsens, fluxlat, dflux_l, dflux_s, &             
    7576      & tsol_rad, tsurf_new, alb_new, alblw, emis_new, &
    76       & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0)
     77      & z0_new, pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0)
    7778
    7879
     
    282283  ffonte(1:knon)=0.
    283284  fqcalving(1:knon)=0.
     285  fqfonte  (1:knon)=0.
    284286
    285287  cal = 999999. ; beta = 999999. ; dif_grnd = 999999. ; capsol = 999999.
     
    375377     &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    376378     &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    377      &   fqcalving,ffonte, run_off_lic_0)
     379     &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    378380
    379381
     
    628630             &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    629631             &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    630              &   fqcalving,ffonte, run_off_lic_0)
     632             &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    631633
    632634!     calcul albedo
     
    723725     &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    724726     &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    725      &   fqcalving,ffonte, run_off_lic_0)
     727     &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    726728
    727729! passage du run-off des glaciers calcule dans fonte_neige au coupleur
     
    13641366! l'avoir lu
    13651367  real, allocatable,dimension(:,:),save :: pctsrf_sav
    1366   real, dimension(iim, jjm+1, 2) :: tamp_srf
     1368  real, dimension(iim, jjm+1, 3) :: tamp_srf
    13671369  integer, allocatable, dimension(:), save :: tamp_ind
    13681370  real, allocatable, dimension(:,:),save :: tamp_zmasq
     
    17151717      wri_rriv = cpl_rriv(:,:)
    17161718      wri_rcoa = cpl_rcoa(:,:)
    1717       DO j = 1, jjm + 1
    1718         wri_calv(:,j) = sum(cpl_rlic(:,j)) / iim
    1719       enddo
     1719!Essai OM+JLD : ca marche !!!! (17 mars 2006)
     1720      CALL gath2cpl( pctsrf(1,is_lic), tamp_srf(1,1,3), klon, klon, iim, jjm, tamp_ind)
     1721      DO j = 1, jjm+1
     1722         wri_calv(1,j) = DOT_PRODUCT (cpl_rlic(1:iim,j), tamp_srf(1:iim,j,3)) / REAL(iim)
     1723         wri_calv(2:iim,j) = wri_calv(1,j)
     1724      ENDDO
    17201725
    17211726      where (tamp_zmasq /= 1.)
     
    26422647     & petAcoef, peqAcoef, petBcoef, peqBcoef, &
    26432648     & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    2644      & fqcalving,ffonte,run_off_lic_0)
     2649     & fqcalving,fqfonte,ffonte,run_off_lic_0)
    26452650
    26462651! Routine de traitement de la fonte de la neige dans le cas du traitement
     
    27032708  real, dimension(klon), intent(INOUT):: ffonte
    27042709! Flux d'eau "perdue" par la surface et necessaire pour que limiter la
    2705 ! hauteur de neige, en kg/m2/s
    2706   real, dimension(klon), intent(INOUT):: fqcalving
     2710! hauteur de neige, en kg/m2/s. Et flux d'eau de fonte de la calotte.
     2711  REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte
    27072712  real, dimension(klon), intent(INOUT):: run_off_lic_0
    27082713! Variables locales
     
    28242829      fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i))
    28252830      ffonte(i) = fq_fonte * RLMLT/dtime
     2831      fqfonte(i) = fq_fonte/dtime
    28262832      snow(i) = max(0., snow(i) - fq_fonte)
    28272833      bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     
    28322838        fq_fonte = MAX((tsurf_new(i)-RTT )/chaice,0.0)
    28332839        ffonte(i) = ffonte(i) + fq_fonte * RLMLT/dtime
    2834         bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     2840        IF ( ok_lic_melt ) THEN
     2841           fqfonte(i) = fqfonte(i) + fq_fonte/dtime
     2842           bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     2843        ENDIF
    28352844        tsurf_new(i) = RTT
    28362845      ENDIF
     
    28502859 &                        (1. - coeff_rel) * run_off_lic_0(i)
    28512860      run_off_lic_0(i) = run_off_lic(i)
    2852       run_off_lic(i) = run_off_lic(i) + bil_eau_s(i)/dtime
     2861      run_off_lic(i) = run_off_lic(i) + fqfonte(i)/dtime
    28532862    endif
    28542863  enddo
  • LMDZ4/branches/IPSL-CM4_IPCC_patches/libf/phylmd/physiq.F

    r524 r705  
    592592c                               !et necessaire pour limiter la
    593593c                               !hauteur de neige, en kg/m2/s
    594       REAL zxffonte(klon), zxfqcalving(klon)
     594      REAL fqfonte(klon,nbsrf)  !Quantite d'eau de fonte des glaciers
     595      REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon)
    595596
    596597      LOGICAL offline           ! Controle du stockage ds "physique"
     
    972973c Declaration des constantes et des fonctions thermodynamiques
    973974c
     975         SAVE fqfonte
    974976#include "YOMCST.h"
    975977#include "YOETHF.h"
     
    10261028       IF (debut) THEN
    10271029C
     1030         fqfonte(:,:)=0.
    10281031         IF (if_ebil.ge.1) d_h_vcol_phy=0.
    10291032c
     
    15101513     s            dsens, devap,
    15111514     s            ycoefh,yu1,yv1, t2m, q2m, u10m, v10m,
    1512      s            fqcalving, ffonte, run_off_lic_0)
     1515     s            fqcalving, fqfonte,ffonte, run_off_lic_0)
    15131516c
    15141517CXXX PB
     
    15771580         zxffonte(i) = 0.0
    15781581         zxfqcalving(i) = 0.0
     1582         zxfqfonte(i) = 0.0
    15791583c
    15801584         IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     
    16031607            zxfqcalving(i) = zxfqcalving(i) +
    16041608     .                      fqcalving(i,nsrf)*pctsrf(i,nsrf)
     1609            zxfqfonte(i) = zxfqfonte(i) +
     1610     .                      fqfonte(i,nsrf)*pctsrf(i,nsrf)
    16051611c        ENDIF
    16061612        ENDDO
     
    16221628          IF (pctsrf(i,nsrf) .LT. epsfra)
    16231629     .    fqcalving(i,nsrf) = zxfqcalving(i)
     1630          IF (pctsrf(i,nsrf) .LT. epsfra)
     1631     .    fqfonte(i,nsrf) = zxfqfonte(i)
    16241632        ENDDO
    16251633      ENDDO
Note: See TracChangeset for help on using the changeset viewer.