Ignore:
Timestamp:
Jun 11, 2007, 4:50:43 PM (17 years ago)
Author:
Laurent Fairhead
Message:

Adaptation du code a la nouvelle interface avec les surface de Josefine
LF

File:
1 edited

Legend:

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

    r776 r782  
    2626      USE misc_mod, mydebug=>debug
    2727      USE vampir
     28      USE pbl_surface_mod, ONLY : pbl_surface
     29
     30#ifdef INCA
     31cym      USE chemshut
     32      USE species_names
     33#ifdef INCA_CH4
     34!      USE obs_pos
     35#endif
     36#endif
     37
     38      USE ocean_slab_mod, ONLY   : ocean_slab_get_vars
     39      USE ocean_cpl_mod, ONLY    : ocean_cpl_get_vars
     40      USE ocean_forced_mod, ONLY : ocean_forced_get_vars
     41      USE fonte_neige_mod, ONLY  : fonte_neige_get_vars
     42
    2843      IMPLICIT none
    2944c======================================================================
     
    7085c d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s)
    7186c omega---input-R-vitesse verticale en Pa/s
    72 cIM comgeomphy.h BEG
    73 c cuphy----input-R-resolution des mailles en x (m)
    74 c cvphy----input-R-resolution des mailles en y (m)
    75 cIM comgeomphy.h END
    7687c d_u-----output-R-tendance physique de "u" (m/s/s)
    7788c d_v-----output-R-tendance physique de "v" (m/s/s)
     
    8798      integer iip1
    8899      parameter (iip1=iim+1)
    89 cym#include "dimphy.h"
     100
    90101#include "regdim.h"
    91102#include "indicesol.h"
     
    110121      PARAMETER (ok_stratus=.FALSE.)
    111122c======================================================================
    112 c Parametres lies au coupleur OASIS:
    113 #include "oasis.h"
    114       INTEGER,SAVE :: npas, nexca
    115 c$OMP THREADPRIVATE(npas, nexca)
    116123      logical rnpb
    117124#ifdef INCA
     
    124131      SAVE ocean
    125132c$OMP THREADPRIVATE(ocean)
    126 c      parameter (ocean = 'force ')
    127 c     parameter (ocean = 'couple')
    128       logical ok_ocean
    129       SAVE ok_ocean
    130 c$OMP THREADPRIVATE(ok_ocean)
    131 c
     133
    132134cIM "slab" ocean
    133135      REAL tslab(klon)    !Temperature du slab-ocean
     
    167169      save ok_journe
    168170c$OMP THREADPRIVATE(ok_journe)
    169 c      PARAMETER (ok_journe=.true.)
    170171c
    171172      LOGICAL ok_mensuel ! sortir le fichier mensuel
    172173      save ok_mensuel
    173174c$OMP THREADPRIVATE(ok_mensuel)
    174 c      PARAMETER (ok_mensuel=.true.)
    175175c
    176176      LOGICAL ok_instan ! sortir le fichier instantane
    177177      save ok_instan
    178178c$OMP THREADPRIVATE(ok_instan)
    179 c      PARAMETER (ok_instan=.true.)
    180179c
    181180      LOGICAL ok_region ! sortir le fichier regional
     
    185184      REAL fm_therm(klon,klev+1)
    186185      REAL entr_therm(klon,klev)
    187       real,allocatable,save :: q2(:,:,:)
    188 c$OMP THREADPRIVATE(q2)
    189 cym      save q2
    190186c======================================================================
    191187c
     
    212208      REAL presnivs(klev)
    213209      REAL znivsig(klev)
    214       REAL zsurf(nbsrf)
    215       INTEGER kinv
    216210      real pir
    217211
     
    223217      REAL,allocatable,save :: t_ancien(:,:), q_ancien(:,:)
    224218c$OMP THREADPRIVATE(t_ancien, q_ancien)
    225 cym      SAVE t_ancien, q_ancien
    226219      LOGICAL ancien_ok
    227220      SAVE ancien_ok
     
    268261      REAL,allocatable,save :: swup0(:,:), swup(:,:)
    269262c$OMP THREADPRIVATE(swdn0 , swdn, swup0, swup)
    270 cym      SAVE swdn0 , swdn, swup0, swup
    271263c
    272264      REAL,allocatable,save :: SWdn200clr(:), SWdn200(:)
    273265      REAL,allocatable,save :: SWup200clr(:), SWup200(:)
    274266c$OMP THREADPRIVATE(SWdn200clr, SWdn200, SWup200clr, SWup200)
    275 cym      SAVE SWdn200clr, SWdn200, SWup200clr, SWup200
    276267c
    277268      REAL,allocatable,save :: lwdn0(:,:), lwdn(:,:)
    278269      REAL,allocatable,save :: lwup0(:,:), lwup(:,:)
    279270c$OMP THREADPRIVATE(lwdn0 , lwdn, lwup0, lwup)
    280 cym      SAVE lwdn0 , lwdn, lwup0, lwup
    281271c
    282272      REAL,allocatable,save :: LWdn200clr(:), LWdn200(:)
    283273      REAL,allocatable,save :: LWup200clr(:), LWup200(:)
    284274c$OMP THREADPRIVATE(LWdn200clr, LWdn200, LWup200clr, LWup200)
    285 cym      SAVE LWdn200clr, LWdn200, LWup200clr, LWup200
    286275c
    287276      REAL,allocatable,save :: LWdnTOA(:), LWdnTOAclr(:)
    288277c$OMP THREADPRIVATE(LWdnTOA, LWdnTOAclr)
    289 cym      SAVE LWdnTOA, LWdnTOAclr
    290278c
    291279cIM Amip2
     
    323311      REAL,SAVE,ALLOCATABLE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
    324312      REAL,SAVE,ALLOCATABLE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
    325 c
    326 cym      SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD,
    327 cym     .     qsumSTD, rhsumSTD
    328313c$OMP THREADPRIVATE(tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD)
    329314c$OMP THREADPRIVATE(qsumSTD, rhsumSTD)
     
    332317      real,SAVE,ALLOCATABLE :: tnondef(:,:,:)
    333318c$OMP THREADPRIVATE(tnondef)
    334 cym      save tnondef
    335319c
    336320c les produits uvSTD, vqSTD, .., T2STD sont calcules
     
    360344      real,save,allocatable :: T2sumSTD(:,:,:)
    361345c
    362 cym      SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD
    363 cym      SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD
    364346c$OMP THREADPRIVATE(uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD)
    365347c$OMP THREADPRIVATE(vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD)
     
    433415      REAL seed_re(klon,napisccp)
    434416      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
    435 cym      SAVE seed_old
    436417c$OMP THREADPRIVATE(seed_old)
    437418cym !!!! A voir plus tard
     
    511492      PARAMETER(nbregdyn=5)
    512493
    513       INTEGER linv
    514494      INTEGER,ALLOCATABLE,SAVE :: pct_ocean(:,:)
    515495c$OMP THREADPRIVATE(pct_ocean)
     
    683663
    684664      REAL,allocatable,save :: ftsol(:,:)
    685 c$OMP THREADPRIVATE(ftsol)
    686 cym      SAVE ftsol                  ! temperature du sol
     665c$OMP THREADPRIVATE(ftsol)       ! temperature du sol
    687666
    688667cIM
     
    691670cym     SAVE newsst
    692671c
    693       REAL,allocatable,save :: ftsoil(:,:,:)
    694 c$OMP THREADPRIVATE(ftsoil)
    695 cym      SAVE ftsoil                 ! temperature dans le sol
    696 c
    697       REAL,allocatable,save :: fevap(:,:)
    698 c$OMP THREADPRIVATE(fevap)
    699 cym      SAVE fevap                 ! evaporation
    700       REAL,allocatable,save :: fluxlat(:,:)
    701 c$OMP THREADPRIVATE(fluxlat)
    702 cym      SAVE fluxlat
     672      REAL fevap(klon,nbsrf)
     673      REAL fluxlat(klon,nbsrf)
    703674c
    704675      REAL,allocatable,save :: deltat(:)
     
    706677cym      SAVE deltat                 ! ecart avec la SST de reference
    707678c
    708       REAL,allocatable,save :: fqsurf(:,:)
    709 c$OMP THREADPRIVATE(fqsurf)
    710 cym      SAVE fqsurf                 ! humidite de l'air au contact de la surface
    711 c
    712       REAL,allocatable,save :: qsol(:)
    713 c$OMP THREADPRIVATE(qsol)
    714 cym      SAVE qsol                  ! hauteur d'eau dans le sol
    715 c
    716       REAL,allocatable,save :: fsnow(:,:)
    717 c$OMP THREADPRIVATE(fsnow)
    718 cym      SAVE fsnow                  ! epaisseur neigeuse
     679      REAL qsol(klon)
    719680c
    720681      REAL,allocatable,save :: falbe(:,:)
    721 c$OMP THREADPRIVATE(falbe)
    722 cym      SAVE falbe                  ! albedo par type de surface
     682c$OMP THREADPRIVATE(falbe)       ! albedo par type de surface
     683c
    723684      REAL,allocatable,save :: falblw(:,:)
    724 c$OMP THREADPRIVATE(falblw)     
    725 cym      SAVE falblw                 ! albedo par type de surface
     685c$OMP THREADPRIVATE(falblw)       ! albedo par type de surface
    726686
    727687c
     
    770730      INTEGER igwd,idx(klon),itest(klon)
    771731c
    772       REAL,allocatable,save :: agesno(:,:)
    773 c$OMP THREADPRIVATE(agesno)
    774 cym      SAVE agesno                 ! age de la neige
     732      REAL agesno(klon,nbsrf)
    775733c
    776734      REAL,allocatable,save :: alb_neig(:)
     
    778736cym      SAVE alb_neig               ! albedo de la neige
    779737c
    780       REAL,allocatable,save :: run_off_lic_0(:)
    781 c$OMP THREADPRIVATE(run_off_lic_0)
     738c      REAL,allocatable,save :: run_off_lic_0(:)
     739cc$OMP THREADPRIVATE(run_off_lic_0)
    782740cym      SAVE run_off_lic_0
    783741cKE43
     
    836794      REAL yu1(klon)            ! vents dans la premiere couche U
    837795      REAL yv1(klon)            ! vents dans la premiere couche V
    838       REAL,SAVE,ALLOCATABLE :: ffonte(:,:)    !Flux thermique utilise pour fondre la neige
    839 c$OMP THREADPRIVATE(ffonte)
    840       REAL,SAVE,ALLOCATABLE :: fqcalving(:,:) !Flux d'eau "perdu" par la surface
    841 c$OMP THREADPRIVATE(fqcalving)
    842       REAL,SAVE,ALLOCATABLE :: fqfonte(:,:)  !Quantite d'eau de fonte des glaciers
    843 c$OMP THREADPRIVATE(fqfonte)
    844 c                               !et necessaire pour limiter la
    845 c                               !hauteur de neige, en kg/m2/s
     796
    846797      REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon)
    847798
     
    882833      REAL evap(klon), devap(klon) ! evaporation et sa derivee
    883834      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
    884       REAL,allocatable,save :: dlw(:)    ! derivee infra rouge
    885 c$OMP THREADPRIVATE(dlw)
    886 cym
    887 cym      SAVE dlw
    888 cym
     835
    889836      REAL bils(klon) ! bilan de chaleur au sol
    890837      REAL wfbilo(klon,nbsrf) ! bilan d'eau, pour chaque
     
    892839      REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque
    893840C                             ! type de sous-surface et pondere par la fraction
    894       REAL,allocatable,save :: fder(:) ! Derive de flux (sensible et latente)
    895 c$OMP THREADPRIVATE(fder)
    896 cym      save fder
     841      REAL fder(klon)         
    897842      REAL ve(klon) ! integr. verticale du transport meri. de l'energie
    898843      REAL vq(klon) ! integr. verticale du transport meri. de l'eau
     
    900845      REAL uq(klon) ! integr. verticale du transport zonal de l'eau
    901846c
    902       REAL,allocatable,save :: frugs(:,:) ! longueur de rugosite
    903 c$OMP THREADPRIVATE(frugs)
    904 cym      save frugs
     847      REAL frugs(klon,nbsrf)
    905848      REAL zxrugs(klon) ! longueur de rugosite
    906849c
     
    944887      EXTERNAL alboc     ! calculer l'albedo sur ocean
    945888      EXTERNAL ajsec     ! ajustement sec
    946       EXTERNAL clmain    ! couche limite
    947889      EXTERNAL conlmd    ! convection (schema LMD)
    948890cKE43
     
    1047989c
    1048990      REAL zxtsol(klon), zxqsurf(klon), zxsnow(klon), zxfluxlat(klon)
     991      REAL zxsnow_dummy(klon)
    1049992c
    1050993      REAL dist, rmu0(klon), fract(klon)
     
    10701013cym      REAL zx_aire(iim,jjmp1)
    10711014c
    1072 cIM cf. AM Variables locales pour la CLA (hbtm2)
    1073 c
    1074       REAL,SAVE,ALLOCATABLE :: pblh(:, :)           ! Hauteur de couche limite
    1075 c$OMP THREADPRIVATE(pblh)
    1076       REAL,SAVE,ALLOCATABLE :: plcl(:, :)           ! Niveau de condensation de la CLA
    1077 c$OMP THREADPRIVATE(plcl)
    1078       REAL,SAVE,ALLOCATABLE :: capCL(:, :)          ! CAPE de couche limite
    1079 c$OMP THREADPRIVATE(capCL)
    1080       REAL,SAVE,ALLOCATABLE :: oliqCL(:, :)          ! eau_liqu integree de couche limite
    1081 c$OMP THREADPRIVATE(oliqCL)
    1082       REAL,SAVE,ALLOCATABLE :: cteiCL(:, :)          ! cloud top instab. crit. couche limite
    1083 c$OMP THREADPRIVATE(cteiCL)
    1084       REAL,SAVE,ALLOCATABLE :: pblt(:, :)          ! T a la Hauteur de couche limite
    1085 c$OMP THREADPRIVATE(pblt)
    1086       REAL,SAVE,ALLOCATABLE :: therm(:, :)
    1087 c$OMP THREADPRIVATE(therm)
    1088       REAL,SAVE,ALLOCATABLE :: trmb1(:, :)          ! deep_cape
    1089 c$OMP THREADPRIVATE(trmb1)
    1090       REAL,SAVE,ALLOCATABLE :: trmb2(:, :)          ! inhibition
    1091 c$OMP THREADPRIVATE(trmb2)
    1092       REAL,SAVE,ALLOCATABLE :: trmb3(:, :)          ! Point Omega
    1093 c$OMP THREADPRIVATE(trmb3)
    1094 c Grdeurs de sorties
     1015c Grandeurs de sorties
    10951016      REAL s_pblh(klon), s_lcl(klon), s_capCL(klon)
    10961017      REAL s_oliqCL(klon), s_cteiCL(klon), s_pblt(klon)
     
    12461167cIM RH a 2m (la surface)
    12471168      REAL rh2m(klon), qsat2m(klon)
    1248       REAL zx_rh2m(klon,nbsrf), zx_qsat2m(klon,nbsrf)
    1249       REAL zx_qs1(klon,nbsrf), zx_t1(klon,nbsrf), zdelta1(klon,nbsrf)
    1250       REAL zcor1(klon,nbsrf)
    12511169      REAL tpot(klon), tpote(klon)
    12521170      REAL Lheat
     
    13701288      REAL ZRCPD
    13711289c-jld ec_conser
     1290      REAL t2m(klon,nbsrf)  ! temperature a 2m
     1291      REAL q2m(klon,nbsrf)  ! humidite a 2m
     1292
    13721293cIM: t2m, q2m, u10m, v10m et t2mincels, t2maxcels
    1373       REAL,SAVE,ALLOCATABLE :: t2m(:,:), q2m(:,:)   !temperature, humidite a 2m
    1374 c$OMP THREADPRIVATE(t2m,q2m)
    13751294      REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) !vents a 10m
    13761295c$OMP THREADPRIVATE(u10m,v10m)
     
    14201339c Declaration des constantes et des fonctions thermodynamiques
    14211340c
    1422       REAL Field_tmp(klon_glo,klevp1)
    14231341      LOGICAL,SAVE :: first=.true.
    14241342c$OMP THREADPRIVATE(first)
     
    14431361      aam=0.
    14441362      torsfc=0.
    1445 cym => pour le couple ocean => revoir dans clmain/intersurf
    1446       fluxg(:)=0.
    1447       fluxo(:)=0.     
    14481363
    14491364      if (first) then
    14501365     
    14511366      allocate( t_ancien(klon,klev), q_ancien(klon,klev))
    1452       allocate( q2(klon,klev+1,nbsrf))
    14531367      allocate( swdn0(klon,klevp1), swdn(klon,klevp1))
    14541368      allocate( swup0(klon,klevp1), swup(klon,klevp1))
     
    14641378      allocate( rlon(klon))
    14651379      allocate( ftsol(klon,nbsrf))
    1466       allocate( ftsoil(klon,nsoilmx,nbsrf))
    1467       allocate( fevap(klon,nbsrf))
    1468       allocate( fluxlat(klon,nbsrf))
    14691380      allocate( deltat(klon))
    1470       allocate( fqsurf(klon,nbsrf))
    1471       allocate( qsol(klon))
    1472       allocate( fsnow(klon,nbsrf))
    14731381      allocate( falbe(klon,nbsrf))
    14741382      allocate( falblw(klon,nbsrf))
     
    14821390      allocate( rugoro(klon))
    14831391      allocate( zuthe(klon),zvthe(klon))
    1484       allocate( agesno(klon,nbsrf))
    14851392      allocate( alb_neig(klon))
    1486       allocate( run_off_lic_0(klon))
    14871393      allocate( ema_workcbmf(klon))   
    14881394      allocate( ema_cbmf(klon))
     
    14991405      allocate( snow_fall(klon) )
    15001406      allocate( total_rain(klon), nday_rain(klon))
    1501       allocate( dlw(klon)   )
    1502       allocate( fder(klon) )
    1503       allocate( frugs(klon,nbsrf) )
    15041407      allocate( pctsrf(klon,nbsrf))
    15051408      allocate( albsol(klon))
     
    15461449      allocate( newsst(klon))
    15471450      allocate( zqasc(klon,klev))
    1548       allocate( therm(klon, nbsrf))
    15491451      allocate( rain_con(klon))
    1550       allocate( pblt(klon, nbsrf))
    1551       allocate( t2m(klon,nbsrf), q2m(klon,nbsrf) ) 
    15521452      allocate( u10m(klon,nbsrf), v10m(klon,nbsrf))
    15531453      allocate( topswad(klon), solswad(klon))
    15541454      allocate( topswai(klon), solswai(klon) )
    1555       allocate( ffonte(klon,nbsrf))
    1556       allocate( fqcalving(klon,nbsrf))
    1557       allocate( fqfonte(klon,nbsrf))
    1558       allocate( pblh(klon, nbsrf))
    1559       allocate( plcl(klon, nbsrf)) 
    1560       allocate( capCL(klon, nbsrf))   
    1561       allocate( oliqCL(klon, nbsrf))       
    1562       allocate( cteiCL(klon, nbsrf))       
    1563       allocate( trmb1(klon, nbsrf))   
    1564       allocate( trmb2(klon, nbsrf))     
    1565       allocate( trmb3(klon, nbsrf))
    15661455      allocate( clwcon0(klon,klev),rnebcon0(klon,klev))
    15671456      allocate( tau_ae(klon,klev,2), piz_ae(klon,klev,2))
     
    15761465        rnebcon(:,:)=0.
    15771466        ratqs(:,:)=0.
    1578         run_off_lic_0(:)=0.
    15791467        sollw(:)=0.
    15801468        ema_work1(:,:)=0.
     
    16151503         u10m(:,:)=0.
    16161504         v10m(:,:)=0.
    1617          t2m(:,:)=0.
    1618          q2m(:,:)=0.
    1619          ffonte(:,:)=0.
    1620          fqcalving(:,:)=0.
    1621          fqfonte(:,:)=0.
    16221505         piz_ae(:,:,:)=0.
    16231506         tau_ae(:,:,:)=0.
     
    16431526c        histoW(:,:,:,:) = 0.0
    16441527! fin anne
    1645 ! Anne 12/09/2005
    1646 
    1647          pblh(:,:)   =0.        ! Hauteur de couche limite
    1648          plcl(:,:)   =0.        ! Niveau de condensation de la CLA
    1649          capCL(:,:)  =0.        ! CAPE de couche limite
    1650          oliqCL(:,:) =0.        ! eau_liqu integree de couche limite
    1651          cteiCL(:,:) =0.        ! cloud top instab. crit. couche limite
    1652          pblt(:,:)   =0.        ! T a la Hauteur de couche limite
    1653          therm(:,:)  =0.
    1654          trmb1(:,:)  =0.        ! deep_cape
    1655          trmb2(:,:)  =0.        ! inhibition
    1656          trmb3(:,:)  =0.        ! Point Omega
    1657 ! fin Anne
    1658 
    1659 cym
    1660          wfbils(:,:)=0
    1661 cym     
     1528
    16621529cIM     
    16631530         IF (ip_ebil_phy.ge.1) d_h_vcol_phy=0.
     
    16771544c Initialiser les compteurs:
    16781545c
    1679 
    1680          frugs = 0.
    16811546         itap    = 0
    16821547         itaprad = 0
     1548
    16831549         CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0,
    1684      .       rlat,rlon,pctsrf, ftsol,ftsoil,
    1685 cIM "slab" ocean
    1686      .       ocean, tslab,seaice,
    1687      .       fqsurf,qsol,fsnow,
    1688 cIM 220306  .       falbe, falblw, fevap, rain_fall,snow_fall,solsw, sollwdown,
    1689      .       falbe, falblw, fevap, rain_fall,snow_fall,solsw, sollw,
    1690      .       dlw,radsol,frugs,agesno,clesphy0,
     1550     .       rlat,rlon,pctsrf, ftsol,
     1551     .       ocean, ok_veget,
     1552     .       falbe, falblw, rain_fall,snow_fall,
     1553     .       solsw, sollw,
     1554     .       radsol,clesphy0,
    16911555     .       zmea,zstd,zsig,zgam,zthe,zpic,zval,rugoro,tabcntr0,
    1692      .       t_ancien, q_ancien, ancien_ok, rnebcon, ratqs,clwcon,
    1693      .       run_off_lic_0)
     1556     .       t_ancien, q_ancien, ancien_ok, rnebcon, ratqs,clwcon)
    16941557
    16951558       DO i=1,klon
     
    16971560     $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
    16981561     $       THEN
    1699              WRITE(*,*) 'physiq : pb sous surface au point ', i,
    1700      $           pctsrf(i, 1 : nbsrf)
     1562            WRITE(*,*)
     1563     $   'physiq apres lecture de restart: pb sous surface au point ',
     1564     $   i, pctsrf(i, 1 : nbsrf)
    17011565         ENDIF
    17021566      ENDDO
    1703  
    1704 c   ATTENTION : il faudra a terme relire q2 dans l'etat initial
    1705          q2(:,:,:)=1.e-8
    1706 c
     1567
    17071568         radpas = NINT( 86400./dtime/nbapp_rad)
    17081569c
     
    17171578cIM cf. AM 081204 END
    17181579c
    1719          IF(ocean.NE.'force ') THEN
    1720           ok_ocean=.TRUE.
    1721          ENDIF
    1722 c
    1723          CALL printflag( tabcntr0,radpas,ok_ocean,ok_oasis ,ok_journe,
     1580         CALL printflag( tabcntr0,radpas,ok_journe,
    17241581     ,                    ok_instan, ok_region )
    17251582c
     
    17801637c34EK
    17811638         IF (ok_orodr) THEN
    1782          DO i=1,klon
    1783          rugoro(i) = MAX(1.0e-05, zstd(i)*zsig(i)/2.0)
    1784          ENDDO
    1785          CALL SUGWD(klon,klev,paprs,pplay)
    1786          DO i=1,klon
    1787          zuthe(i)=0.
    1788          zvthe(i)=0.
    1789          if(zstd(i).gt.10.)then
    1790            zuthe(i)=(1.-zgam(i))*cos(zthe(i))
    1791            zvthe(i)=(1.-zgam(i))*sin(zthe(i))
    1792          endif
    1793          ENDDO
     1639           DO i=1,klon
     1640             rugoro(i) = MAX(1.0e-05, zstd(i)*zsig(i)/2.0)
     1641           ENDDO
     1642           CALL SUGWD(klon,klev,paprs,pplay)
     1643           DO i=1,klon
     1644             zuthe(i)=0.
     1645             zvthe(i)=0.
     1646             if(zstd(i).gt.10.)then
     1647               zuthe(i)=(1.-zgam(i))*cos(zthe(i))
     1648               zvthe(i)=(1.-zgam(i))*sin(zthe(i))
     1649             endif
     1650           ENDDO
    17941651         ENDIF
    17951652c
     
    18511708         ecrit_tra = ecrit_tra * un_jour
    18521709cIM 030306 END
    1853 c
    1854 c Initialiser le couplage si necessaire
    1855 c
    1856       npas = 0
    1857       nexca = 0
    1858       if (ocean == 'couple') then
    1859         npas = itaufin/ iphysiq
    1860         nexca = 86400 / dtime
    1861         write(lunout,*)' ##### Ocean couple #####'
    1862         write(lunout,*)' Valeurs des pas de temps'
    1863         write(lunout,*)' npas = ', npas
    1864         write(lunout,*)' nexca = ', nexca
    1865       endif       
    1866 c
     1710
    18671711      capemaxcels = 't_max(X)'
    18681712      t2mincels = 't_min(X)'
     
    21421986C
    21431987      END IF
    2144 C
    2145 c
    2146 c Appeler la diffusion verticale (programme de couche limite)
    2147 c
    2148       DO i = 1, klon
    2149 c       if (.not. ok_veget) then
    2150 c          frugs(i,is_ter) = SQRT(frugs(i,is_ter)**2+rugoro(i)**2)
    2151 c       endif
    2152 c         frugs(i,is_lic) = rugoro(i)
    2153 c         frugs(i,is_oce) = rugmer(i)
    2154 c         frugs(i,is_sic) = 0.001
    2155          zxrugs(i) = 0.0
    2156       ENDDO
    2157       DO nsrf = 1, nbsrf
    2158       DO i = 1, klon
    2159 c         frugs(i,nsrf) = MAX(frugs(i,nsrf),0.001)
    2160         frugs(i,nsrf) = MAX(frugs(i,nsrf),0.000015)
    2161       ENDDO
    2162       ENDDO
    2163       DO nsrf = 1, nbsrf
    2164       DO i = 1, klon
    2165             zxrugs(i) = zxrugs(i) + frugs(i,nsrf)*pctsrf(i,nsrf)
    2166       ENDDO
    2167       ENDDO
     1988
    21681989c
    21691990C calculs necessaires au calcul de l'albedo dans l'interface
     
    21761997        rmu0 = -999.999
    21771998      ENDIF
    2178 c
    2179 C     Calcul de l'abedo moyen par maille
    2180       albsol(:)=0.
    2181       albsollw(:)=0.
    2182       DO nsrf = 1, nbsrf
    2183       DO i = 1, klon
    2184          albsol(i) = albsol(i) + falbe(i,nsrf) * pctsrf(i,nsrf)
    2185          albsollw(i) = albsollw(i) + falblw(i,nsrf) * pctsrf(i,nsrf)
    2186       ENDDO
    2187       ENDDO
    2188 C
    2189 C     Repartition sous maille des flux LW et SW
    2190 C Modif OM+PASB+JLD
    2191 C Repartition du longwave par sous-surface linearisee
    2192 Cn
    2193 
    2194        DO nsrf = 1, nbsrf
    2195        DO i = 1, klon
    2196 c@$$        fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4
    2197 c@$$        fsollw(i,nsrf) = sollw(i)
    2198          fsollw(i,nsrf) = sollw(i)
    2199      $      + 4.0*RSIGMA*ztsol(i)**3 * (ztsol(i)-ftsol(i,nsrf))
    2200          fsolsw(i,nsrf) = solsw(i)*(1.-falbe(i,nsrf))/(1.-albsol(i))
    2201        ENDDO
    2202        ENDDO
    2203      
    2204 cYM   !!!!!!!!!!!!!!!!!!!!!!!!!!!!
    2205 cYM         Attention verrue
    2206 cYM    ---> A supprimer plus tard       
    2207 cYM         pour etre integre dans
    2208 cYM         ORCHIDEE       
    2209       DO i = 1, klon
    2210         sollwdown(i)=sollw(i)+RSIGMA*ztsol(i)**4
    2211       ENDDO
    2212 cYM  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!     
    2213      
    2214       fder = dlw
    22151999
    22162000      if (mydebug) then
     
    22202004        call writefield_phy('q_seri',q_seri,llm)
    22212005      endif
    2222  
    2223       IF (check) THEN
    2224        amn=MIN(tslab(1),1000.)
    2225        amx=MAX(tslab(1),-1000.)
    2226        DO i=2, klon
    2227         amn=MIN(tslab(i),amn)
    2228         amx=MAX(tslab(i),amx)
    2229        ENDDO
    2230 c
    2231        PRINT*,' debut avant clqh min max tslab',amn,amx
    2232       ENDIF !(check) THEN
    2233 c
    2234       CALL clmain(dtime,itap,date0,pctsrf,pctsrf_new,
    2235      e            t_seri,q_seri,u_seri,v_seri,
    2236      e            julien, rmu0, co2_ppm,
    2237      e            ok_veget, ocean, npas, nexca, ftsol,
    2238      $            soil_model,cdmmax, cdhmax,
    2239      $            ksta, ksta_ter, ok_kzmin, ftsoil, qsol,
    2240 cIM BAD    $            paprs,pplay,radsol, fsnow,fqsurf,fevap,falbe,falblw,
    2241      $            paprs,pplay, fsnow,fqsurf,fevap,falbe,falblw,
    2242      $            fluxlat,
    2243      e            rain_fall, snow_fall,
    2244      e            fsolsw, fsollw, sollwdown, fder,
    2245      e            rlon, rlat, cuphy, cvphy, frugs,
    2246      e            debut, lafin, agesno,rugoro ,
    2247      s            d_t_vdf,d_q_vdf,d_u_vdf,d_v_vdf,d_ts,
    2248      s            fluxt,fluxq,fluxu,fluxv,cdragh,cdragm,
    2249      s            q2,
    2250      s            dsens, devap,
    2251      s            ycoefh,yu1,yv1, t2m, q2m, u10m, v10m,
    2252      s            pblh,capCL,oliqCL,cteiCL,pblT,
    2253      s            therm,trmb1,trmb2,trmb3,plcl,
    2254      s            fqcalving, fqfonte,ffonte, run_off_lic_0,
    2255 cIM "slab" ocean
    2256      s            fluxo, fluxg, tslab, seaice)
    2257 c
    2258 CXXX PB
    2259 CXXX Incrementation des flux
    2260 CXXX
    2261 
    2262       zxfluxt=0.
    2263       zxfluxq=0.
    2264       zxfluxu=0.
    2265       zxfluxv=0.
    2266       DO nsrf = 1, nbsrf
    2267         DO k = 1, klev
    2268           DO i = 1, klon
    2269             zxfluxt(i,k) = zxfluxt(i,k) +
    2270      $          fluxt(i,k,nsrf) * pctsrf( i, nsrf)
    2271             zxfluxq(i,k) = zxfluxq(i,k) +
    2272      $          fluxq(i,k,nsrf) * pctsrf( i, nsrf)
    2273             zxfluxu(i,k) = zxfluxu(i,k) +
    2274      $          fluxu(i,k,nsrf) * pctsrf( i, nsrf)
    2275             zxfluxv(i,k) = zxfluxv(i,k) +
    2276      $          fluxv(i,k,nsrf) * pctsrf( i, nsrf)
    2277           END DO
    2278         END DO
    2279       END DO
    2280       DO i = 1, klon
    2281          sens(i) = - zxfluxt(i,1) ! flux de chaleur sensible au sol
    2282 c         evap(i) = - fluxq(i,1) ! flux d'evaporation au sol
    2283          evap(i) = - zxfluxq(i,1) ! flux d'evaporation au sol
    2284          fder(i) = dlw(i) + dsens(i) + devap(i)
    2285       ENDDO
    2286 
    2287 
     2006
     2007ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     2008c Appel au pbl_surface : Planetary Boudary Layer et Surface
     2009c Cela implique tous les interactions des sous-surfaces et la partie diffusion
     2010c turbulent du couche limit.
     2011c
     2012c Certains varibales de sorties de pbl_surface sont utiliser que pour
     2013c ecriture des fihiers hist_XXXX.nc, ces sont :
     2014c   qsol,      zq2m,      s_pblh,  s_lcl,
     2015c   s_capCL,   s_oliqCL,  s_cteiCL,s_pblT,
     2016c   s_therm,   s_trmb1,   s_trmb2, s_trmb3,
     2017c   zxrugs,    zu10m,     zv10m,   fder,
     2018c   zxqsurf,   rh2m,      zxfluxu, zxfluxv,
     2019c   frugs,     agesno,    fsollw,  fsolsw,
     2020c   d_ts,      fevap,     fluxlat, t2m,
     2021c   wfbils,    wfbilo,    fluxt,   fluxu, fluxv,
     2022c
     2023c Certains ne sont pas utiliser du tout :
     2024c   dsens, devap, zxsnow, zxfluxt, zxfluxq, q2m, fluxq
     2025c
     2026      CALL pbl_surface(
     2027     e     dtime,     date0,     itap,    julien,
     2028     e     debut,     lafin,
     2029     e     rlon,      rlat,      rugoro,  rmu0,     
     2030     e     rain_fall, snow_fall, solsw,   sollw,   
     2031     e     t_seri,    q_seri,    u_seri,  v_seri,   
     2032     e     pplay,     paprs,     pctsrf,           
     2033     +     ftsol,     falbe,     falblw,  u10m,   v10m,
     2034     s     sollwdown, cdragh,    cdragm,  yu1,    yv1,
     2035     s     albsol,    albsollw,  sens,    evap, 
     2036     s     zxtsol,    zxfluxlat, zt2m,    qsat2m,
     2037     s     d_t_vdf,   d_q_vdf,   d_u_vdf, d_v_vdf,
     2038     s     ycoefh,    pctsrf_new,               
     2039     d     qsol,      zq2m,      s_pblh,  s_lcl,
     2040     d     s_capCL,   s_oliqCL,  s_cteiCL,s_pblT,
     2041     d     s_therm,   s_trmb1,   s_trmb2, s_trmb3,
     2042     d     zxrugs,    zu10m,     zv10m,   fder,
     2043     d     zxqsurf,   rh2m,      zxfluxu, zxfluxv,
     2044     d     frugs,     agesno,    fsollw,  fsolsw,
     2045     d     d_ts,      fevap,     fluxlat, t2m,
     2046     d     wfbils,    wfbilo,    fluxt,   fluxu,  fluxv,
     2047     -     dsens,     devap,     zxsnow,
     2048     -     zxfluxt,   zxfluxq,   q2m,     fluxq )
     2049c
     2050c
     2051ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     2052
     2053      pctsrf(:,:) = pctsrf_new(:,:)
     2054     
    22882055      DO k = 1, klev
    22892056      DO i = 1, klon
     
    23032070
    23042071
    2305 cIM
    23062072      IF (ip_ebil_phy.ge.2) THEN
    2307         ztit='after clmain'
     2073        ztit='after surface_main'
    23082074        CALL diagetpq(airephy,ztit,ip_ebil_phy,2,2,dtime
    23092075     e      , t_seri,q_seri,ql_seri,qs_seri,u_seri,v_seri,paprs,pplay
     
    23152081     s      , fs_bound, fq_bound )
    23162082      END IF
    2317 C
    2318 c
    2319 c Incrementer la temperature du sol
    2320 c
    2321       DO i = 1, klon
    2322          zxtsol(i) = 0.0
    2323          zxfluxlat(i) = 0.0
    2324 c
    2325          zt2m(i) = 0.0
    2326          zq2m(i) = 0.0
    2327          zu10m(i) = 0.0
    2328          zv10m(i) = 0.0
    2329 cIM cf JLD ??
    2330          zxffonte(i) = 0.0
    2331          zxfqcalving(i) = 0.0
    2332          zxfqfonte(i) = 0.0
    2333 cIM cf. AM 081204 BEG
    2334 c
    2335          s_pblh(i) = 0.0
    2336          s_lcl(i) = 0.0
    2337          s_capCL(i) = 0.0
    2338          s_oliqCL(i) = 0.0
    2339          s_cteiCL(i) = 0.0
    2340          s_pblT(i) = 0.0
    2341          s_therm(i) = 0.0
    2342          s_trmb1(i) = 0.0
    2343          s_trmb2(i) = 0.0
    2344          s_trmb3(i) = 0.0
    2345 c
    2346          IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
    2347      $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
    2348      $       THEN
    2349              WRITE(*,*) 'physiq : pb sous surface au point ', i,
    2350      $           pctsrf(i, 1 : nbsrf)
    2351          ENDIF
    2352       ENDDO
    2353       DO nsrf = 1, nbsrf
    2354         DO i = 1, klon
    2355 c        IF (pctsrf(i,nsrf) .GE. EPSFRA) THEN
    2356             ftsol(i,nsrf) = ftsol(i,nsrf) + d_ts(i,nsrf)
    2357 cIM cf. JLD
    2358             wfbils(i,nsrf) = ( fsolsw(i,nsrf) + fsollw(i,nsrf)
    2359      $         + fluxt(i,1,nsrf) + fluxlat(i,nsrf) ) * pctsrf(i,nsrf)
    2360 cIM
    2361             wfbilo(i,nsrf) = ( fevap(i,nsrf) -
    2362      $      (rain_fall(i) + snow_fall(i)) ) * pctsrf(i,nsrf)
    2363             zxtsol(i) = zxtsol(i) + ftsol(i,nsrf)*pctsrf(i,nsrf)
    2364             zxfluxlat(i) = zxfluxlat(i) + fluxlat(i,nsrf)*pctsrf(i,nsrf)
    2365 cccIM
    2366             zt2m(i) = zt2m(i) + t2m(i,nsrf)*pctsrf(i,nsrf)
    2367             zq2m(i) = zq2m(i) + q2m(i,nsrf)*pctsrf(i,nsrf)
    2368             zu10m(i) = zu10m(i) + u10m(i,nsrf)*pctsrf(i,nsrf)
    2369             zv10m(i) = zv10m(i) + v10m(i,nsrf)*pctsrf(i,nsrf)
    2370 cIM cf JLD ??
    2371             zxffonte(i) = zxffonte(i) + ffonte(i,nsrf)*pctsrf(i,nsrf)
    2372             zxfqcalving(i) = zxfqcalving(i) +
    2373      .                      fqcalving(i,nsrf)*pctsrf(i,nsrf)
    2374             zxfqfonte(i) = zxfqfonte(i) +
    2375      .                      fqfonte(i,nsrf)*pctsrf(i,nsrf)
    2376 cIM cf. AM 081204 BEG
    2377             s_pblh(i) = s_pblh(i) + pblh(i,nsrf)*pctsrf(i,nsrf)
    2378             s_lcl(i) = s_lcl(i) + plcl(i,nsrf)*pctsrf(i,nsrf)
    2379             s_capCL(i) = s_capCL(i) + capCL(i,nsrf) *pctsrf(i,nsrf)
    2380             s_oliqCL(i) = s_oliqCL(i) + oliqCL(i,nsrf) *pctsrf(i,nsrf)
    2381             s_cteiCL(i) = s_cteiCL(i) + cteiCL(i,nsrf) *pctsrf(i,nsrf)
    2382             s_pblT(i) = s_pblT(i) + pblT(i,nsrf) *pctsrf(i,nsrf)
    2383             s_therm(i) = s_therm(i) + therm(i,nsrf) *pctsrf(i,nsrf)
    2384             s_trmb1(i) = s_trmb1(i) + trmb1(i,nsrf) *pctsrf(i,nsrf)
    2385             s_trmb2(i) = s_trmb2(i) + trmb2(i,nsrf) *pctsrf(i,nsrf)
    2386             s_trmb3(i) = s_trmb3(i) + trmb3(i,nsrf) *pctsrf(i,nsrf)
    2387 c        ENDIF
    2388         ENDDO
    2389       ENDDO
    2390 
    2391       IF (check) THEN
    2392        amn=MIN(ftsol(1,is_ter),1000.)
    2393        amx=MAX(ftsol(1,is_ter),-1000.)
    2394        DO i=2, klon
    2395         amn=MIN(ftsol(i,is_ter),amn)
    2396         amx=MAX(ftsol(i,is_ter),amx)
    2397        ENDDO
    2398 c
    2399        PRINT*,' debut apres d_ts min max ftsol',itap,amn,amx
    2400       ENDIF !(check) THEN
    2401 c
    2402 c Si une sous-fraction n'existe pas, elle prend la temp. moyenne
    2403 c
    2404       DO nsrf = 1, nbsrf
    2405         DO i = 1, klon
    2406           IF (pctsrf(i,nsrf) .LT. epsfra.OR.t2m(i,nsrf).EQ.0.) THEN
    2407            ftsol(i,nsrf) = zxtsol(i)
    2408            t2m(i,nsrf) = zt2m(i)
    2409            q2m(i,nsrf) = zq2m(i)
    2410            u10m(i,nsrf) = zu10m(i)
    2411            v10m(i,nsrf) = zv10m(i)
    2412            ffonte(i,nsrf) = zxffonte(i)
    2413            fqcalving(i,nsrf) = zxfqcalving(i)
    2414            fqfonte(i,nsrf) = zxfqfonte(i)
    2415            pblh(i,nsrf)=s_pblh(i)
    2416            plcl(i,nsrf)=s_lcl(i)
    2417            capCL(i,nsrf)=s_capCL(i)
    2418            oliqCL(i,nsrf)=s_oliqCL(i)
    2419            cteiCL(i,nsrf)=s_cteiCL(i)
    2420            pblT(i,nsrf)=s_pblT(i)
    2421            therm(i,nsrf)=s_therm(i)
    2422            trmb1(i,nsrf)=s_trmb1(i)
    2423            trmb2(i,nsrf)=s_trmb2(i)
    2424            trmb3(i,nsrf)=s_trmb3(i)
    2425           ENDIF
    2426         ENDDO
    2427       ENDDO
    2428 c
    2429 c Calculer la derive du flux infrarouge
    2430 c
    2431 cXXX      DO nsrf = 1, nbsrf
    2432       DO i = 1, klon
    2433 cXXX        IF (pctsrf(i,nsrf) .GE. EPSFRA) THEN
    2434             dlw(i) = - 4.0*RSIGMA*zxtsol(i)**3
    2435 cXXX     .          *(ftsol(i,nsrf)-zxtsol(i))
    2436 cXXX     .          *pctsrf(i,nsrf)
    2437 cXXX        ENDIF
    2438 cXXX      ENDDO
    2439       ENDDO
     2083
    24402084c
    24412085c Appeler la convection (au choix)
     
    24732117      ELSE IF (iflag_con.EQ.2) THEN
    24742118      CALL conflx(dtime, paprs, pplay, t_seri, q_seri,
    2475      e            conv_t, conv_q, zxfluxq(1,1), omega,
     2119     e            conv_t, conv_q, -evap, omega,
    24762120     s            d_t_con, d_q_con, rain_con, snow_con,
    24772121     s            pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
     
    29562600      ENDDO
    29572601      ENDDO
    2958 c
    2959 cIM Calculer l'humidite relative a 2m (rh2m) pour diagnostique
    2960 cIM ajout dependance type surface
    2961       DO i = 1, klon
    2962        rh2m(i)=0.
    2963        qsat2m(i)=0.
    2964       DO nsrf=1, nbsrf
    2965          zx_t1(i,nsrf) = t2m(i,nsrf)
    2966          IF (thermcep) THEN
    2967             zdelta1(i,nsrf) = MAX(0.,SIGN(1.,rtt-zx_t1(i,nsrf)))
    2968             zx_qs1(i,nsrf)  = r2es *
    2969      $      FOEEW(zx_t1(i,nsrf),zdelta1(i,nsrf))/paprs(i,1)
    2970             zx_qs1(i,nsrf)  = MIN(0.5,zx_qs1(i,nsrf))
    2971             zcor1(i,nsrf)   = 1./(1.-retv*zx_qs1(i,nsrf))
    2972             zx_qs1(i,nsrf)  = zx_qs1(i,nsrf)*zcor1(i,nsrf)
    2973          ELSE
    2974 c
    2975            IF (zx_t.LT.RTT) THEN
    2976               zx_qs = qsats(zx_t)/paprs(i,1)
    2977            ELSE
    2978               zx_qs = qsatl(zx_t)/paprs(i,1)
    2979            ENDIF
    2980          ENDIF
    2981        zx_rh2m(i,nsrf) = q2m(i,nsrf)/zx_qs1(i,nsrf)
    2982        zx_qsat2m(i,nsrf)=zx_qs1(i,nsrf)
    2983        rh2m(i) = rh2m(i)+zx_rh2m(i,nsrf)*pctsrf(i,nsrf)
    2984        qsat2m(i)=qsat2m(i)+zx_qsat2m(i,nsrf)*pctsrf(i,nsrf)
    2985       ENDDO !nsrf
    2986       ENDDO
    2987 c
     2602
    29882603cIM Calcul temp.potentielle a 2m (tpot) et temp. potentielle
    29892604c   equivalente a 2m (tpote) pour diagnostique
     
    30232638#endif
    30242639
     2640           zxsnow_dummy(:) = 0.0
     2641
    30252642           CALL chemhook_begin (calday,
    30262643#if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER)
     
    30422659     $                          q_seri,
    30432660     $                          zxtsol,
    3044      $                          zxsnow,
     2661     $                          zxsnow_dummy,
    30452662     $                          solsw,
    30462663     $                          albsol,
     
    30992716c
    31002717      IF (MOD(itaprad,radpas).EQ.0) THEN
     2718
    31012719      DO i = 1, klon
    31022720         albsol(i) = falbe(i,is_oce) * pctsrf(i,is_oce)
     
    31722790c     .            agesno, ftsol,fqsurf,fsnow, ruis)
    31732791c
    3174       DO i = 1, klon
    3175          zxqsurf(i) = 0.0
    3176          zxsnow(i) = 0.0
    3177       ENDDO
    3178       DO nsrf = 1, nbsrf
    3179       DO i = 1, klon
    3180          zxqsurf(i) = zxqsurf(i) + fqsurf(i,nsrf)*pctsrf(i,nsrf)
    3181          zxsnow(i) = zxsnow(i) + fsnow(i,nsrf)*pctsrf(i,nsrf)
    3182       ENDDO
    3183       ENDDO
    3184 c
    3185 c Si une sous-fraction n'existe pas, elle prend la valeur moyenne
    3186 c
    3187 cXXX      DO nsrf = 1, nbsrf
    3188 cXXX      DO i = 1, klon
    3189 cXXX         IF (pctsrf(i,nsrf).LT.epsfra) THEN
    3190 cXXX            fqsurf(i,nsrf) = zxqsurf(i)
    3191 cXXX            fsnow(i,nsrf) = zxsnow(i)
    3192 cXXX         ENDIF
    3193 cXXX      ENDDO
    3194 cXXX      ENDDO
     2792
    31952793c
    31962794c Calculer le bilan du sol et la derive de temperature (couplage)
     
    34933091     $                        annee_ref,
    34943092     $                        day_ini,
    3495      $                        airephy,     
    34963093#ifdef INCA_AER
    34973094     $                        xjour,
     
    35583155c=============================================================
    35593156#ifdef CPP_IOIPSL
     3157 
     3158c Recupere des varibles calcule dans differents modules
     3159c pour ecriture dans histxxx.nc
     3160
     3161      ! Get some variables from module mod_fonte_neige
     3162      CALL fonte_neige_get_vars(pctsrf,
     3163     .     zxfqcalving, zxfqfonte, zxffonte)
     3164
     3165      IF (ocean == 'slab') THEN
     3166         ! Get some variables from module oceanslab
     3167         CALL ocean_slab_get_vars(tslab, seaice, fluxo, fluxg)
     3168      ELSEIF (ocean == 'couple') THEN
     3169         ! Get some variables from module oceancpl
     3170         CALL ocean_cpl_get_vars(fluxo, fluxg)
     3171      ELSE
     3172         ! Get some variables from module oceanforced
     3173         CALL ocean_forced_get_vars(fluxo, fluxg)
     3174      ENDIF
    35603175
    35613176#ifdef histhf
     
    35953210c====================================================================
    35963211c
     3212     
     3213
    35973214      IF (lafin) THEN
    35983215         itau_phy = itau_phy + itap
    3599 ccc         IF (ok_oasis) CALL quitcpl
    3600          CALL phyredem ("restartphy.nc",dtime,radpas,
    3601      .      rlat, rlon, pctsrf, ftsol, ftsoil,
    3602 cIM "slab" ocean
    3603      .      tslab, seaice,
    3604      .      fqsurf, qsol,
    3605      .      fsnow, falbe,falblw, fevap, rain_fall, snow_fall,
    3606 cIM  .      solsw, sollwdown,dlw,
    3607      .      solsw, sollw,dlw,
    3608      .      radsol,frugs,agesno,
     3216         CALL phyredem ("restartphy.nc",dtime,radpas,ocean,
     3217     .      rlat, rlon, pctsrf, ftsol,
     3218     .      falbe,falblw, rain_fall,
     3219     .      snow_fall,
     3220     .      solsw, sollw,
     3221     .      radsol,
    36093222     .      zmea,zstd,zsig,zgam,zthe,zpic,zval,rugoro,
    3610      .      t_ancien, q_ancien, rnebcon, ratqs, clwcon,run_off_lic_0)
     3223     .      t_ancien, q_ancien, rnebcon, ratqs, clwcon)
    36113224      ENDIF
    36123225     
Note: See TracChangeset for help on using the changeset viewer.