Ignore:
Timestamp:
Jun 4, 2007, 4:34:47 PM (17 years ago)
Author:
Laurent Fairhead
Message:

Merge entre la version V3_conv et le HEAD
YM, JG, LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/clmain.F

    r686 r766  
    44c
    55c
     6#define IO_DISCONNECTED
     7
    68      SUBROUTINE clmain(dtime,itap,date0,pctsrf,pctsrf_new,
    79     .                  t,q,u,v,
     
    2426     .                  pblh,capCL,oliqCL,cteiCL,pblT,
    2527     .                  therm,trmb1,trmb2,trmb3,plcl,
    26      .                  fqcalving,ffonte, run_off_lic_0,
     28     .                  fqcalving,fqfonte,ffonte, run_off_lic_0,
    2729cIM "slab" ocean
    2830     .                  flux_o, flux_g, tslab, seaice)
     
    4547      USE ioipsl
    4648      USE interface_surf
     49      USE dimphy
    4750      IMPLICIT none
    4851c======================================================================
     
    8588ccc
    8689c ffonte----Flux thermique utilise pour fondre la neige
     90c fqfonte -- quantite d'eau due a la fonte de la calotte
    8791c fqcalving-Flux d'eau "perdue" par la surface et necessaire pour limiter la
    8892c           hauteur de neige, en kg/m2/s
     
    105109c pblT------- T au nveau HCL
    106110c======================================================================
    107 #include "dimensions.h"
    108 #include "dimphy.h"
     111cym#include "dimensions.h"
     112cym#include "dimphy.h"
    109113#include "indicesol.h"
    110 c$$$ PB ajout pour soil
     114cxxx PB ajout pour soil
    111115#include "dimsoil.h"
    112116#include "iniprint.h"
     
    133137      REAL amn, amx
    134138cIM cf JLD
    135       REAL y_fqcalving(klon), y_ffonte(klon)
    136       REAL fqcalving(klon,nbsrf), ffonte(klon,nbsrf)
     139      REAL y_fqcalving(klon), y_fqfonte(klon), y_ffonte(klon)
     140      REAL fqcalving(klon,nbsrf), fqfonte(klon,nbsrf),ffonte(klon,nbsrf)
    137141      REAL run_off_lic_0(klon), y_run_off_lic_0(klon)
    138142
     
    159163      REAL albe(klon,nbsrf)
    160164      REAL alblw(klon,nbsrf)
    161 c$$$ PB
     165cxxx PB
    162166      REAL fluxlat(klon,nbsrf)
    163167C
     
    174178      REAL zv1(klon)
    175179cAA
    176 c$$$ PB ajout pour soil
     180cxxx PB ajout pour soil
    177181      LOGICAL soil_model
    178182cIM ajout seuils cdrm, cdrh
     
    197201      real yfder(klon), ytaux(klon), ytauy(klon)
    198202      REAL yrugm(klon), yrads(klon),yrugoro(klon)
    199 c$$$ PB
     203cxxx PB
    200204      REAL yfluxlat(klon)
    201205C
     
    248252      CHARACTER*80 cldebug
    249253      SAVE cldebug
     254c$OMP THREADPRIVATE(cldebug)
    250255      CHARACTER*8 cl_surf(nbsrf)
    251256      SAVE cl_surf
     257c$OMP THREADPRIVATE(cl_surf)
    252258      INTEGER nhoridbg, nidbg
    253259      SAVE nhoridbg, nidbg
     260c$OMP THREADPRIVATE(nhoridbg, nidbg)
     261#ifndef IO_DISCONNECTED
    254262      INTEGER ndexbg(iim*(jjm+1))
    255263      REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1), zjulian
    256264      REAL tabindx(klon)
    257265      REAL debugtab(iim,jjm+1)
     266#endif
    258267      LOGICAL first_appel
    259268      SAVE first_appel
    260269      DATA first_appel/.true./
     270c$OMP THREADPRIVATE(first_appel)
    261271      LOGICAL debugindex
    262272      SAVE debugindex
    263273      DATA debugindex/.false./
     274c$OMP THREADPRIVATE(debugindex)
    264275      integer idayref
    265276#include "temps.h"
     
    327338          call flush(6)
    328339      endif
    329       IF (debugindex .and. first_appel) THEN
    330           first_appel=.false.
     340      IF (first_appel) THEN
     341!          first_appel=.false.
    331342!
    332343! initialisation sorties netcdf
    333344!
     345#ifndef IO_DISCONNECTED
    334346          idayref = day_ini
    335347          CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
     
    355367          CALL histend(nidbg)
    356368          CALL histsync(nidbg)
     369#endif
    357370      ENDIF
    358371         
     
    409422      y_flux_u = 0.0
    410423      y_flux_v = 0.0
    411 C$$ PB
     424Cxx PB
    412425      y_dflux_t = 0.0
    413426      y_dflux_q = 0.0
     
    424437      ENDDO
    425438      END DO
    426 C§§§ PB
     439C PB
    427440      yfluxlat=0.
    428441      flux_t = 0.
     
    434447         d_t(i,k) = 0.0
    435448         d_q(i,k) = 0.0
    436 c$$$         flux_t(i,k) = 0.0
    437 c$$$         flux_q(i,k) = 0.0
     449cxxx         flux_t(i,k) = 0.0
     450cxxx         flux_q(i,k) = 0.0
    438451         d_u(i,k) = 0.0
    439452         d_v(i,k) = 0.0
    440 c$$$         flux_u(i,k) = 0.0
    441 c$$$         flux_v(i,k) = 0.0
     453cxxx         flux_u(i,k) = 0.0
     454cxxx         flux_v(i,k) = 0.0
    442455         zcoefh(i,k) = 0.0
    443456      ENDDO
     
    488501c variables pour avoir une sortie IOIPSL des INDEX
    489502c
     503#ifndef IO_DISCONNECTED
    490504      IF (debugindex) THEN
    491505          tabindx(:)=0.
    492506c          tabindx(1:knon)=(/FLOAT(i),i=1:knon/)
    493507          DO i=1,knon
    494             tabindx(1:knon)=FLOAT(i)
     508            tabindx(i)=FLOAT(i)
    495509          END DO
    496510          debugtab(:,:)=0.
     
    500514     $        ,ndexbg)
    501515      ENDIF
    502       IF (knon.EQ.0) GOTO 99999
     516#endif
     517
     518      fluxlat(:,nsrf) = 0.
     519     
     520cym      IF (knon.EQ.0) GOTO 99999
    503521      DO j = 1, knon
    504522      i = ni(j)
     
    546564          yqsol(:)=0.
    547565      ENDIF
    548 c$$$ PB ajour pour soil
     566cxxx PB ajour pour soil
    549567      DO k = 1, nsoilmx
    550568        DO j = 1, knon
     
    567585c
    568586c
     587cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    569588c calculer Cdrag et les coefficients d'echange
     589cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     590
     591cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     592c  Calcul anciens du LMD. Effectues de toutes facons.
     593cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     594
    570595      CALL coefkz(nsrf, knon, ypaprs, ypplay,
    571596cIM 261103
     
    705730
    706731c FH modif sur le cdrag temperature
    707 c$$$PB : déplace dans clcdrag
    708 c$$$      do i=1,knon
    709 c$$$         ycoefh(i,1)=ycoefm(i,1)*0.8
    710 c$$$      enddo
     732cxxxPB : d�lace dans clcdrag
     733cxxx      do i=1,knon
     734cxxx         ycoefh(i,1)=ycoefm(i,1)*0.8
     735cxxx      enddo
    711736
    712737cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     
    726751     e          ywindsp,
    727752c -- LOOP
    728 c$$$     e          ysollw, ysolsw,
     753cxxx     e          ysollw, ysolsw,
    729754     e          ysollw, ysollwdown, ysolsw,yfluxlat,
    730755     s          pctsrf_new, yagesno,
    731756     s          y_d_t, y_d_q, y_d_ts, yz0_new,
    732757     s          y_flux_t, y_flux_q, y_dflux_t, y_dflux_q,
    733      s          y_fqcalving,y_ffonte,y_run_off_lic_0,
     758     s          y_fqcalving,y_fqfonte,y_ffonte,y_run_off_lic_0,
    734759cIM "slab" ocean
    735760     s          y_flux_o, y_flux_g, ytslab, y_seaice)
     
    758783          y_d_t(j,k) = y_d_t(j,k) * ypct(j)
    759784          y_d_q(j,k) = y_d_q(j,k) * ypct(j)
    760 C§§§ PB
     785C PB
    761786          flux_t(i,k,nsrf) = y_flux_t(j,k)
    762787          flux_q(i,k,nsrf) = y_flux_q(j,k)
    763788          flux_u(i,k,nsrf) = y_flux_u(j,k)
    764789          flux_v(i,k,nsrf) = y_flux_v(j,k)
    765 c$$$ PB        y_flux_t(j,k) = y_flux_t(j,k) * ypct(j)
    766 c$$$ PB        y_flux_q(j,k) = y_flux_q(j,k) * ypct(j)
     790cxxx PB        y_flux_t(j,k) = y_flux_t(j,k) * ypct(j)
     791cxxx PB        y_flux_q(j,k) = y_flux_q(j,k) * ypct(j)
    767792          y_d_u(j,k) = y_d_u(j,k) * ypct(j)
    768793          y_d_v(j,k) = y_d_v(j,k) * ypct(j)
    769 c$$$ PB        y_flux_u(j,k) = y_flux_u(j,k) * ypct(j)
    770 c$$$ PB        y_flux_v(j,k) = y_flux_v(j,k) * ypct(j)
     794cxxx PB        y_flux_u(j,k) = y_flux_u(j,k) * ypct(j)
     795cxxx PB        y_flux_v(j,k) = y_flux_v(j,k) * ypct(j)
    771796        ENDDO
    772797      ENDDO
     
    790815         rugos(i,nsrf) = yz0_new(j)
    791816         fluxlat(i,nsrf) = yfluxlat(j)
    792 c$$$ pb         rugmer(i) = yrugm(j)
     817cxxx pb         rugmer(i) = yrugm(j)
    793818         IF (nsrf .EQ. is_oce) then
    794819           rugmer(i) = yrugm(j)
     
    798823         agesno(i,nsrf) = yagesno(j)
    799824         fqcalving(i,nsrf) = y_fqcalving(j)       
     825         fqfonte(i,nsrf) = y_fqfonte(j)       
    800826         ffonte(i,nsrf) = y_ffonte(j)       
    801827         cdragh(i) = cdragh(i) + ycoefh(j,1)
     
    818844        END DO
    819845      END IF
    820 c$$$ PB ajout pour soil
     846c@$$ PB ajout pour soil
    821847      ftsoil(:,:,nsrf) = 0.
    822848      DO k = 1, nsoilmx
     
    838864         d_t(i,k) = d_t(i,k) + y_d_t(j,k)
    839865         d_q(i,k) = d_q(i,k) + y_d_q(j,k)
    840 c$$$ PB        flux_t(i,k) = flux_t(i,k) + y_flux_t(j,k)
    841 c$$$         flux_q(i,k) = flux_q(i,k) + y_flux_q(j,k)
     866c@$$ PB        flux_t(i,k) = flux_t(i,k) + y_flux_t(j,k)
     867c@$$         flux_q(i,k) = flux_q(i,k) + y_flux_q(j,k)
    842868         d_u(i,k) = d_u(i,k) + y_d_u(j,k)
    843869         d_v(i,k) = d_v(i,k) + y_d_v(j,k)
    844 c$$$  PB       flux_u(i,k) = flux_u(i,k) + y_flux_u(j,k)
    845 c$$$         flux_v(i,k) = flux_v(i,k) + y_flux_v(j,k)
     870c@$$  PB       flux_u(i,k) = flux_u(i,k) + y_flux_u(j,k)
     871c@$$         flux_v(i,k) = flux_v(i,k) + y_flux_v(j,k)
    846872         zcoefh(i,k) = zcoefh(i,k) + ycoefh(j,k)
    847873      ENDDO
     
    10131039     s                d_t, d_q, d_ts, z0_new,
    10141040     s                flux_t, flux_q,dflux_s,dflux_l,
    1015      s                fqcalving,ffonte,run_off_lic_0,
     1041     s                fqcalving,fqfonte,ffonte,run_off_lic_0,
    10161042cIM "slab" ocean
    10171043     s                flux_o,flux_g,tslab,seaice)
    10181044
    10191045      USE interface_surf
    1020 
     1046      USE dimphy
    10211047      IMPLICIT none
    10221048c======================================================================
     
    10251051c======================================================================
    10261052#include "dimensions.h"
    1027 #include "dimphy.h"
     1053cym#include "dimphy.h"
    10281054#include "YOMCST.h"
    10291055#include "YOETHF.h"
     
    10891115c Flux thermique utiliser pour fondre la neige
    10901116      REAL ffonte(klon)
    1091 c Flux d'eau "perdue" par la surface et nécessaire pour que limiter la
     1117c Flux d'eau "perdu" par la surface et n�essaire pour que limiter la
    10921118c hauteur de neige, en kg/m2/s
    10931119      REAL fqcalving(klon)
     1120c Quantite d'eau de fonte de la calotte kg/m?s
     1121      REAL fqfonte(klon)
    10941122cIM "slab" ocean
    10951123      REAL tslab(klon)  !temperature du slab ocean (K) (OCEAN='slab  ')
     
    11391167      real sollw(klon), sollwdown(klon), swnet(klon), swdown(klon)
    11401168      real p1lay(klon)
    1141 c$$$C PB ajout pour soil
     1169c@$$C PB ajout pour soil
    11421170      LOGICAL soil_model
    11431171      REAL tsoil(klon, nsoilmx)
     
    13251353     s evap, fluxsens, fluxlat, dflux_l, dflux_s,             
    13261354     s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new,
    1327      s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0,
     1355     s pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0,
    13281356cIM "slab" ocean
    13291357     s flux_o, flux_g, tslab, seaice)
     
    13751403     e                  paprs,pplay,delp,
    13761404     s                  d_ven,flux_v)
     1405      use dimphy
    13771406      IMPLICIT none
    13781407c======================================================================
     
    13971426c flux_v---output-R- (diagnostic) flux du vent: (kg m/s)/(m**2 s)
    13981427c======================================================================
    1399 #include "dimensions.h"
    1400 #include "dimphy.h"
     1428cym#include "dimensions.h"
     1429cym#include "dimphy.h"
    14011430#include "iniprint.h"
    14021431      INTEGER knon
     
    15001529     .                  qsurf,
    15011530     .                  pcfm, pcfh)
     1531      USE dimphy
    15021532      IMPLICIT none
    15031533c======================================================================
     
    15221552c pcfh-----output-R- coefficients a calculer (chaleur et humidite)
    15231553c======================================================================
    1524 #include "dimensions.h"
    1525 #include "dimphy.h"
     1554cym#include "dimensions.h"
     1555cym#include "dimphy.h"
    15261556#include "YOMCST.h"
    15271557#include "indicesol.h"
     
    15691599      PARAMETER (mixlen=35.0)
    15701600      INTEGER isommet ! le sommet de la couche limite
    1571       PARAMETER (isommet=klev)
     1601cym      PARAMETER (isommet=klev)
    15721602      LOGICAL tvirtu ! calculer Ri d'une maniere plus performante
    15731603      PARAMETER (tvirtu=.TRUE.)
     
    16041634      LOGICAL appel1er
    16051635      SAVE appel1er
     1636c$OMP THREADPRIVATE(appel1er)
    16061637c
    16071638c Fonctions thermodynamiques et fonctions d'instabilite
     
    16171648      DATA appel1er /.TRUE./
    16181649c
     1650cym
     1651      isommet=klev
     1652     
    16191653      IF (appel1er) THEN
    16201654        if (prt_level > 9) THEN
     
    18201854      SUBROUTINE coefkz2(nsrf, knon, paprs, pplay,t,
    18211855     .                  pcfm, pcfh)
     1856      USE dimphy
    18221857      IMPLICIT none
    18231858c======================================================================
     
    18361871c pcfh-----output-R- coefficients a calculer (chaleur et humidite)
    18371872c======================================================================
    1838 #include "dimensions.h"
    1839 #include "dimphy.h"
     1873cym#include "dimensions.h"
     1874cym#include "dimphy.h"
    18401875#include "YOMCST.h"
    18411876#include "indicesol.h"
     
    19231958      SUBROUTINE calbeta(dtime,indice,knon,snow,qsol,
    19241959     .                    vbeta,vcal,vdif)
     1960      USE dimphy
    19251961      IMPLICIT none
    19261962c======================================================================
     
    19311967c Calculer quelques parametres pour appliquer la couche limite
    19321968c ------------------------------------------------------------
    1933 #include "dimensions.h"
    1934 #include "dimphy.h"
     1969cym#include "dimensions.h"
     1970cym#include "dimphy.h"
    19351971#include "YOMCST.h"
    19361972#include "indicesol.h"
     
    20002036     .                    tsol,beta,u,v,t,q,
    20012037     .                    cd_h, cd_m, pcfh, pcfm, cgh, cgq)
     2038      USE dimphy
    20022039      IMPLICIT none
    20032040c======================================================================
     
    20142051c model. J. of Climate, vol. 6, 1825-1842.
    20152052c======================================================================
    2016 #include "dimensions.h"
    2017 #include "dimphy.h"
     2053cym#include "dimensions.h"
     2054cym#include "dimphy.h"
    20182055#include "YOMCST.h"
    20192056#include "iniprint.h"
     
    20342071c
    20352072      INTEGER isommet
    2036       PARAMETER (isommet=klev)
     2073cym      PARAMETER (isommet=klev)
    20372074      REAL vk
    20382075      PARAMETER (vk=0.40)
     
    21102147c Initialisation
    21112148c
     2149cym
     2150      isommet=klev
     2151
    21122152      DO i = 1, klon
    21132153         pcfh(i,1) = cd_h(i)
Note: See TracChangeset for help on using the changeset viewer.