Ignore:
Timestamp:
Sep 20, 2006, 12:54:27 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Integration des modifications d'OM et JLD pour une meilleure prise en compte
de la conservation du flux d'eau
LF

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  
    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_branch/libf/phylmd/clesphys.inc

    r524 r710  
    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_branch/libf/phylmd/clmain.F

    r524 r710  
    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
     
    562563cIM cf JLD    s          y_flux_t, y_flux_q, y_dflux_t, y_dflux_q)
    563564     s          y_flux_t, y_flux_q, y_dflux_t, y_dflux_q,
    564      s          y_fqcalving,y_ffonte,y_run_off_lic_0)
     565     s          y_fqcalving,y_fqfonte,y_ffonte,y_run_off_lic_0)
    565566c
    566567c calculer la longueur de rugosite sur ocean
     
    626627cIM cf JLD ??
    627628         fqcalving(i,nsrf) = y_fqcalving(j)       
     629         fqfonte(i,nsrf) = y_fqfonte(j)       
    628630         ffonte(i,nsrf) = y_ffonte(j)       
    629631         cdragh(i) = cdragh(i) + ycoefh(j,1)
     
    804806cIM cf JLD    s                flux_t, flux_q,dflux_s,dflux_l)
    805807     s                flux_t, flux_q,dflux_s,dflux_l,
    806      s                fqcalving,ffonte,run_off_lic_0)
     808     s                fqcalving,fqfonte,ffonte,run_off_lic_0)
    807809
    808810      USE interface_surf
     
    874876c hauteur de neige, en kg/m2/s
    875877      REAL fqcalving(klon)
     878c Quantite d'eau de fonte de la calotte kg/mé/s
     879      REAL fqfonte(klon)
    876880c======================================================================
    877881      REAL t_grnd  ! temperature de rappel pour glace de mer
     
    10901094     s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new,
    10911095cIM cf JLD    s pctsrf_new, agesno)
    1092      s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0)
     1096     s pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0)
    10931097
    10941098
  • LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/conf_phys.F90

    r588 r710  
    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_branch/libf/phylmd/ini_histmth.h

    r668 r710  
    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_branch/libf/phylmd/interface_surf.F90

    r628 r710  
    3939#include "YOMCST.inc"
    4040#include "indicesol.inc"
    41 
     41!IM
     42#include "clesphys.inc"
    4243
    4344! run_off      ruissellement total
     
    7071      & evap, fluxsens, fluxlat, dflux_l, dflux_s, &             
    7172      & tsol_rad, tsurf_new, alb_new, alblw, emis_new, &
    72       & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0)
     73      & z0_new, pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0)
    7374
    7475
     
    272273  ffonte(1:knon)=0.
    273274  fqcalving(1:knon)=0.
     275  fqfonte  (1:knon)=0.
    274276
    275277  cal = 999999. ; beta = 999999. ; dif_grnd = 999999. ; capsol = 999999.
     
    365367     &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    366368     &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    367      &   fqcalving,ffonte, run_off_lic_0)
     369     &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    368370
    369371
     
    603605             &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    604606             &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    605              &   fqcalving,ffonte, run_off_lic_0)
     607             &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    606608
    607609!     calcul albedo
     
    693695     &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    694696     &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    695      &   fqcalving,ffonte, run_off_lic_0)
     697     &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    696698
    697699! passage du run-off des glaciers calcule dans fonte_neige au coupleur
     
    13141316! l'avoir lu
    13151317  real, allocatable,dimension(:,:),save :: pctsrf_sav
    1316   real, dimension(iim, jjm+1, 2) :: tamp_srf
     1318  real, dimension(iim, jjm+1, 3) :: tamp_srf
    13171319  integer, allocatable, dimension(:), save :: tamp_ind
    13181320  real, allocatable, dimension(:,:),save :: tamp_zmasq
     
    16401642      wri_rriv = cpl_rriv(:,:)
    16411643      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
    16451650
    16461651      where (tamp_zmasq /= 1.)
     
    25662571     & petAcoef, peqAcoef, petBcoef, peqBcoef, &
    25672572     & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    2568      & fqcalving,ffonte,run_off_lic_0)
     2573     & fqcalving,fqfonte,ffonte,run_off_lic_0)
    25692574
    25702575! Routine de traitement de la fonte de la neige dans le cas du traitement
     
    26272632  real, dimension(klon), intent(INOUT):: ffonte
    26282633! 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):: fqcalving
     2634! hauteur de neige, en kg/m2/s. Et flux d'eau de fonte de la calotte.
     2635  REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte
    26312636  real, dimension(klon), intent(INOUT):: run_off_lic_0
    26322637! Variables locales
     
    27482753      fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i))
    27492754      ffonte(i) = fq_fonte * RLMLT/dtime
     2755      fqfonte(i) = fq_fonte/dtime
    27502756      snow(i) = max(0., snow(i) - fq_fonte)
    27512757      bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     
    27562762        fq_fonte = MAX((tsurf_new(i)-RTT )/chaice,0.0)
    27572763        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
    27592768        tsurf_new(i) = RTT
    27602769      ENDIF
     
    27742783 &                        (1. - coeff_rel) * run_off_lic_0(i)
    27752784      run_off_lic_0(i) = run_off_lic(i)
    2776       run_off_lic(i) = run_off_lic(i) + bil_eau_s(i)/dtime
     2785      run_off_lic(i) = run_off_lic(i) + fqfonte(i)/dtime
    27772786    endif
    27782787  enddo
  • LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/physiq.F

    r524 r710  
    33!
    44C
    5 c $Header$
    6 c
    75      SUBROUTINE physiq (nlon,nlev,nqmax,
    86     .            debut,lafin,rjourvrai,gmtime,pdtphys,
     
    592590c                               !et necessaire pour limiter la
    593591c                               !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)
    595594
    596595      LOGICAL offline           ! Controle du stockage ds "physique"
     
    972971c Declaration des constantes et des fonctions thermodynamiques
    973972c
     973         SAVE fqfonte
    974974#include "YOMCST.h"
    975975#include "YOETHF.h"
     
    10261026       IF (debut) THEN
    10271027C
     1028         fqfonte(:,:)=0.
    10281029         IF (if_ebil.ge.1) d_h_vcol_phy=0.
    10291030c
     
    15101511     s            dsens, devap,
    15111512     s            ycoefh,yu1,yv1, t2m, q2m, u10m, v10m,
    1512      s            fqcalving, ffonte, run_off_lic_0)
     1513     s            fqcalving, fqfonte,ffonte, run_off_lic_0)
    15131514c
    15141515CXXX PB
     
    15771578         zxffonte(i) = 0.0
    15781579         zxfqcalving(i) = 0.0
     1580         zxfqfonte(i) = 0.0
    15791581c
    15801582         IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     
    16031605            zxfqcalving(i) = zxfqcalving(i) +
    16041606     .                      fqcalving(i,nsrf)*pctsrf(i,nsrf)
     1607            zxfqfonte(i) = zxfqfonte(i) +
     1608     .                      fqfonte(i,nsrf)*pctsrf(i,nsrf)
    16051609c        ENDIF
    16061610        ENDDO
     
    16221626          IF (pctsrf(i,nsrf) .LT. epsfra)
    16231627     .    fqcalving(i,nsrf) = zxfqcalving(i)
     1628          IF (pctsrf(i,nsrf) .LT. epsfra)
     1629     .    fqfonte(i,nsrf) = zxfqfonte(i)
    16241630        ENDDO
    16251631      ENDDO
  • LMDZ4/branches/IPSL-CM4_IPCC_branch/libf/phylmd/write_histmth.h

    r524 r710  
    322322       CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1,
    323323     $                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)
    324327cIM: 171003
    325328       DO nsrf = 1, nbsrf
  • LMDZ4/branches/IPSL-CM4_IPCC_branch/physiq.def

    r524 r710  
    1515ok_adj_ema = n
    1616iflag_clw = 1
     17cvl_corr=1.02
     18ok_lic_melt=no
    1719#
    1820# parametres nuages
Note: See TracChangeset for help on using the changeset viewer.