Changeset 766


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

Location:
LMDZ4/trunk/libf/phylmd
Files:
116 edited

Legend:

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

    r524 r766  
    55     .            tau_ae, piz_ae, cg_ae, ai        )
    66c
     7      USE dimphy
    78      IMPLICIT none
    89c
    910c
    1011c     
    11 #include "dimensions.h"
    12 #include "dimphy.h"
     12cym#include "dimensions.h"
     13cym#include "dimphy.h"
    1314#include "YOMCST.h"
    1415c
  • LMDZ4/trunk/libf/phylmd/ajsec.F

    r524 r766  
    33!
    44      SUBROUTINE ajsec(paprs, pplay, t,q, d_t,d_q)
     5      USE dimphy
    56      IMPLICIT none
    67c======================================================================
     
    1314c d_t-----output-R-Incrementation de la temperature
    1415c======================================================================
    15 #include "dimensions.h"
    16 #include "dimphy.h"
     16cym#include "dimensions.h"
     17cym#include "dimphy.h"
    1718#include "YOMCST.h"
    1819      REAL paprs(klon,klev+1), pplay(klon,klev)
     
    2223      INTEGER limbas, limhau ! les couches a ajuster
    2324ccc      PARAMETER (limbas=klev-3, limhau=klev)
    24       PARAMETER (limbas=1, limhau=klev)
     25cym      PARAMETER (limbas=1, limhau=klev)
    2526c
    2627      LOGICAL mixq
     
    3839c Initialisation:
    3940c
     41cym
     42      limbas=1
     43      limhau=klev
     44 
    4045      DO k = 1, klev
    4146      DO i = 1, klon
     
    149154      END
    150155      SUBROUTINE ajsec_old(paprs, pplay, t, d_t)
     156      USE dimphy
    151157      IMPLICIT none
    152158c======================================================================
     
    159165c d_t-----output-R-Incrementation de la temperature
    160166c======================================================================
    161 #include "dimensions.h"
    162 #include "dimphy.h"
     167cym#include "dimensions.h"
     168cym#include "dimphy.h"
    163169#include "YOMCST.h"
    164170      REAL paprs(klon,klev+1), pplay(klon,klev)
  • LMDZ4/trunk/libf/phylmd/albedo.F

    r584 r766  
    55c
    66      SUBROUTINE alboc(rjour,rlat,albedo)
     7      USE dimphy
    78      IMPLICIT none
    89c======================================================================
     
    1718c albedo (out,R): albedo obtenu (de 0 a 1)
    1819c======================================================================
    19 #include "dimensions.h"
    20 #include "dimphy.h"
     20cym#include "dimensions.h"
     21cym#include "dimphy.h"
    2122#include "YOMCST.h"
    2223c
     
    127128c=====================================================================
    128129      SUBROUTINE alboc_cd(rmu0,albedo)
     130      USE dimphy
    129131      IMPLICIT none
    130132c======================================================================
     
    140142c albedo (out): albedo de surface de l'ocean
    141143c======================================================================
    142 #include "dimensions.h"
    143 #include "dimphy.h"
     144cym#include "dimensions.h"
     145cym#include "dimphy.h"
    144146      REAL rmu0(klon), albedo(klon)
    145147c
  • LMDZ4/trunk/libf/phylmd/atm2geo.F

    r524 r766  
    44C
    55      SUBROUTINE atm2geo ( im, jm, pte, ptn, plon, plat, pxx, pyy, pzz )
     6      USE dimphy
     7      IMPLICIT NONE
     8      include 'dimensions90.h'
    69cc
    710cc Change wind local atmospheric coordinates to
    811cc geocentric
    912cc
    10 c$$$      INCLUDE 'param.h'
     13cxxx      INCLUDE 'param.h'
    1114c
    1215      INTEGER, INTENT (in)              :: im, jm
     
    2225c
    2326      LOGICAL, SAVE :: linit = .FALSE.
     27c$OMP THREADPRIVATE(linit)
    2428c
    25 c$$$      IF ( .NOT. linit ) THEN
     29cxxx      IF ( .NOT. linit ) THEN
    2630          zsinlon = SIN (rad * plon)
    2731          zcoslon = COS (rad * plon)
     
    2933          zcoslat = COS (rad * plat)
    3034          linit = .TRUE.
    31 c$$$      ENDIF
     35cxxx      ENDIF
    3236c
    3337      pxx = - zsinlon * pte - zsinlat * zcoslon * ptn
    3438      pyy =   zcoslon * pte - zsinlat * zsinlon * ptn
    3539      pzz =   zcoslat * ptn
     40
    3641c
    3742c Value at North Pole
    38       pxx ( :,  1) = - ptn ( 1, 1)
    39       pyy ( :,  1) = - pte ( 1, 1)
    40       pzz ( :,  1) = 0.0
     43      IF (jjphy_begin==1) THEN
     44        pxx ( :,  1) = - ptn ( 1, 1)
     45        pyy ( :,  1) = - pte ( 1, 1)
     46        pzz ( :,  1) = 0.0
     47      ENDIF
    4148c Value at South Pole
    42       pxx ( :, jm) = + ptn ( 1, jm)
    43       pyy ( :, jm) = + pte ( 1, jm)
    44       pzz ( :, jm) = 0.0
    45 c
     49     
     50      IF (jjphy_end==jjm+1) THEN
     51        pxx ( :, jm) = + ptn ( 1, jm)
     52        pyy ( :, jm) = + pte ( 1, jm)
     53        pzz ( :, jm) = 0.0
     54      ENDIF
     55 
    4656      RETURN
    4757      END SUBROUTINE atm2geo
  • LMDZ4/trunk/libf/phylmd/calcratqs.F

    r524 r766  
    55     I            paprs,pplay,q_seri,d_t_con,d_t_ajs
    66     O           ,ratqs,zpt_conv)
     7      USE dimphy
    78      IMPLICIT none
    89c======================================================================
     
    2324c pplay---input-R-pression pour le mileu de chaque couche (en Pa)
    2425c presnivs-input_R_pressions approximat. des milieux couches ( en PA)
    25 #include "dimensions.h"
    26 #include "dimphy.h"
     26cym#include "dimensions.h"
     27cym#include "dimphy.h"
    2728      REAL paprs(klon,klev+1)
    2829      REAL pplay(klon,klev)
     
    3637      save firstcall
    3738      data firstcall/.true./
    38 
     39c$OMP THREADPRIVATE(firstcall)
    3940
    4041      REAL ratqsmin,ratqsmax,zx,epmax
     
    4647      save ratqs1,ratqs2,ratqs3,ratqs4
    4748      save ratqsc1,ratqsc2,ratqsc3,ratqsc4
     49c$OMP THREADPRIVATE(ratqsmin,ratqsmax,epmax)
     50c$OMP THREADPRIVATE(ratqs1,ratqs2,ratqs3,ratqs4)
     51c$OMP THREADPRIVATE(ratqsc1,ratqsc2,ratqsc3,ratqsc4)
    4852      real zpt_conv(klon,klev)
    4953
  • LMDZ4/trunk/libf/phylmd/calcul_divers.h

    r719 r766  
    55c initialisations diverses au "debut" du mois
    66c
    7       IF(MOD(itap,NINT(ecrit_mth/dtime)).EQ.1) THEN
     7      IF(MOD(itap,ecrit_mth).EQ.1) THEN
    88         DO i=1, klon
    99          nday_rain(i)=0.
     
    1717       ENDDO
    1818c
    19       ENDIF
     19      ENDIF !MOD(itap,ecrit_mth).EQ.1
    2020c
    21       IF(MOD(itap,NINT(ecrit_day/dtime)).EQ.0) THEN
     21      IF(MOD(itap,ecrit_day).EQ.0) THEN
    2222c
    2323cIM calcul total_rain, nday_rain
     
    2727        IF(total_rain(i).GT.0.) nday_rain(i)=nday_rain(i)+1.
    2828       ENDDO
    29       ENDIF
     29      ENDIF !itap.EQ.ecrit_mth
  • LMDZ4/trunk/libf/phylmd/calcul_simulISCCP.h

    r684 r766  
    6464c
    6565      IF (debut) THEN
     66c$OMP MASTER
    6667c     open(99,file='tautab.bin',access='sequential',
    6768c    $     form='unformatted',status='old')
    68 c     read(99) tautab
     69c     read(99) tautab_omp
    6970c
    7071      open(99,file='tautab.formatted', FORM='FORMATTED')
    71       read(99,'(f30.20)') tautab
     72      read(99,'(f30.20)') tautab_omp
    7273      close(99)
    7374c
    7475      open(99,file='invtau.formatted',form='FORMATTED')
    75       read(99,'(i10)') invtau
     76      read(99,'(i10)') invtau_omp
    7677      close(99)
     78c$OMP END MASTER
     79c$OMP BARRIER
     80      tautab=tautab_omp
     81      invtau=invtau_omp
    7782c
    7883      ENDIF !debut
  • LMDZ4/trunk/libf/phylmd/calltherm.F

    r566 r766  
    88     s      ,fm_therm,entr_therm)
    99
     10      USE dimphy
    1011      implicit none
    11 #include "dimensions.h"
    12 #include "dimphy.h"
     12cym#include "dimensions.h"
     13cym#include "dimphy.h"
    1314#include "thermcell.h"
    1415
     
    3536      REAL d_u_the(klon,klev),d_v_the(klon,klev)
    3637c
    37       real zfm_therm(klon,klev+1),zentr_therm(klon,klev),zdt
    38       save zentr_therm,zfm_therm
    39 
     38cym      real zfm_therm(klon,klev+1),zentr_therm(klon,klev),zdt
     39cym      save zentr_therm,zfm_therm
     40      real,allocatable,dimension(:,:),save :: zfm_therm,zentr_therm
     41c$OMP THREADPRIVATE(zfm_therm,zentr_therm)
     42      real :: zdt
     43      logical,save :: first=.true.
     44c$OMP THREADPRIVATE(first)
    4045      integer i,k
    4146
     
    4752       print*,'avant isplit ',nsplit_thermals
    4853
    49 
     54cym initialisation dynamique
     55         if (first) then
     56           allocate(zfm_therm(klon,klev+1),zentr_therm(klon,klev))
     57           zfm_therm(:,:)=0.
     58           zentr_therm(:,:)=0.
     59           first=.false.
     60         endif
     61         
    5062         fm_therm(:,:)=0.
    5163         entr_therm(:,:)=0.
  • LMDZ4/trunk/libf/phylmd/clesphys.h

    r699 r766  
    1010       REAL*8 RCO2, RCH4, RN2O, RCFC11, RCFC12 
    1111       REAL*8 CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt
     12
     13cOM ---> correction du bilan d'eau global
     14cOM Correction sur precip KE
     15       REAL cvl_corr
     16cOM Fonte calotte dans bilan eau
     17       LOGICAL ok_lic_melt
     18
    1219cIM simulateur ISCCP
    1320       INTEGER top_height, overlap
     
    4249     S     , ecrit_mth, ecrit_tra, ecrit_reg
    4350     S     , freqin_isccp, freqout_isccp, ip_ebil_phy
    44      S     , ok_slab_sicOBS
     51     S     , ok_slab_sicOBS, ok_lic_melt, cvl_corr
     52     
     53c$OMP THREADPRIVATE(/clesphys/)
     54 
  • 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)
  • LMDZ4/trunk/libf/phylmd/cltrac.F

    r524 r766  
    44      SUBROUTINE cltrac(dtime,coef,t,tr,flux,paprs,pplay,delp,
    55     s                  d_tr)
     6      USE dimphy
    67      IMPLICIT none
    78c======================================================================
     
    2526c flux_tr--output-R- flux de tr
    2627c======================================================================
    27 #include "dimensions.h"
    28 #include "dimphy.h"
     28cym#include "dimensions.h"
     29cym#include "dimphy.h"
    2930      REAL dtime
    3031      REAL coef(klon,klev)
  • LMDZ4/trunk/libf/phylmd/cltracrn.F

    r644 r766  
    99     s              d_tr,d_trs )
    1010
     11      USE dimphy
    1112      IMPLICIT none
    1213c======================================================================
     
    4243c d_trs----output-R- le changement de "trs"
    4344c======================================================================
    44 #include "dimensions.h"
    45 #include "dimphy.h"
     45cym#include "dimensions.h"
     46cym#include "dimphy.h"
    4647#include "YOMCST.h"
    4748#include "indicesol.h"
  • LMDZ4/trunk/libf/phylmd/coefkzmin.F

    r524 r766  
    55     .   ,km,kn)
    66c      SUBROUTINE coefkzmin(ngrid,zlev,teta,ustar,km,kn)
     7      USE dimphy
    78      IMPLICIT NONE
    89
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     10cym#include "dimensions.h"
     11cym#include "dimphy.h"
    1112#include "YOMCST.h"
    1213
     
    5960
    6061      integer nlay,nlev
    61       PARAMETER (nlay=klev)
    62       PARAMETER (nlev=klev+1)
     62cym      PARAMETER (nlay=klev)
     63cym      PARAMETER (nlev=klev+1)
    6364
    6465      integer ig,k
    6566
    66       real kap
    67       save kap
    68       data kap/0.4/
     67      real,parameter :: kap=0.4
    6968
    7069      real frif,falpha,fsm
    7170      real fl,zzz,zl0,zq2,zn2
    7271
    73 
     72      nlay=klev
     73      nlev=klev+1
    7474c.......................................................................
    7575c  en attendant une version ou les zlev, et zlay soient
  • LMDZ4/trunk/libf/phylmd/comgeomphy.F90

    r629 r766  
    55   real,save,allocatable :: rlatd(:)
    66   real,save,allocatable :: rlond(:)
     7!$OMP THREADPRIVATE(airephy,cuphy,cvphy,rlatd,rlond)
    78contains
    89 
     
    1112  implicit none
    1213   
    13     allocate(airephy(klon))
    14     allocate(cuphy(klon))
    15     allocate(cvphy(klon))
    16     allocate(rlatd(klon))
    17     allocate(rlond(klon))
     14 
     15    allocate(airephy(klon_omp))
     16    allocate(cuphy(klon_omp))
     17    allocate(cvphy(klon_omp))
     18    allocate(rlatd(klon_omp))
     19    allocate(rlond(klon_omp))
     20
    1821  end subroutine InitComgeomphy
    1922 
  • LMDZ4/trunk/libf/phylmd/compbl.h

    r542 r766  
    11      integer iflag_pbl
    22      common/compbl/iflag_pbl
     3!$OMP THREADPRIVATE(/compbl/)
  • LMDZ4/trunk/libf/phylmd/concvl.F

    r619 r766  
    1212 
    1313c
     14      USE dimphy
    1415      IMPLICIT none
    1516c======================================================================
     
    4647c
    4748#include "dimensions.h"
    48 #include "dimphy.h"
     49cym#include "dimphy.h"
    4950c
    5051      integer NTRAC
     
    8283       INTEGER i,k,itra
    8384       REAL qs(klon,klev)
    84        REAL cbmf(klon)
    85        SAVE cbmf
     85cym       REAL cbmf(klon)
     86cym       SAVE cbmf
     87       REAL,ALLOCATABLE,SAVE :: cbmf(:)
     88c$OMP THREADPRIVATE(cbmf)
    8689       INTEGER ifrst
    8790       SAVE ifrst
    8891       DATA ifrst /0/
     92c$OMP THREADPRIVATE(ifrst)
     93
    8994#include "YOMCST.h"
    9095#include "YOETHF.h"
     
    97102      IF (ifrst .EQ. 0) THEN
    98103         ifrst = 1
     104         allocate(cbmf(klon))
    99105         DO i = 1, klon
    100106          cbmf(i) = 0.
  • LMDZ4/trunk/libf/phylmd/condsurf.F

    r688 r766  
    22c
    33      SUBROUTINE condsurf( jour, jourvrai, lmt_bils )
     4      USE dimphy
    45      IMPLICIT none
    56c
     
    2021      INTEGER epais(2)
    2122c
    22 #include "dimensions.h"
    23 #include "dimphy.h"
     23cym#include "dimensions.h"
     24cym#include "dimphy.h"
    2425#include "indicesol.h"
    2526#include "temps.h"
     
    3738      INTEGER anneelim,anneemax
    3839      CHARACTER*20 fich
     40     
     41      REAL :: lmt_bils_glo(klon2)
     42      REAL,ALLOCATABLE,SAVE :: lmt_bils_mpi(:)
     43     
     44      LOGICAL,SAVE :: first
     45c$OMP THREADPRIVATE(first)
    3946cc
    4047cc   .....................................................................
     
    4653c
    4754c
     55      IF (first) THEN
     56        ALLOCATE(lmt_bils_mpi(klon_mpi))
     57      ENDIF
     58     
    4859      IF (jour.LT.0 .OR. jour.GT.(360-1)) THEN
    4960         PRINT*,'Le jour demande n est pas correct: ', jour
     
    8091c Ouvrir le fichier en format NetCDF:
    8192c
     93c$OMP MASTER
     94      IF (phy_rank==0) THEN
    8295      ierr = NF_OPEN (fich, NF_NOWRITE,nid)
    8396      IF (ierr.NE.NF_NOERR) THEN
     
    93106      debut(1) = 1
    94107      debut(2) = jourvrai
    95       epais(1) = klon
     108      epais(1) = klon2
    96109      epais(2) = 1
    97110c
     
    105118      PRINT*,'debut,epais',debut,epais,'jour,jourvrai',jour,jourvrai
    106119#ifdef NC_DOUBLE
    107       ierr = NF_GET_VARA_DOUBLE(nid, nvarid,debut,epais,lmt_bils)
     120      ierr = NF_GET_VARA_DOUBLE(nid, nvarid,debut,epais,lmt_bils_glo)
    108121#else
    109       ierr = NF_GET_VARA_REAL(nid, nvarid,debut,epais,lmt_bils)
     122      ierr = NF_GET_VARA_REAL(nid, nvarid,debut,epais,lmt_bils_glo)
    110123#endif
    111124      IF (ierr .NE. NF_NOERR) THEN
     
    118131c
    119132      ierr = NF_CLOSE(nid)
     133     
     134      ENDIF ! phyrank==0
     135
     136      CALL scatterField(lmt_bils_glo,lmt_bils_mpi,1)
     137c$OMP END MASTER
     138c$OMP BARRIER
     139      CALL scatterField_omp(lmt_bils_mpi,lmt_bils,1)
     140           
    120141c
    121142c
  • LMDZ4/trunk/libf/phylmd/conema3.F

    r524 r766  
    99     .             qcond_incld)
    1010
     11      USE dimphy
    1112      IMPLICIT none
    1213c======================================================================
     
    5455c
    5556#include "dimensions.h"
    56 #include "dimphy.h"
     57cym#include "dimphy.h"
    5758#include "conema3.h"
    5859      INTEGER i, l,m,itra
     
    8485      REAL qcond_incld(klon,klev)
    8586c
    86       REAL em_t(klev)
    87       REAL em_q(klev)
    88       REAL em_qs(klev)
    89       REAL em_u(klev), em_v(klev), em_tra(klev,ntrac)
    90       REAL em_ph(klev+1), em_p(klev)
    91       REAL em_work1(klev), em_work2(klev)
    92       REAL em_precip, em_d_t(klev), em_d_q(klev)
    93       REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac)
    94       REAL em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev)
     87      LOGICAL,SAVE :: first=.true.
     88c$OMP THREADPRIVATE(first)
     89     
     90cym      REAL em_t(klev)
     91      REAL,ALLOCATABLE,SAVE :: em_t(:)
     92c$OMP THREADPRIVATE(em_t) 
     93cym      REAL em_q(klev)
     94      REAL,ALLOCATABLE,SAVE :: em_q(:)
     95c$OMP THREADPRIVATE(em_q)
     96cym      REAL em_qs(klev)
     97      REAL,ALLOCATABLE,SAVE :: em_qs(:)
     98c$OMP THREADPRIVATE(em_qs) 
     99cym      REAL em_u(klev), em_v(klev), em_tra(klev,ntrac)
     100      REAL,ALLOCATABLE,SAVE :: em_u(:),em_v(:),em_tra(:,:)
     101c$OMP THREADPRIVATE(em_u,em_v,em_tra)     
     102cym      REAL em_ph(klev+1), em_p(klev)
     103      REAL,ALLOCATABLE,SAVE ::em_ph(:),em_p(:)
     104c$OMP THREADPRIVATE(em_ph,em_p)
     105cym      REAL em_work1(klev), em_work2(klev)
     106      REAL,ALLOCATABLE,SAVE ::em_work1(:),em_work2(:)
     107c$OMP THREADPRIVATE(em_work1,em_work2)     
     108cym      REAL em_precip, em_d_t(klev), em_d_q(klev)
     109      REAL,SAVE :: em_precip
     110c$OMP THREADPRIVATE(em_precip)     
     111      REAL,ALLOCATABLE,SAVE :: em_d_t(:),em_d_q(:)
     112c$OMP THREADPRIVATE(em_d_t,em_d_q)
     113cym      REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac)
     114      REAL,ALLOCATABLE,SAVE ::em_d_u(:),em_d_v(:),em_d_tra(:,:)
     115c$OMP THREADPRIVATE(em_d_u,em_d_v,em_d_tra)     
     116cym      REAL em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev)
     117      REAL,ALLOCATABLE,SAVE :: em_upwd(:),em_dnwd(:),em_dnwdbis(:)
     118c$OMP THREADPRIVATE(em_upwd,em_dnwd,em_dnwdbis)
    95119      REAL em_dtvpdt1(klev), em_dtvpdq1(klev)
    96120      REAL em_dplcldt, em_dplcldr
    97       SAVE em_t,em_q, em_qs, em_ph, em_p, em_work1, em_work2
    98       SAVE em_u,em_v, em_tra
    99       SAVE em_d_u,em_d_v, em_d_tra
    100       SAVE em_precip, em_d_t, em_d_q, em_upwd, em_dnwd, em_dnwdbis
     121cym      SAVE em_t,em_q, em_qs, em_ph, em_p, em_work1, em_work2
     122cym      SAVE em_u,em_v, em_tra
     123cym      SAVE em_d_u,em_d_v, em_d_tra
     124cym      SAVE em_precip, em_d_t, em_d_q, em_upwd, em_dnwd, em_dnwdbis
     125
    101126      INTEGER em_bas, em_top
    102127      SAVE em_bas, em_top
    103 
     128c$OMP THREADPRIVATE(em_bas,em_top)
    104129      REAL em_wd
    105130      REAL em_qcond(klev)
     
    113138cccccccccccccccccccccccccccccccccccccccccccccccccc
    114139 
    115       REAL emmip(klev) !variation de flux ascnon dilue i et i+1
    116       SAVE emmip
    117       real emMke(klev)
    118       save emMke
     140cym      REAL emmip(klev) !variation de flux ascnon dilue i et i+1
     141      REAL,ALLOCATABLE,SAVE ::emmip(:)
     142c$OMP THREADPRIVATE(emmip)
     143cym      SAVE emmip
     144cym      real emMke(klev)
     145      REAL,ALLOCATABLE,SAVE ::emMke(:)
     146c$OMP THREADPRIVATE(emMke)
     147cym      save emMke
    119148      real top
    120149      real bas
    121       real emMa(klev)
    122       save emMa
     150cym      real emMa(klev)
     151      REAL,ALLOCATABLE,SAVE ::emMa(:)
     152c$OMP THREADPRIVATE(emMa)
     153cym      save emMa
    123154      real Ma(klon,klev)
    124155      real Ment(klev,klev)
     
    151182#include "YOETHF.h"
    152183#include "FCTTRE.h"
    153  
     184     
     185      if (first) then
     186 
     187        allocate(em_t(klev))
     188        allocate(em_q(klev))
     189        allocate(em_qs(klev))
     190        allocate(em_u(klev), em_v(klev), em_tra(klev,ntrac))
     191        allocate(em_ph(klev+1), em_p(klev))
     192        allocate(em_work1(klev), em_work2(klev))
     193        allocate(em_d_t(klev), em_d_q(klev))
     194        allocate(em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac))
     195        allocate(em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev))
     196        allocate(emmip(klev))
     197        allocate(emMke(klev))
     198        allocate(emMa(klev))
     199 
     200        first=.false.
     201      endif
     202 
    154203      qcond_incld(:,:) = 0.
    155204c
    156 c$$$      print*,'debut conema'
     205c@$$      print*,'debut conema'
    157206
    158207      DO 999 i = 1, klon
     
    170219          em_tra(l,itra) = tra(i,l,itra)
    171220         enddo
    172 c$$$      print*,'em_t',em_t
    173 c$$$      print*,'em_q',em_q
    174 c$$$      print*,'em_qs',em_qs
    175 c$$$      print*,'em_u',em_u
    176 c$$$      print*,'em_v',em_v
    177 c$$$      print*,'em_tra',em_tra
    178 c$$$      print*,'em_p',em_p
     221c@$$      print*,'em_t',em_t
     222c@$$      print*,'em_q',em_q
     223c@$$      print*,'em_qs',em_qs
     224c@$$      print*,'em_u',em_u
     225c@$$      print*,'em_v',em_v
     226c@$$      print*,'em_tra',em_tra
     227c@$$      print*,'em_p',em_p
    179228
    180229 
     
    184233         zx_qs= r2es * FOEEW(zx_t,zdelta)/em_p(l)/100.0
    185234         zx_qs=MIN(0.5,zx_qs)
    186 c$$$       print*,'zx_qs',zx_qs
     235c@$$       print*,'zx_qs',zx_qs
    187236         zcor=1./(1.-retv*zx_qs)
    188237         zx_qs=zx_qs*zcor
    189238         em_qs(l) = zx_qs
    190 c$$$      print*,'em_qs',em_qs
     239c@$$      print*,'em_qs',em_qs
    191240c
    192241         em_work1(l) = work1(i,l)
     
    2192681793  format('w avant convect ',/,10(1X,E13.5))
    220269 
    221 c$$$      print*,'avant convect'
     270c@$$      print*,'avant convect'
    222271ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    223272c
  • LMDZ4/trunk/libf/phylmd/conema3.h

    r524 r766  
    77
    88      common/comconema/epmax,ok_adj_ema,iflag_clw
     9!$OMP THREADPRIVATE(/comconema/)
  • LMDZ4/trunk/libf/phylmd/conemav.F

    r524 r766  
    99 
    1010c
     11      USE dimphy
    1112      IMPLICIT none
    1213c======================================================================
     
    4344c
    4445#include "dimensions.h"
    45 #include "dimphy.h"
     46cym#include "dimphy.h"
    4647c
    4748      integer NTRAC
     
    7374       INTEGER i,k,itra
    7475       REAL qs(klon,klev)
    75        REAL cbmf(klon)
    76        SAVE cbmf
     76cym       REAL cbmf(klon)
     77cym       SAVE cbmf
     78       REAL,ALLOCATABLE,SAVE :: cbmf(:)
     79c$OMP THREADPRIVATE(cbmf)
    7780       INTEGER ifrst
    7881       SAVE ifrst
    7982       DATA ifrst /0/
     83c$OMP THREADPRIVATE(ifrst)
    8084#include "YOMCST.h"
    8185#include "YOETHF.h"
     
    8589      IF (ifrst .EQ. 0) THEN
    8690         ifrst = 1
     91         allocate(cbmf(klon))
    8792         DO i = 1, klon
    8893          cbmf(i) = 0.
  • LMDZ4/trunk/libf/phylmd/conf_phys.F90

    r702 r766  
    2323include "clesphys.inc"
    2424include "compbl.h"
    25 #include "control.inc"
     25include "control.inc"
    2626!
    2727! Configuration de la "physique" de LMDZ a l'aide de la fonction
     
    4949  REAL                 :: bl95_b0, bl95_b1
    5050  real                 :: fact_cldcon, facttemps,ratqsbas,ratqshaut
    51 !IM integer            :: iflag_cldcon, if_ebil
    5251  integer              :: iflag_cldcon
     52
     53  character (len = 6),SAVE  :: ocean_omp
     54  logical,SAVE              :: ok_veget_omp, ok_newmicro_omp
     55  logical,SAVE        :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp       
     56  LOGICAL,SAVE        :: ok_ade_omp, ok_aie_omp
     57  REAL,SAVE           :: bl95_b0_omp, bl95_b1_omp
     58  real,SAVE           :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp
     59  real,SAVE           :: ratqshaut_omp
     60  integer,SAVE        :: iflag_cldcon_omp, ip_ebil_phy_omp
    5361
    5462! Local
     
    5765
    5866  integer :: iflag_thermals,nsplit_thermals
    59 !
    60 !
    61 !
    62 
    63 
     67  integer,SAVE :: iflag_thermals_omp,nsplit_thermals_omp
     68
     69  REAL,SAVE :: R_ecc_omp,R_peri_omp,R_incl_omp,solaire_omp,co2_ppm_omp
     70  REAL,SAVE :: RCO2_omp,CH4_ppb_omp,RCH4_omp,N2O_ppb_omp,RN2O_omp,CFC11_ppt_omp
     71  REAL,SAVE :: RCFC11_omp,CFC12_ppt_omp,RCFC12_omp,epmax_omp
     72  LOGICAL,SAVE :: ok_adj_ema_omp
     73  INTEGER,SAVE :: iflag_clw_omp
     74  REAL,SAVE :: cld_lc_lsc_omp,cld_lc_con_omp,cld_tau_lsc_omp,cld_tau_con_omp
     75  REAL,SAVE :: ffallv_lsc_omp, ffallv_con_omp,coef_eva_omp
     76  LOGICAL,SAVE :: reevap_ice_omp
     77  INTEGER,SAVE :: iflag_pdf_omp
     78  REAL,SAVE :: rad_froid_omp, rad_chau1_omp, rad_chau2_omp
     79  INTEGER,SAVE :: top_height_omp,overlap_omp
     80  REAL,SAVE :: cdmmax_omp,cdhmax_omp,ksta_omp,ksta_ter_omp
     81  LOGICAL,SAVE :: ok_kzmin_omp
     82  INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp
     83  CHARACTER*4, SAVE :: type_run_omp
     84  LOGICAL,SAVE :: ok_isccp_omp
     85  REAL,SAVE :: lonmin_ins_omp, lonmax_ins_omp, latmin_ins_omp, latmax_ins_omp
     86  REAL,SAVE :: ecrit_hf_omp, ecrit_day_omp, ecrit_mth_omp, ecrit_reg_omp
     87  REAL,SAVE :: ecrit_tra_omp
     88  LOGICAL, SAVE :: ok_slab_sicOBS_omp
     89  REAL,SAVE :: cvl_corr_omp
     90  LOGICAL,SAVE :: ok_lic_melt_omp
     91!
     92!
     93!
     94
     95!$OMP MASTER
    6496!Config Key  = OCEAN
    6597!Config Desc = Type d'ocean
     
    6799!Config Help = Type d'ocean utilise: force, slab,couple
    68100!
    69   ocean = 'force '
    70   call getin('OCEAN', ocean)
     101  ocean_omp = 'force '
     102  call getin('OCEAN', ocean_omp)
    71103!
    72104!Config Key  = VEGET
     
    75107!Config Help = Type de modele de vegetation utilise
    76108!
    77   ok_veget = .false.
    78   call getin('VEGET', ok_veget)
     109  ok_veget_omp = .false.
     110  call getin('VEGET', ok_veget_omp)
    79111!
    80112!Config Key  = OK_journe
     
    84116!              journalieres
    85117!
    86   ok_journe = .false.
    87   call getin('OK_journe', ok_journe)
     118  ok_journe_omp = .false.
     119  call getin('OK_journe', ok_journe_omp)
    88120!
    89121!Config Key  = OK_mensuel
     
    93125!              mensuelles
    94126!
    95   ok_mensuel = .true.
    96   call getin('OK_mensuel', ok_mensuel)
     127  ok_mensuel_omp = .true.
     128  call getin('OK_mensuel', ok_mensuel_omp)
    97129!
    98130!Config Key  = OK_instan
     
    102134!              instantanees
    103135!
    104   ok_instan = .false.
    105   call getin('OK_instan', ok_instan)
     136  ok_instan_omp = .false.
     137  call getin('OK_instan', ok_instan_omp)
    106138!
    107139!Config Key  = ok_ade
     
    110142!Config Help = Used in radlwsw.F
    111143!
    112   ok_ade = .false.
    113   call getin('ok_ade', ok_ade)
     144  ok_ade_omp = .false.
     145  call getin('ok_ade', ok_ade_omp)
    114146
    115147!
     
    119151!Config Help = Used in nuage.F and radlwsw.F
    120152!
    121   ok_aie = .false.
    122   call getin('ok_aie', ok_aie)
     153  ok_aie_omp = .false.
     154  call getin('ok_aie', ok_aie_omp)
    123155
    124156!
     
    128160!Config Help = Used in nuage.F
    129161!
    130   bl95_b0 = 2.
    131   call getin('bl95_b0', bl95_b0)
     162  bl95_b0_omp = 2.
     163  call getin('bl95_b0', bl95_b0_omp)
    132164
    133165!Config Key  = bl95_b1
     
    136168!Config Help = Used in nuage.F
    137169!
    138   bl95_b1 = 0.2
    139   call getin('bl95_b1', bl95_b1)
     170  bl95_b1_omp = 0.2
     171  call getin('bl95_b1', bl95_b1_omp)
    140172
    141173!
     
    147179!               
    148180!
    149   ip_ebil_phy = 0
    150   call getin('ip_ebil_phy', ip_ebil_phy)
     181  ip_ebil_phy_omp = 0
     182  call getin('ip_ebil_phy', ip_ebil_phy_omp)
    151183!!
    152184!! Constante solaire & Parametres orbitaux & taux gaz effet de serre BEG
     
    158190!               
    159191!valeur AMIP II
    160   R_ecc = 0.016715
    161   call getin('R_ecc', R_ecc)
     192  R_ecc_omp = 0.016715
     193  call getin('R_ecc', R_ecc_omp)
    162194!!
    163195!Config Key  = R_peri
     
    168200!
    169201!valeur AMIP II
    170   R_peri = 102.7
    171   call getin('R_peri', R_peri)
     202  R_peri_omp = 102.7
     203  call getin('R_peri', R_peri_omp)
    172204!!
    173205!Config Key  = R_incl
     
    178210!
    179211!valeur AMIP II
    180   R_incl = 23.441
    181   call getin('R_incl', R_incl)
     212  R_incl_omp = 23.441
     213  call getin('R_incl', R_incl_omp)
    182214!!
    183215!Config Key  = solaire
     
    188220!
    189221!valeur AMIP II
    190   solaire = 1365.
    191   call getin('solaire', solaire)
     222  solaire_omp = 1365.
     223  call getin('solaire', solaire_omp)
    192224!!
    193225!Config Key  = co2_ppm
     
    198230!
    199231!valeur AMIP II
    200   co2_ppm = 348.
    201   call getin('co2_ppm', co2_ppm)
     232  co2_ppm_omp = 348.
     233  call getin('co2_ppm', co2_ppm_omp)
    202234!!
    203235!Config Key  = RCO2
     
    209241! RCO2 = 5.286789092164308E-04
    210242!ancienne valeur
    211   RCO2 = co2_ppm * 1.0e-06  * 44.011/28.97 ! pour co2_ppm=348.
     243  RCO2_omp = co2_ppm_omp * 1.0e-06  * 44.011/28.97 ! pour co2_ppm=348.
    212244
    213245!!  call getin('RCO2', RCO2)
     
    228260  zzz = 1650.
    229261  call getin('CH4_ppb', zzz)
    230   CH4_ppb = zzz
    231   RCH4 = CH4_ppb * 1.0E-09 * 16.043/28.97
     262  CH4_ppb_omp = zzz
     263  RCH4_omp = CH4_ppb_omp * 1.0E-09 * 16.043/28.97
    232264!!
    233265!Config Key  = RN2O
     
    246278  zzz=306.
    247279  call getin('N2O_ppb', zzz)
    248   N2O_ppb = zzz
    249   RN2O = N2O_ppb * 1.0E-09 * 44.013/28.97
     280  N2O_ppb_omp = zzz
     281  RN2O_omp = N2O_ppb_omp * 1.0E-09 * 44.013/28.97
    250282!!
    251283!Config Key  = RCFC11
     
    258290  zzz = 280.
    259291  call getin('CFC11_ppt',zzz)
    260   CFC11_ppt = zzz
    261   RCFC11=CFC11_ppt* 1.0E-12 * 137.3686/28.97
     292  CFC11_ppt_omp = zzz
     293  RCFC11_omp=CFC11_ppt_omp* 1.0E-12 * 137.3686/28.97
    262294! RCFC11 = 1.327690990680013E-09
    263295!OK call getin('RCFC11', RCFC11)
     
    272304  zzz = 484.
    273305  call getin('CFC12_ppt',zzz)
    274   CFC12_ppt = zzz
    275   RCFC12 = CFC12_ppt * 1.0E-12 * 120.9140/28.97
     306  CFC12_ppt_omp = zzz
     307  RCFC12_omp = CFC12_ppt_omp * 1.0E-12 * 120.9140/28.97
    276308! RCFC12 = 2.020102726958923E-09
    277309!OK call getin('RCFC12', RCFC12)
     
    281313!! KE
    282314!
     315
     316!Config key  = cvl_corr
     317!Config Desc = Facteur multiplication des precip convectives dans KE
     318!Config Def  = 1.00
     319!Config Help = 1.02 pour un moderne ou un pre-ind. A ajuster pour un glaciaire
     320  cvl_corr_omp = 1.00
     321  CALL getin('cvl_corr', cvl_corr_omp)
     322
     323
    283324!Config Key  = epmax
    284325!Config Desc = Efficacite precip
     
    286327!Config Help =
    287328!
    288   epmax = .993
    289   call getin('epmax', epmax)
     329  epmax_omp = .993
     330  call getin('epmax', epmax_omp)
    290331!
    291332!Config Key  = ok_adj_ema
     
    294335!Config Help =
    295336!
    296   ok_adj_ema = .false.
    297   call getin('ok_adj_ema',ok_adj_ema)
     337  ok_adj_ema_omp = .false.
     338  call getin('ok_adj_ema',ok_adj_ema_omp)
    298339!
    299340!Config Key  = iflag_clw
     
    302343!Config Help =
    303344!
    304   iflag_clw = 0
    305   call getin('iflag_clw',iflag_clw)
     345  iflag_clw_omp = 0
     346  call getin('iflag_clw',iflag_clw_omp)
    306347!
    307348!Config Key  = cld_lc_lsc
     
    310351!Config Help =
    311352!
    312   cld_lc_lsc = 2.6e-4
    313   call getin('cld_lc_lsc',cld_lc_lsc)
     353  cld_lc_lsc_omp = 2.6e-4
     354  call getin('cld_lc_lsc',cld_lc_lsc_omp)
    314355!
    315356!Config Key  = cld_lc_con
     
    318359!Config Help =
    319360!
    320   cld_lc_con = 2.6e-4
    321   call getin('cld_lc_con',cld_lc_con)
     361  cld_lc_con_omp = 2.6e-4
     362  call getin('cld_lc_con',cld_lc_con_omp)
    322363!
    323364!Config Key  = cld_tau_lsc
     
    326367!Config Help =
    327368!
    328   cld_tau_lsc = 3600.
    329   call getin('cld_tau_lsc',cld_tau_lsc)
     369  cld_tau_lsc_omp = 3600.
     370  call getin('cld_tau_lsc',cld_tau_lsc_omp)
    330371!
    331372!Config Key  = cld_tau_con
     
    334375!Config Help =
    335376!
    336   cld_tau_con = 3600.
    337   call getin('cld_tau_con',cld_tau_con)
     377  cld_tau_con_omp = 3600.
     378  call getin('cld_tau_con',cld_tau_con_omp)
    338379!
    339380!Config Key  = ffallv_lsc
     
    342383!Config Help =
    343384!
    344   ffallv_lsc = 1.
    345   call getin('ffallv_lsc',ffallv_lsc)
     385  ffallv_lsc_omp = 1.
     386  call getin('ffallv_lsc',ffallv_lsc_omp)
    346387!
    347388!Config Key  = ffallv_con
     
    350391!Config Help =
    351392!
    352   ffallv_con = 1.
    353   call getin('ffallv_con',ffallv_con)
     393  ffallv_con_omp = 1.
     394  call getin('ffallv_con',ffallv_con_omp)
    354395!
    355396!Config Key  = coef_eva
     
    358399!Config Help =
    359400!
    360   coef_eva = 2.e-5
    361   call getin('coef_eva',coef_eva)
     401  coef_eva_omp = 2.e-5
     402  call getin('coef_eva',coef_eva_omp)
    362403!
    363404!Config Key  = reevap_ice
     
    366407!Config Help =
    367408!
    368   reevap_ice = .false.
    369   call getin('reevap_ice',reevap_ice)
     409  reevap_ice_omp = .false.
     410  call getin('reevap_ice',reevap_ice_omp)
    370411!
    371412!Config Key  = iflag_cldcon
     
    374415!Config Help =
    375416!
    376   iflag_cldcon = 1
    377   call getin('iflag_cldcon',iflag_cldcon)
     417  iflag_cldcon_omp = 1
     418  call getin('iflag_cldcon',iflag_cldcon_omp)
    378419
    379420!
     
    383424!Config Help =
    384425!
    385   iflag_pdf = 0
    386   call getin('iflag_pdf',iflag_pdf)
     426  iflag_pdf_omp = 0
     427  call getin('iflag_pdf',iflag_pdf_omp)
    387428!
    388429!Config Key  = fact_cldcon
     
    391432!Config Help =
    392433!
    393   fact_cldcon = 0.375
    394   call getin('fact_cldcon',fact_cldcon)
     434  fact_cldcon_omp = 0.375
     435  call getin('fact_cldcon',fact_cldcon_omp)
    395436
    396437!
     
    400441!Config Help =
    401442!
    402   facttemps = 1.e-4
    403   call getin('facttemps',facttemps)
     443  facttemps_omp = 1.e-4
     444  call getin('facttemps',facttemps_omp)
    404445
    405446!
     
    409450!Config Help =
    410451!
    411   ok_newmicro = .true.
    412   call getin('ok_newmicro',ok_newmicro)
     452  ok_newmicro_omp = .true.
     453  call getin('ok_newmicro',ok_newmicro_omp)
    413454!
    414455!Config Key  = ratqsbas
     
    417458!Config Help =
    418459!
    419   ratqsbas = 0.01
    420   call getin('ratqsbas',ratqsbas)
     460  ratqsbas_omp = 0.01
     461  call getin('ratqsbas',ratqsbas_omp)
    421462!
    422463!Config Key  = ratqshaut
     
    425466!Config Help =
    426467!
    427   ratqshaut = 0.3
    428   call getin('ratqshaut',ratqshaut)
     468  ratqshaut_omp = 0.3
     469  call getin('ratqshaut',ratqshaut_omp)
    429470
    430471!
     
    434475!Config Help =
    435476!
    436   rad_froid = 35.0
    437   call getin('rad_froid',rad_froid)
     477  rad_froid_omp = 35.0
     478  call getin('rad_froid',rad_froid_omp)
    438479
    439480!
     
    443484!Config Help =
    444485!
    445   rad_chau1 = 13.0
    446   call getin('rad_chau1',rad_chau1)
     486  rad_chau1_omp = 13.0
     487  call getin('rad_chau1',rad_chau1_omp)
    447488
    448489!
     
    452493!Config Help =
    453494!
    454   rad_chau2 = 9.0
    455   call getin('rad_chau2',rad_chau2)
     495  rad_chau2_omp = 9.0
     496  call getin('rad_chau2',rad_chau2_omp)
    456497
    457498!
     
    461502!Config Help =
    462503!
    463   top_height = 3
    464   call getin('top_height',top_height)
     504  top_height_omp = 3
     505  call getin('top_height',top_height_omp)
    465506
    466507!
     
    470511!Config Help =
    471512!
    472   overlap = 3
    473   call getin('overlap',overlap)
     513  overlap_omp = 3
     514  call getin('overlap',overlap_omp)
    474515
    475516
     
    481522!Config Help =
    482523!
    483   cdmmax = 1.3E-3
    484   call getin('cdmmax',cdmmax)
     524  cdmmax_omp = 1.3E-3
     525  call getin('cdmmax',cdmmax_omp)
    485526
    486527!
     
    490531!Config Help =
    491532!
    492   cdhmax = 1.1E-3
    493   call getin('cdhmax',cdhmax)
     533  cdhmax_omp = 1.1E-3
     534  call getin('cdhmax',cdhmax_omp)
    494535
    495536!261103
     
    500541!Config Help =
    501542!
    502   ksta = 1.0e-10
    503   call getin('ksta',ksta)
     543  ksta_omp = 1.0e-10
     544  call getin('ksta',ksta_omp)
    504545
    505546!
     
    509550!Config Help =
    510551!
    511   ksta_ter = 1.0e-10
    512   call getin('ksta_ter',ksta_ter)
     552  ksta_ter_omp = 1.0e-10
     553  call getin('ksta_ter',ksta_ter_omp)
    513554
    514555!
     
    518559!Config Help =
    519560!
    520   ok_kzmin = .true.
    521   call getin('ok_kzmin',ok_kzmin)
     561  ok_kzmin_omp = .true.
     562  call getin('ok_kzmin',ok_kzmin_omp)
     563
     564!Config Key = ok_lic_melt
     565!Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau
     566!Config Def  = .false.
     567!Config Help = mettre a .false. pour assurer la conservation en eau
     568  ok_lic_melt_omp = .false.
     569  call getin('ok_lic_melt', ok_lic_melt_omp)
    522570
    523571!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    530578!Config Help =
    531579!
    532   iflag_pbl = 1
    533   call getin('iflag_pbl',iflag_pbl)
     580  iflag_pbl_omp = 1
     581  call getin('iflag_pbl',iflag_pbl_omp)
    534582!
    535583!Config Key  = iflag_thermals
     
    538586!Config Help =
    539587!
    540   iflag_thermals = 0
    541   call getin('iflag_thermals',iflag_thermals)
     588  iflag_thermals_omp = 0
     589  call getin('iflag_thermals',iflag_thermals_omp)
    542590!
    543591!
     
    547595!Config Help =
    548596!
    549   nsplit_thermals = 1
    550   call getin('nsplit_thermals',nsplit_thermals)
     597  nsplit_thermals_omp = 1
     598  call getin('nsplit_thermals',nsplit_thermals_omp)
    551599
    552600
     
    558606!Config Help =
    559607!
    560   lev_histhf = 1
    561   call getin('lev_histhf',lev_histhf)
     608  lev_histhf_omp = 1
     609  call getin('lev_histhf',lev_histhf_omp)
    562610
    563611!
     
    567615!Config Help =
    568616!
    569   lev_histday = 1
    570   call getin('lev_histday',lev_histday)
     617  lev_histday_omp = 1
     618  call getin('lev_histday',lev_histday_omp)
    571619
    572620!
     
    576624!Config Help =
    577625!
    578   lev_histmth = 2
    579   call getin('lev_histmth',lev_histmth)
    580 
    581 !
     626  lev_histmth_omp = 2
     627  call getin('lev_histmth',lev_histmth_omp)
     628
     629  !
    582630!Config Key  = type_run
    583631!Config Desc =
     
    585633!Config Help =
    586634!
    587   type_run = 'AMIP'
    588   call getin('type_run',type_run)
    589 
    590 !
     635  type_run_omp = 'AMIP'
     636  call getin('type_run',type_run_omp)
     637
     638  !
    591639!Config Key  = ok_isccp
    592640!Config Desc =
     
    595643!
    596644! ok_isccp = .true.
    597   ok_isccp = .false.
    598   call getin('ok_isccp',ok_isccp)
     645  ok_isccp_omp = .false.
     646  call getin('ok_isccp',ok_isccp_omp)
    599647
    600648!
     
    607655!Config Help =
    608656!
    609    lonmin_ins = 100.
    610    call getin('lonmin_ins',lonmin_ins)
     657   lonmin_ins_omp = 100.
     658   call getin('lonmin_ins',lonmin_ins_omp)
    611659!
    612660!Config Key  = lonmax_ins
     
    616664!
    617665   lonmax_ins = 130.
    618    call getin('lonmax_ins',lonmax_ins)
     666   call getin('lonmax_ins',lonmax_ins_omp)
    619667!
    620668!Config Key  = latmin_ins
     
    623671!Config Help =
    624672!
    625    latmin_ins = -20.
    626    call getin('latmin_ins',latmin_ins)
     673   latmin_ins_omp = -20.
     674   call getin('latmin_ins',latmin_ins_omp)
    627675!
    628676!Config Key  = latmax_ins
     
    631679!Config Help =
    632680!
    633    latmax_ins = 20.
    634    call getin('latmax_ins',latmax_ins)
     681   latmax_ins_omp = 20.
     682   call getin('latmax_ins',latmax_ins_omp)
    635683!
    636684!Config Key  = ecrit_hf
     
    639687!Config Help =
    640688!
    641   ecrit_hf = 1./8.
    642   call getin('ecrit_hf',ecrit_hf)
     689  ecrit_hf_omp = 1./8.
     690  call getin('ecrit_hf',ecrit_hf_omp)
    643691!
    644692!Config Key  = ecrit_day
     
    647695!Config Help =
    648696!
    649   ecrit_day = 1.0
    650   call getin('ecrit_day',ecrit_day)
     697  ecrit_day_omp = 1.0
     698  call getin('ecrit_day',ecrit_day_omp)
    651699!
    652700!Config Key  = ecrit_mth
     
    655703!Config Help =
    656704!
    657   ecrit_mth = 30.
    658   call getin('ecrit_mth',ecrit_mth)
     705  ecrit_mth_omp = 30.
     706  call getin('ecrit_mth',ecrit_mth_omp)
    659707!
    660708!Config Key  = ecrit_tra
     
    663711!Config Help =
    664712!
    665   ecrit_tra = 30.
    666   call getin('ecrit_tra',ecrit_tra)
     713  ecrit_tra_omp = 30.
     714  call getin('ecrit_tra',ecrit_tra_omp)
    667715!
    668716!Config Key  = ecrit_reg
     
    671719!Config Help =
    672720!
    673   ecrit_reg = 0.25   !4 fois par jour
    674   call getin('ecrit_reg',ecrit_reg)
     721  ecrit_reg_omp = 0.25   !4 fois par jour
     722  call getin('ecrit_reg',ecrit_reg_omp)
    675723!
    676724!
     
    682730!              de glace de mer Observee
    683731!
    684   ok_slab_sicOBS = .true.
    685   call getin('ok_slab_sicOBS', ok_slab_sicOBS)
     732  ok_slab_sicOBS_omp = .true.
     733  call getin('ok_slab_sicOBS', ok_slab_sicOBS_omp)
     734
     735
     736!$OMP END MASTER
     737!$OMP BARRIER
     738
     739    R_ecc = R_ecc_omp
     740    R_peri = R_peri_omp
     741    R_incl = R_incl_omp
     742    solaire = solaire_omp
     743    co2_ppm = co2_ppm_omp
     744    RCO2 = RCO2_omp
     745    CH4_ppb = CH4_ppb_omp
     746    RCH4 = RCH4_omp
     747    N2O_ppb = N2O_ppb_omp
     748    RN2O = RN2O_omp
     749    CFC11_ppt = CFC11_ppt_omp
     750    RCFC11 = RCFC11_omp
     751    CFC12_ppt = CFC12_ppt_omp
     752    RCFC12 = RCFC12_omp
     753    epmax = epmax_omp
     754    ok_adj_ema = ok_adj_ema_omp
     755    iflag_clw = iflag_clw_omp
     756    cld_lc_lsc = cld_lc_lsc_omp
     757    cld_lc_con = cld_lc_con_omp
     758    cld_tau_lsc = cld_tau_lsc_omp
     759    cld_tau_con = cld_tau_con_omp
     760    ffallv_lsc = ffallv_lsc_omp
     761    ffallv_con = ffallv_con_omp
     762    coef_eva = coef_eva_omp
     763    reevap_ice = reevap_ice_omp
     764    iflag_pdf = iflag_pdf_omp
     765    rad_froid = rad_froid_omp
     766    rad_chau1 = rad_chau1_omp
     767    rad_chau2 = rad_chau2_omp
     768    top_height = top_height_omp
     769    overlap = overlap_omp
     770    cdmmax = cdmmax_omp
     771    cdhmax = cdhmax_omp
     772    ksta = ksta_omp
     773    ksta_ter = ksta_ter_omp
     774    ok_kzmin = ok_kzmin_omp
     775    iflag_pbl = iflag_pbl_omp
     776    lev_histhf = lev_histhf_omp
     777    lev_histday = lev_histday_omp
     778    lev_histmth = lev_histmth_omp
     779
     780    ocean = ocean_omp
     781    ok_veget = ok_veget_omp
     782    ok_newmicro = ok_newmicro_omp
     783    ok_journe = ok_journe_omp
     784    ok_mensuel = ok_mensuel_omp
     785    ok_instan = ok_instan_omp
     786    ok_ade = ok_ade_omp
     787    ok_aie = ok_aie_omp
     788    bl95_b0 = bl95_b0_omp
     789    bl95_b1 = bl95_b1_omp
     790    fact_cldcon = fact_cldcon_omp
     791    facttemps = facttemps_omp
     792    ratqsbas = ratqsbas_omp
     793    ratqshaut = ratqshaut_omp
     794    iflag_cldcon = iflag_cldcon_omp
     795    ip_ebil_phy = ip_ebil_phy_omp
     796    iflag_thermals = iflag_thermals_omp
     797    nsplit_thermals = nsplit_thermals_omp
     798    type_run = type_run_omp
     799    ok_isccp = ok_isccp_omp
     800    lonmin_ins = lonmin_ins_omp
     801    lonmax_ins = lonmax_ins_omp
     802    latmin_ins = latmin_ins_omp
     803    latmax_ins = latmax_ins_omp
     804    ecrit_hf   = ecrit_hf_omp
     805    ecrit_day = ecrit_day_omp
     806    ecrit_mth = ecrit_mth_omp
     807    ecrit_tra = ecrit_tra_omp
     808    ecrit_reg = ecrit_reg_omp
     809    ok_slab_sicOBS = ok_slab_sicOBS_omp
     810    cvl_corr = cvl_corr_omp
     811    ok_lic_melt = ok_lic_melt_omp
     812
     813!$OMP MASTER
    686814
    687815  write(numout,*)' ##############################################'
     
    703831  write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 =  ',RCFC11
    704832  write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 =  ',RCFC12
     833  write(numout,*)' cvl_corr=', cvl_corr
     834  write(numout,*)'ok_lic_melt=', ok_lic_melt
    705835  write(numout,*)' epmax = ', epmax
    706836  write(numout,*)' ok_adj_ema = ', ok_adj_ema
     
    741871  write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',&
    742872 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
    743   write(numout,*)' ecrit_ hf, day, mth, reg, tra',&
     873  write(numout,*)' ecrit_ hf, day, mth, reg',&
    744874 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra
     875
     876!$OMP END MASTER
     877
    745878  return
    746 
     879 
    747880  end subroutine conf_phys
    748881
     
    761894
    762895  REAL          :: tau_calv
     896  REAL,SAVE     :: tau_calv_omp
    763897
    764898! Local
     
    770904!Config Help =
    771905!
    772   tau_calv = 360.
    773   call getin('tau_calv',tau_calv)
    774 
     906  tau_calv_omp = 360.*10.
     907!$OMP MASTER
     908  call getin('tau_calv',tau_calv_omp)
     909!$OMP END MASTER
     910!$OMP BARRIER
     911
     912  tau_calv=tau_calv_omp
     913 
     914!$OMP MASTER
    775915  write(numout,*)' ##############################################'
    776916  WRITE(numout,*)' Configuration de l''interface atm/surfaces  : '
    777917  WRITE(numout,*)' tau_calv = ',tau_calv
     918!$OMP END MASTER
     919
    778920  return
    779921
  • LMDZ4/trunk/libf/phylmd/conflx.F

    r524 r766  
    88     s                   kcbot, kctop, kdtop, pmflxr, pmflxs)
    99c
     10      USE dimphy
    1011      IMPLICIT none
    1112c======================================================================
     
    1718c         et lessivage des traceurs passifs.
    1819c======================================================================
    19 #include "dimensions.h"
    20 #include "dimphy.h"
     20cym#include "dimensions.h"
     21cym#include "dimphy.h"
    2122#include "YOMCST.h"
    2223#include "YOETHF.h"
     
    214215     .                   pmfu, pmfd, pen_u, pde_u, pen_d, pde_d,
    215216     .                   dt_con, dq_con, pmflxr, pmflxs)
     217      USE dimphy
    216218      IMPLICIT none
    217219C     ------------------------------------------------------------------
    218 #include "dimensions.h"
    219 #include "dimphy.h"
     220cym#include "dimensions.h"
     221cym#include "dimphy.h"
    220222#include "YOMCST.h"
    221223#include "YOETHF.h"
     
    265267      SAVE firstcal
    266268      DATA firstcal / .TRUE. /
     269c$OMP THREADPRIVATE(firstcal)
    267270C---------------------------------------------------------------------
    268271      IF (firstcal) THEN
     
    504507     .           pdmfdp, pmfu, pmfus, pmfuq, pdmfup, pdpmel, plu, plude,
    505508     .           klab,pen_u, pde_u, pen_d, pde_d)
     509      USE dimphy
    506510      IMPLICIT none
    507511C----------------------------------------------------------------------
     
    510514C AND INITIALIZES VALUES FOR UPDRAFTS
    511515C----------------------------------------------------------------------
    512 #include "dimensions.h"
    513 #include "dimphy.h"
     516cym#include "dimensions.h"
     517cym#include "dimphy.h"
    514518#include "YOMCST.h"
    515519#include "YOETHF.h"
     
    629633      SUBROUTINE flxbase(ptenh, pqenh, pgeoh, paph,
    630634     *     ptu, pqu, plu, ldcum, kcbot, klab)
     635      USE dimphy
    631636      IMPLICIT none
    632637C----------------------------------------------------------------------
     
    641646C (NON ENTRAINING PLUME,I.E.CONSTANT MASSFLUX)
    642647C----------------------------------------------------------------------
    643 #include "dimensions.h"
    644 #include "dimphy.h"
     648cym#include "dimensions.h"
     649cym#include "dimphy.h"
    645650#include "YOMCST.h"
    646651#include "YOETHF.h"
     
    714719     .     pmful, plude, pdmfup, kcbot, kctop, kctop0, kcum,
    715720     .     pen_u, pde_u)
     721      USE dimphy
    716722      IMPLICIT none
    717723C----------------------------------------------------------------------
     
    719725C FOR CUMULUS PARAMETERIZATION
    720726C----------------------------------------------------------------------
    721 #include "dimensions.h"
    722 #include "dimphy.h"
     727cym#include "dimensions.h"
     728cym#include "dimphy.h"
    723729#include "YOMCST.h"
    724730#include "YOETHF.h"
     
    10181024     .  ,  pten, prfl, psfl, pdpmel, ktopm2
    10191025     .  ,  pmflxr, pmflxs)
     1026      USE dimphy
    10201027      IMPLICIT none
    10211028C----------------------------------------------------------------------
     
    10231030C FLUXES IN THE CLOUD LAYER AND IN THE SUBCLOUD LAYER
    10241031C----------------------------------------------------------------------
    1025 #include "dimensions.h"
    1026 #include "dimphy.h"
     1032cym#include "dimensions.h"
     1033cym#include "dimphy.h"
    10271034#include "YOMCST.h"
    10281035#include "YOETHF.h"
    10291036#include "YOECUMF.h"
    10301037C
    1031       REAL cevapcu(klev)
     1038      REAL cevapcu(klon,klev)
    10321039C     -----------------------------------------------------------------
    10331040      REAL pqen(klon,klev), pqenh(klon,klev), pqsen(klon,klev)
     
    10641071c
    10651072      DO 101 k=1,klev
    1066       CEVAPCU(k)=1.93E-6*261.*SQRT(1.E3/(38.3*0.293)
    1067      1 *SQRT(0.5*(paph(1,k)+paph(1,k+1))/paph(1,klev+1)) ) * 0.5/RG
     1073        DO i=1,klon
     1074      CEVAPCU(i,k)=1.93E-6*261.*SQRT(1.E3/(38.3*0.293)
     1075     1 *SQRT(0.5*(paph(i,k)+paph(i,k+1))/paph(i,klev+1)) ) * 0.5/RG
     1076        ENDDO
    10681077 101  CONTINUE
    10691078c
     
    12131222         IF (zrfl.GT.1.0E-20) THEN
    12141223            zrnew=(MAX(0.,SQRT(zrfl/zcucov)-
    1215      .            CEVAPCU(k)*(paph(i,k+1)-paph(i,k))*
     1224     .            CEVAPCU(i,k)*(paph(i,k+1)-paph(i,k))*
    12161225     .            MAX(0.,pqsen(i,k)-pqen(i,k))))**2*zcucov
    12171226            zrmin=zrfl-zcucov*MAX(0.,0.8*pqsen(i,k)-pqen(i,k))
     
    12621271     .  ,  pmfus, pmfds, pmfuq, pmfdq, pmful, pdmfup, pdmfdp
    12631272     .  ,  pdpmel, dt_con, dq_con)
     1273      USE dimphy
    12641274      IMPLICIT none
    12651275c----------------------------------------------------------------------
    12661276c calculer les tendances T et Q
    12671277c----------------------------------------------------------------------
    1268 #include "dimensions.h"
    1269 #include "dimphy.h"
     1278cym#include "dimensions.h"
     1279cym#include "dimphy.h"
    12701280#include "YOMCST.h"
    12711281#include "YOETHF.h"
     
    13331343     .     ldcum, kcbot, kctop, pmfub, prfl, ptd, pqd,
    13341344     .     pmfd, pmfds, pmfdq, pdmfdp, kdtop, lddraf)
     1345      USE dimphy
    13351346      IMPLICIT none
    13361347C
     
    13501361C MOIST ENVIRONMENTAL AIR AND CLOUD AIR.
    13511362C----------------------------------------------------------------------
    1352 #include "dimensions.h"
    1353 #include "dimphy.h"
     1363cym#include "dimensions.h"
     1364cym#include "dimphy.h"
    13541365#include "YOMCST.h"
    13551366#include "YOETHF.h"
     
    14441455     .           ptd, pqd, pmfd, pmfds, pmfdq, pdmfdp,
    14451456     .           lddraf, pen_d, pde_d)
     1457      USE dimphy
    14461458      IMPLICIT none
    14471459C
     
    14611473C
    14621474C----------------------------------------------------------------------
    1463 #include "dimensions.h"
    1464 #include "dimphy.h"
     1475cym#include "dimensions.h"
     1476cym#include "dimphy.h"
    14651477#include "YOMCST.h"
    14661478#include "YOETHF.h"
     
    15591571      END
    15601572      SUBROUTINE flxadjtq(pp, pt, pq, ldflag, kcall)
     1573      USE dimphy
    15611574      IMPLICIT none
    15621575c======================================================================
     
    15681581C        kcall=2  EVAPORATION IN DOWNDRAFTS (E.G. CUDLFS,CUDDRAF)
    15691582C
    1570 #include "dimensions.h"
    1571 #include "dimphy.h"
     1583cym#include "dimensions.h"
     1584cym#include "dimphy.h"
    15721585#include "YOMCST.h"
    15731586C
  • LMDZ4/trunk/libf/phylmd/conlmd.F

    r524 r766  
    44      SUBROUTINE conlmd (dtime, paprs, pplay, t, q, conv_q,
    55     s                   d_t, d_q, rain, snow, ibas, itop)
     6      USE dimphy
    67      IMPLICIT none
    78c======================================================================
     
    1011c        Ajustement humide (Manabe) + Ajustement convectif (Kuo)
    1112c======================================================================
    12 #include "dimensions.h"
    13 #include "dimphy.h"
     13cym#include "dimensions.h"
     14cym#include "dimphy.h"
    1415#include "YOMCST.h"
    1516#include "YOETHF.h"
     
    9394     s                   d_t, d_q, d_ql, rneb,
    9495     s                   rain, snow, ibas, itop)
     96      USE dimphy
    9597      IMPLICIT none
    9698c======================================================================
     
    105107c du modele.
    106108c======================================================================
    107 #include "dimensions.h"
    108 #include "dimphy.h"
     109cym#include "dimensions.h"
     110cym#include "dimphy.h"
    109111#include "YOMCST.h"
    110112c
     
    154156      INTEGER ncpt
    155157      SAVE ncpt
     158c$OMP THREADPRIVATE(ncpt)
    156159      REAL frac(nb) ! valeur de la maille fractionnelle
    157160      SAVE frac
     161c$OMP THREADPRIVATE(frac)
    158162      INTEGER opt_cld(nb) ! option pour le modele nuageux
    159163      SAVE opt_cld
     164c$OMP THREADPRIVATE(opt_cld)
    160165      LOGICAL appel1er
    161166      SAVE appel1er
     167c$OMP THREADPRIVATE(appel1er)
    162168c
    163169c Fonctions thermodynamiques:
     
    301307     s                    d_t, d_q, d_ql, rneb,
    302308     s                    rain, snow, ibas, itop,accompli,imprim)
     309      USE dimphy
    303310      IMPLICIT none
    304311c======================================================================
     
    309316c        et itop est le haut du plus haut bloc
    310317c======================================================================
    311 #include "dimensions.h"
    312 #include "dimphy.h"
     318cym#include "dimensions.h"
     319cym#include "dimphy.h"
    313320#include "YOMCST.h"
    314321c
     
    10641071     s                  d_t, d_q, d_ql, rneb,
    10651072     s                  rain, snow, ibas, itop)
     1073      USE dimphy
    10661074      IMPLICIT none
    10671075c======================================================================
     
    10711079c N.B. version vectorielle (le 6 oct. 1997)
    10721080c======================================================================
    1073 #include "dimensions.h"
    1074 #include "dimphy.h"
     1081cym#include "dimensions.h"
     1082cym#include "dimphy.h"
    10751083#include "YOMCST.h"
    10761084c
     
    11451153      LOGICAL appel1er
    11461154      SAVE appel1er
     1155c$OMP THREADPRIVATE(appel1er)
    11471156c
    11481157c Fonctions thermodynamiques
     
    15871596      END
    15881597      SUBROUTINE kuofcl(pt, pq, pg, pp, LDCUM, kcbot)
     1598      USE dimphy
    15891599      IMPLICIT none
    15901600c======================================================================
     
    16031613c kcbot---output-I- Niveau du bas de la convection
    16041614c======================================================================
    1605 #include "dimensions.h"
    1606 #include "dimphy.h"
     1615cym#include "dimensions.h"
     1616cym#include "dimphy.h"
    16071617#include "YOMCST.h"
    16081618#include "YOETHF.h"
     
    16881698      END
    16891699      SUBROUTINE adjtq(pp, pt, pq, LDFLAG, KCALL)
     1700      USE dimphy
    16901701      IMPLICIT none
    16911702c======================================================================
     
    17061717C        KCALL=2  EVAPORATION IN DOWNDRAFTS (E.G. CUDLFS,CUDDRAF)
    17071718C
    1708 #include "dimensions.h"
    1709 #include "dimphy.h"
     1719cym#include "dimensions.h"
     1720cym#include "dimphy.h"
    17101721#include "YOMCST.h"
    17111722C
     
    17971808     .                 d_t, d_q, d_ql, rneb,
    17981809     .                 rain, snow, ibas, itop)
     1810      USE dimphy
    17991811      IMPLICIT NONE
    18001812c
    18011813c Ajustement humide (Schema de convection de Manabe)
    18021814C.
    1803 #include "dimensions.h"
    1804 #include "dimphy.h"
     1815cym#include "dimensions.h"
     1816cym#include "dimphy.h"
    18051817#include "YOMCST.h"
    18061818c
     
    20952107     .                 d_t, d_q, d_ql,rneb,
    20962108     .                 rain, snow, ibas, itop)
     2109      USE dimphy
    20972110      IMPLICIT NONE
    20982111c
    2099 #include "dimensions.h"
    2100 #include "dimphy.h"
     2112cym#include "dimensions.h"
     2113cym#include "dimphy.h"
    21012114#include "YOMCST.h"
    21022115c
  • LMDZ4/trunk/libf/phylmd/convect1.F

    r524 r766  
    107107c
    108108c
     109       USE dimphy
    109110      implicit none
    110111c
    111 #include "dimensions.h"
    112 #include "dimphy.h"
     112cym#include "dimensions.h"
     113cym#include "dimphy.h"
    113114c
    114115      integer len
  • LMDZ4/trunk/libf/phylmd/convect2.F

    r524 r766  
    148148c
    149149c
     150      USE dimphy
    150151      implicit none
    151152c
    152 #include "dimensions.h"
    153 #include "dimphy.h"
     153cym#include "dimensions.h"
     154cym#include "dimphy.h"
    154155c
    155156      integer kmax2,imax2,kmin2,imin2
  • LMDZ4/trunk/libf/phylmd/convect3.F

    r524 r766  
    1818cFleur       Introduction des traceurs dans convect3 le 6 juin 200
    1919c#################################################################
     20      USE dimphy
     21
    2022#include "dimensions.h"
    21 #include "dimphy.h"
     23cym#include "dimphy.h"
    2224      PARAMETER (NA=60)
    2325
     
    13411343
    13421344
    1343 c$$$cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    1344 c$$$         call writeg1d(1,klev,ma,'ma  ','ma  ')
    1345 c$$$          call writeg1d(1,klev,upwd,'upwd  ','upwd  ')
    1346 c$$$          call writeg1d(1,klev,dnwd,'dnwd  ','dnwd  ')
    1347 c$$$          call writeg1d(1,klev,dnwd0,'dnwd0  ','dnwd0  ')
    1348 c$$$          call writeg1d(1,klev,tvp,'tvp  ','tvp  ')
    1349 c$$$          call writeg1d(1,klev,tra(1:klev,3),'tra3  ','tra3  ')
    1350 c$$$          call writeg1d(1,klev,tra(1:klev,4),'tra4  ','tra4  ')
    1351 c$$$          call writeg1d(1,klev,tra(1:klev,5),'tra5  ','tra5  ')
    1352 c$$$          call writeg1d(1,klev,tra(1:klev,6),'tra6  ','tra6  ')
    1353 c$$$          call writeg1d(1,klev,tra(1:klev,7),'tra7  ','tra7  ')
    1354 c$$$          call writeg1d(1,klev,tra(1:klev,8),'tra8  ','tra8  ')
    1355 c$$$          call writeg1d(1,klev,tra(1:klev,9),'tra9  ','tra9  ')
    1356 c$$$          call writeg1d(1,klev,tra(1:klev,10),'tra10','tra10')
    1357 c$$$          call writeg1d(1,klev,tra(1:klev,11),'tra11','tra11')
    1358 c$$$          call writeg1d(1,klev,tra(1:klev,12),'tra12','tra12')
    1359 c$$$          call writeg1d(1,klev,tra(1:klev,13),'tra13','tra13')
    1360 c$$$          call writeg1d(1,klev,tra(1:klev,14),'tra14','tra14')
    1361 c$$$          call writeg1d(1,klev,tra(1:klev,15),'tra15','tra15')
    1362 c$$$          call writeg1d(1,klev,tra(1:klev,16),'tra16','tra16')
    1363 c$$$          call writeg1d(1,klev,tra(1:klev,17),'tra17','tra17')
    1364 c$$$          call writeg1d(1,klev,tra(1:klev,18),'tra18','tra18')
    1365 c$$$          call writeg1d(1,klev,tra(1:klev,19),'tra19','tra19')
    1366 c$$$          call writeg1d(1,klev,tra(1:klev,20),'tra20','tra20 ')
    1367 c$$$          call writeg1d(1,klev,trap(1:klev,1),'trp1','trp1')
    1368 c$$$          call writeg1d(1,klev,trap(1:klev,2),'trp2','trp2')
    1369 c$$$          call writeg1d(1,klev,trap(1:klev,3),'trp3','trp3')
    1370 c$$$          call writeg1d(1,klev,trap(1:klev,4),'trp4','trp4')
    1371 c$$$          call writeg1d(1,klev,trap(1:klev,5),'trp5','trp5')
    1372 c$$$          call writeg1d(1,klev,trap(1:klev,10),'trp10','trp10')
    1373 c$$$          call writeg1d(1,klev,trap(1:klev,12),'trp12','trp12')
    1374 c$$$          call writeg1d(1,klev,trap(1:klev,15),'trp15','trp15')
    1375 c$$$          call writeg1d(1,klev,trap(1:klev,20),'trp20','trp20')
    1376 c$$$          call writeg1d(1,klev,ftra(1:klev,1),'ftr1  ','ftr1  ')
    1377 c$$$          call writeg1d(1,klev,ftra(1:klev,2),'ftr2  ','ftr2  ')
    1378 c$$$          call writeg1d(1,klev,ftra(1:klev,3),'ftr3  ','ftr3  ')
    1379 c$$$          call writeg1d(1,klev,ftra(1:klev,4),'ftr4  ','ftr4  ')
    1380 c$$$          call writeg1d(1,klev,ftra(1:klev,5),'ftr5  ','ftr5  ')
    1381 c$$$          call writeg1d(1,klev,ftra(1:klev,6),'ftr6  ','ftr6  ')
    1382 c$$$          call writeg1d(1,klev,ftra(1:klev,7),'ftr7  ','ftr7  ')
    1383 c$$$          call writeg1d(1,klev,ftra(1:klev,8),'ftr8  ','ftr8  ')
    1384 c$$$          call writeg1d(1,klev,ftra(1:klev,9),'ftr9  ','ftr9  ')
    1385 c$$$          call writeg1d(1,klev,ftra(1:klev,10),'ftr10','ftr10')
    1386 c$$$          call writeg1d(1,klev,ftra(1:klev,11),'ftr11','ftr11')
    1387 c$$$          call writeg1d(1,klev,ftra(1:klev,12),'ftr12','ftr12')
    1388 c$$$          call writeg1d(1,klev,ftra(1:klev,13),'ftr13','ftr13')
    1389 c$$$          call writeg1d(1,klev,ftra(1:klev,14),'ftr14','ftr14')
    1390 c$$$          call writeg1d(1,klev,ftra(1:klev,15),'ftr15','ftr15')
    1391 c$$$          call writeg1d(1,klev,ftra(1:klev,16),'ftr16','ftr16')
    1392 c$$$          call writeg1d(1,klev,ftra(1:klev,17),'ftr17','ftr17')
    1393 c$$$          call writeg1d(1,klev,ftra(1:klev,18),'ftr18','ftr18')
    1394 c$$$          call writeg1d(1,klev,ftra(1:klev,19),'ftr19','ftr19')
    1395 c$$$          call writeg1d(1,klev,ftra(1:klev,20),'ftr20','ftr20 ')
    1396 c$$$          call writeg1d(1,klev,mp,'mp  ','mp ')
    1397 c$$$          call writeg1d(1,klev,Mke,'Mke  ','Mke ')
     1345c@$$cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
     1346c@$$         call writeg1d(1,klev,ma,'ma  ','ma  ')
     1347c@$$          call writeg1d(1,klev,upwd,'upwd  ','upwd  ')
     1348c@$$          call writeg1d(1,klev,dnwd,'dnwd  ','dnwd  ')
     1349c@$$          call writeg1d(1,klev,dnwd0,'dnwd0  ','dnwd0  ')
     1350c@$$          call writeg1d(1,klev,tvp,'tvp  ','tvp  ')
     1351c@$$          call writeg1d(1,klev,tra(1:klev,3),'tra3  ','tra3  ')
     1352c@$$          call writeg1d(1,klev,tra(1:klev,4),'tra4  ','tra4  ')
     1353c@$$          call writeg1d(1,klev,tra(1:klev,5),'tra5  ','tra5  ')
     1354c@$$          call writeg1d(1,klev,tra(1:klev,6),'tra6  ','tra6  ')
     1355c@$$          call writeg1d(1,klev,tra(1:klev,7),'tra7  ','tra7  ')
     1356c@$$          call writeg1d(1,klev,tra(1:klev,8),'tra8  ','tra8  ')
     1357c@$$          call writeg1d(1,klev,tra(1:klev,9),'tra9  ','tra9  ')
     1358c@$$          call writeg1d(1,klev,tra(1:klev,10),'tra10','tra10')
     1359c@$$          call writeg1d(1,klev,tra(1:klev,11),'tra11','tra11')
     1360c@$$          call writeg1d(1,klev,tra(1:klev,12),'tra12','tra12')
     1361c@$$          call writeg1d(1,klev,tra(1:klev,13),'tra13','tra13')
     1362c@$$          call writeg1d(1,klev,tra(1:klev,14),'tra14','tra14')
     1363c@$$          call writeg1d(1,klev,tra(1:klev,15),'tra15','tra15')
     1364c@$$          call writeg1d(1,klev,tra(1:klev,16),'tra16','tra16')
     1365c@$$          call writeg1d(1,klev,tra(1:klev,17),'tra17','tra17')
     1366c@$$          call writeg1d(1,klev,tra(1:klev,18),'tra18','tra18')
     1367c@$$          call writeg1d(1,klev,tra(1:klev,19),'tra19','tra19')
     1368c@$$          call writeg1d(1,klev,tra(1:klev,20),'tra20','tra20 ')
     1369c@$$          call writeg1d(1,klev,trap(1:klev,1),'trp1','trp1')
     1370c@$$          call writeg1d(1,klev,trap(1:klev,2),'trp2','trp2')
     1371c@$$          call writeg1d(1,klev,trap(1:klev,3),'trp3','trp3')
     1372c@$$          call writeg1d(1,klev,trap(1:klev,4),'trp4','trp4')
     1373c@$$          call writeg1d(1,klev,trap(1:klev,5),'trp5','trp5')
     1374c@$$          call writeg1d(1,klev,trap(1:klev,10),'trp10','trp10')
     1375c@$$          call writeg1d(1,klev,trap(1:klev,12),'trp12','trp12')
     1376c@$$          call writeg1d(1,klev,trap(1:klev,15),'trp15','trp15')
     1377c@$$          call writeg1d(1,klev,trap(1:klev,20),'trp20','trp20')
     1378c@$$          call writeg1d(1,klev,ftra(1:klev,1),'ftr1  ','ftr1  ')
     1379c@$$          call writeg1d(1,klev,ftra(1:klev,2),'ftr2  ','ftr2  ')
     1380c@$$          call writeg1d(1,klev,ftra(1:klev,3),'ftr3  ','ftr3  ')
     1381c@$$          call writeg1d(1,klev,ftra(1:klev,4),'ftr4  ','ftr4  ')
     1382c@$$          call writeg1d(1,klev,ftra(1:klev,5),'ftr5  ','ftr5  ')
     1383c@$$          call writeg1d(1,klev,ftra(1:klev,6),'ftr6  ','ftr6  ')
     1384c@$$          call writeg1d(1,klev,ftra(1:klev,7),'ftr7  ','ftr7  ')
     1385c@$$          call writeg1d(1,klev,ftra(1:klev,8),'ftr8  ','ftr8  ')
     1386c@$$          call writeg1d(1,klev,ftra(1:klev,9),'ftr9  ','ftr9  ')
     1387c@$$          call writeg1d(1,klev,ftra(1:klev,10),'ftr10','ftr10')
     1388c@$$          call writeg1d(1,klev,ftra(1:klev,11),'ftr11','ftr11')
     1389c@$$          call writeg1d(1,klev,ftra(1:klev,12),'ftr12','ftr12')
     1390c@$$          call writeg1d(1,klev,ftra(1:klev,13),'ftr13','ftr13')
     1391c@$$          call writeg1d(1,klev,ftra(1:klev,14),'ftr14','ftr14')
     1392c@$$          call writeg1d(1,klev,ftra(1:klev,15),'ftr15','ftr15')
     1393c@$$          call writeg1d(1,klev,ftra(1:klev,16),'ftr16','ftr16')
     1394c@$$          call writeg1d(1,klev,ftra(1:klev,17),'ftr17','ftr17')
     1395c@$$          call writeg1d(1,klev,ftra(1:klev,18),'ftr18','ftr18')
     1396c@$$          call writeg1d(1,klev,ftra(1:klev,19),'ftr19','ftr19')
     1397c@$$          call writeg1d(1,klev,ftra(1:klev,20),'ftr20','ftr20 ')
     1398c@$$          call writeg1d(1,klev,mp,'mp  ','mp ')
     1399c@$$          call writeg1d(1,klev,Mke,'Mke  ','Mke ')
    13981400
    13991401 
  • LMDZ4/trunk/libf/phylmd/cv_driver.F

    r619 r766  
    1111     &                   da1,phi1,mp1)
    1212C
     13      USE dimphy
    1314      implicit none
    1415C
     
    6465c
    6566c
    66 #include "dimensions.h"
    67 #include "dimphy.h"
     67cym#include "dimensions.h"
     68cym#include "dimphy.h"
    6869
    6970      integer len
     
    250251c (local) compressed fields:
    251252c
    252       integer nloc
    253       parameter (nloc=klon) ! pour l'instant
    254 
     253cym      integer nloc
     254cym      parameter (nloc=klon) ! pour l'instant
     255#define nloc klon
    255256      integer idcum(nloc)
    256257      integer iflag(nloc),nk(nloc),icb(nloc)
     
    290291      real wd(nloc)           ! gust
    291292
     293      nent(:,:)=0
    292294!-------------------------------------------------------------------
    293295! --- SET CONSTANTS AND PARAMETERS
  • LMDZ4/trunk/libf/phylmd/cvflag.h

    r524 r766  
    55
    66      COMMON /cvflag/ cvflag_grav
     7c$OMP THREADPRIVATE(/cvflag/)
  • LMDZ4/trunk/libf/phylmd/cvltr.F

    r619 r766  
    33c
    44      SUBROUTINE cvltr(pdtime,da, phi, mp,paprs,pplay,x,upd,dnd,dx)
     5      USE dimphy
    56      IMPLICIT NONE
    67c=====================================================================
     
    910c=====================================================================
    1011c
    11 #include "dimensions.h"
    12 #include "dimphy.h"
     12cym#include "dimensions.h"
     13cym#include "dimphy.h"
    1314#include "YOMCST.h"
    1415#include "YOECUMF.h"
  • LMDZ4/trunk/libf/phylmd/cvparam.h

    r524 r766  
    2727     :                ,dtmax, cu, betad, alpha, damp, delta
    2828
     29c$OMP THREADPRIVATE(/cvparam/)
  • LMDZ4/trunk/libf/phylmd/cvparam3.h

    r524 r766  
    2828     :                ,dtcrit, tau, beta, alpha, delta, betad
    2929
     30c$OMP THREADPRIVATE(/cvparam3/)
  • LMDZ4/trunk/libf/phylmd/cvthermo.h

    r524 r766  
    1414     :                 ,eps, epsi, epsim1, ginv, hrd, grav
    1515
     16c$OMP THREADPRIVATE(/cvthermo/)
  • LMDZ4/trunk/libf/phylmd/diagphy.F

    r524 r766  
    7474      save pas
    7575      data pas/0/
     76c$OMP THREADPRIVATE(pas)
    7677C
    7778      pas=pas+1
     
    258259      save pas
    259260      data pas/ndiag*0/
     261c$OMP THREADPRIVATE(pas)
    260262C     
    261263      REAL      h_vcol_pre(ndiag), h_dair_pre(ndiag), h_qw_pre(ndiag)
     
    264266      SAVE      h_vcol_pre, h_dair_pre, h_qw_pre, h_ql_pre
    265267     $        , h_qs_pre, qw_pre, ql_pre, qs_pre , ec_pre
    266 
     268c$OMP THREADPRIVATE(h_vcol_pre, h_dair_pre, h_qw_pre, h_ql_pre)
     269c$OMP THREADPRIVATE(h_qs_pre, qw_pre, ql_pre, qs_pre , ec_pre)
    267270c======================================================================
    268271C
  • LMDZ4/trunk/libf/phylmd/dimphy.F90

    r642 r766  
    11module dimphy
    2 
    3  
    4   logical, save :: monocpu
    5 !  logical, save :: parallel
    6    
    7   INTEGER,SAVE :: iiphy_begin
    8   INTEGER,SAVE :: iiphy_end
    9   INTEGER,SAVE :: jjphy_begin
    10   INTEGER,SAVE :: jjphy_end
    11   INTEGER,SAVE :: jjphy_nb
    12   INTEGER,SAVE :: ijphy_begin
    13   INTEGER,SAVE :: ijphy_end
    14   INTEGER,SAVE :: ijphy_nb
    15   INTEGER,SAVE :: klon_begin
    16   INTEGER,SAVE :: klon_end
    17  
    18  
    19   INTEGER,SAVE,allocatable,dimension(:) :: jjphy_para_nb
    20   INTEGER,SAVE,allocatable,dimension(:) :: jjphy_para_begin
    21   INTEGER,SAVE,allocatable,dimension(:) :: jjphy_para_end
    22   INTEGER,SAVE,dimension(:),allocatable :: Liste_i
    23   INTEGER,SAVE,dimension(:),allocatable :: Liste_j
    24   INTEGER,SAVE,dimension(:),allocatable :: klon_para_nb
    25   INTEGER,SAVE,dimension(:),allocatable :: klon_para_begin
    26   INTEGER,SAVE,dimension(:),allocatable :: klon_para_end
    27 
    28  
    29   INTEGER,save :: phy_rank
    30   INTEGER,save :: phy_size
    31  
    32 
    33   INTEGER,save :: klev, klevp1,klevm1,klon,kfdia,kidia
    34   INTEGER,save :: klon2
    35   INTEGER,save :: nbtr
    36   INTEGER,save :: kdlon, kflev
    37   REAL,save,allocatable,dimension(:) :: zmasq
    38  
    39 
    40  
    41 contains
    42  
    43    subroutine InitDimphy
    44 
    45 #ifdef CPP_PARALLEL
    46    use parallel
    47 #endif
    48 
    49    implicit none
    50 #include "dimensions90.h"
    51 #include "paramet90.h"
    52     integer :: rank
    53     integer :: i,j,Pos,Index
    54     logical,save :: First=.true.
    55 #ifndef CPP_PARALLEL
    56    logical, save :: pole_nord = .true.
    57    logical, save :: pole_sud = .true.
    58 #endif
    59 
    60 #ifdef CPP_PARALLEL     
    61       monocpu=.false.
    62 #else
    63       monocpu = .true.
    64 #endif
    65      
    66       if (monocpu) then
    67        
    68         phy_rank=0
    69         phy_size=1
    70        
    71 #ifdef CPP_PARALLEL     
    72       else
    73  
    74         phy_rank=mpi_rank
    75         phy_size=mpi_size
    76 #endif
    77      
    78       endif
    79 
    80       if (First) then
    81         allocate(jjphy_para_nb(0:phy_size-1))
    82         allocate(jjphy_para_begin(0:phy_size-1))
    83         allocate(jjphy_para_end(0:phy_size-1))
    84         allocate(klon_para_nb(0:phy_size-1))
    85         allocate(klon_para_begin(0:phy_size-1))
    86         allocate(klon_para_end(0:phy_size-1))
    87       endif
    88        
    89       klev=llm
    90       klevp1=klev+1
    91       klevm1=klev-1
    92       klon2=iim*(jjm-1)+2
    93      
    94      
    95 !        do i=0,phy_size-1
    96 !          klon_para_nb(i)=(klon2/phy_size)
    97 !          if (i<MOD(klon2,phy_size)) klon_para_nb(i)=klon_para_nb(i)+1
    98 !          if (i==0) then
    99 !            klon_para_begin(i)=1
    100 !          else
    101 !            klon_para_begin(i)=klon_para_end(i-1)+1
    102 !          endif
    103 !          klon_para_end(i)=klon_para_begin(i)+klon_para_nb(i)-1
    104 !        enddo
    105      
    106       if (First) then
    107         do i=0,phy_size-1
    108           klon_para_nb(i)=(klon2/phy_size)
    109           if (i<MOD(klon2,phy_size)) klon_para_nb(i)=klon_para_nb(i)+1
    110         enddo
    111       endif
    112        
    113       do i=0,phy_size-1
    114         if (i==0) then
    115           klon_para_begin(i)=1
    116         else
    117           klon_para_begin(i)=klon_para_end(i-1)+1
    118         endif
    119         klon_para_end(i)=klon_para_begin(i)+klon_para_nb(i)-1
    120       enddo
    121        
    122       klon=klon_para_nb(phy_rank)
    123       klon_begin=klon_para_begin(phy_rank)
    124       klon_end=klon_para_end(phy_rank)
    125        
    126       nbtr=nqmx-2+1/(nqmx-1)
    127 
    128       kidia=1
    129       kfdia=klon
    130      
    131       if (klon==6818 .and. monocpu) then
    132         kdlon=487
    133       else
    134         kdlon=klon
    135       endif
    136       kflev=klev
    137    
    138       if (.not.first) then
    139         deallocate(zmasq,liste_i,liste_j)
    140       endif
    141      
    142       allocate(zmasq(klon))
    143 
    144      
    145       allocate(Liste_i(klon))
    146       allocate(Liste_j(klon))
    147    
    148       Index=1
    149       if (Pole_Nord) then
    150         Liste_i(1)=1
    151         Liste_j(1)=1
    152         iiphy_begin=1
    153         jjphy_begin=1
    154         ijphy_begin=1
    155         Index=Index+1
    156       endif
    157    
    158       Pos=2
    159       do j=2,jjm
    160         do i=1,iim
    161      
    162           if (Pos==klon_begin) then
    163             iiphy_begin=i
    164             jjphy_begin=j
    165             ijphy_begin=j*iip1+i
    166           endif
    167        
    168           if (Pos==klon_end) then
    169             iiphy_end=i
    170             jjphy_end=j
    171             ijphy_end=j*iip1+i
    172           endif
    173        
    174           if (Pos>=klon_begin .AND. Pos<=klon_end) then
    175             Liste_i(Index)=i
    176             Liste_j(Index)=j
    177             Index=Index+1
    178           endif
    179           Pos=Pos+1
    180         enddo
    181       enddo
    182    
    183       if (pole_sud) then
    184         Liste_i(Index)=1
    185         Liste_j(Index)=jjp1
    186         iiphy_end=1
    187         jjphy_end=jjp1
    188         ijphy_end=jjp1*iip1+1
    189       endif
    190    
    191       ijphy_nb=ijphy_end-ijphy_begin+1
    192       jjphy_nb=jjphy_end-jjphy_begin+1
    193        
    194            
    195       Pos=2
    196       rank=0
    197       jjphy_para_begin(rank)=1
    198    
    199       do j=2,jjm
    200         do i=1,iim
    201           if (Pos==klon_para_begin(rank)) then
    202             jjphy_para_begin(rank)=j
    203           endif
    204           if (Pos==klon_para_end(rank)) then
    205             jjphy_para_end(rank)=j
    206             rank=rank+1
    207           endif
    208           Pos=Pos+1
    209         enddo
    210       enddo
    211       jjphy_para_end(rank)=jjp1
    212      
    213       First=.false.   
    214    end subroutine InitDimphy
    215    
    216 
    217    subroutine GatherField(Fields,Fieldr,ll)
    218      implicit none
    219 #ifdef CPP_PARALLEL     
    220      include 'mpif.h'
    221 #endif
    222      INTEGER :: ll
    223      REAL, dimension(klon,ll) :: Fields
    224      REAL, dimension(klon2,ll) :: Fieldr     
    225      REAL, dimension(klon2*ll) :: Field_tmp     
    226      INTEGER, dimension(0:phy_size-1) :: displs
    227      INTEGER, dimension(0:phy_size-1) :: sendcounts
    228      INTEGER :: l,Pos,rank,ierr
    229      INTEGER :: klon_b,klon_e, Nb
    230      
    231      Pos=1     
    232      do rank=0,phy_size-1
    233        klon_b=klon_para_begin(rank)
    234        klon_e=klon_para_end(rank)
    235        Nb=klon_para_nb(rank)
    236        displs(rank)=Pos-1
    237        sendcounts(rank)=Nb*ll
    238        Pos=Pos+Nb*ll
    239      enddo
    240          
    241       if (monocpu) then
    242         Fieldr(:,:)=Fields(:,:)
    243 #ifdef CPP_PARALLEL     
    244       else
    245         call MPI_Gatherv(Fields,klon*ll,MPI_REAL8,Field_tmp,sendcounts,  &
    246                          displs,MPI_REAL8,0,MPI_COMM_WORLD,ierr)
    247 #endif
    248       endif
    249      
    250      Pos=1     
    251      do rank=0,phy_size-1
    252        klon_b=klon_para_begin(rank)
    253        klon_e=klon_para_end(rank)
    254        Nb=klon_para_nb(rank)
    255        do l=1,ll
    256          Fieldr(klon_b:klon_e,l)=Field_tmp(Pos:Pos+Nb-1)
    257          Pos=Pos+Nb
    258        enddo
    259      enddo
    260      
    261    end subroutine GatherField
    262 
    263    subroutine AllGatherField(Fields,Fieldr,ll)
    264      implicit none
    265 #ifdef CPP_PARALLEL     
    266      include 'mpif.h'
    267 #endif   
    268      INTEGER :: ll
    269      REAL, dimension(klon,ll) :: Fields
    270      REAL, dimension(klon2,ll) :: Fieldr     
    271      
    272      INTEGER :: ierr
    273 
    274 #ifdef CPP_PARALLEL             
    275      call GatherField(Fields,Fieldr,ll)
    276      call MPI_BCAST(Fieldr,klon2*ll,MPI_REAL8,0,MPI_COMM_WORLD,ierr)
    277 #endif   
    278    end subroutine AllGatherField
    279    
    280            
    281    subroutine ScatterField(Fields,Fieldr,ll)
    282      implicit none
    283 #ifdef CPP_PARALLEL     
    284      include 'mpif.h'
    285 #endif
    286      INTEGER :: ll
    287      REAL, dimension(klon2,ll) :: Fields
    288      REAL, dimension(klon,ll) :: Fieldr     
    289      REAL, dimension(klon2*ll) :: Field_tmp     
    290      INTEGER, dimension(0:phy_size-1) :: displs
    291      INTEGER, dimension(0:phy_size-1) :: sendcounts
    292      INTEGER :: l,Pos,rank,ierr
    293      INTEGER :: klon_b,klon_e, Nb
    294 
    295      Pos=1   
    296      do rank=0,phy_size-1
    297        klon_b=klon_para_begin(rank)
    298        klon_e=klon_para_end(rank)
    299        Nb=klon_para_nb(rank)
    300        displs(rank)=Pos-1
    301        sendcounts(rank)=Nb*ll
    302        do l=1,ll
    303          Field_tmp(Pos:Pos+Nb-1)=Fields(klon_b:klon_e,l)
    304          Pos=Pos+Nb
    305        enddo
    306      enddo
    307            
    308      if (monocpu) then
    309        Fieldr(:,:)=Fields(:,:)
    310      else
    311 #ifdef CPP_PARALLEL     
    312        call MPI_Scatterv(Field_tmp,sendcounts,displs,MPI_REAL8,         &
    313                          Fieldr,klon*ll,MPI_REAL8,0,MPI_COMM_WORLD,ierr)
    314 #endif
    315      endif
    316      
    317        
    318    end subroutine ScatterField
    319    
    320    
     2  USE mod_phys_mpi
     3  USE mod_phys_openmp
    3214end module dimphy
  • LMDZ4/trunk/libf/phylmd/fisrtilp.F

    r559 r766  
    1010
    1111c
     12      USE dimphy
    1213      IMPLICIT none
    1314c======================================================================
     
    1819c======================================================================
    1920c======================================================================
    20 #include "dimensions.h"
    21 #include "dimphy.h"
     21cym#include "dimensions.h"
     22cym#include "dimphy.h"
    2223#include "YOMCST.h"
    2324#include "tracstoke.h"
     
    9091      LOGICAL appel1er
    9192      SAVE appel1er
     93c$OMP THREADPRIVATE(appel1er)
    9294c
    9395c---------------------------------------------------------------
     
    99101      REAL a_tr_sca(4)
    100102      save a_tr_sca
     103c$OMP THREADPRIVATE(a_tr_sca)
    101104c
    102105c Variables intermediaires
     
    110113      REAL zlh_solid(klon), zm_solid
    111114cIM
    112       INTEGER klevm1
     115cym      INTEGER klevm1
    113116c---------------------------------------------------------------
    114117c
     
    210213c
    211214cIM : klevm1
    212       klevm1=klev-1
     215cym      klevm1=klev-1
    213216      DO 9999 k = klev, 1, -1
    214217c
     
    269272     .                            /RG/dtime
    270273
    271 c pour la glace, on réévapore toute la précip dans la couche du dessous
     274c pour la glace, on r�vapore toute la pr�ip dans la couche du dessous
    272275c la glace venant de la couche du dessus est simplement dans la couche
    273276c du dessous.
     
    322325c   zqn   : eau totale dans le nuage
    323326c   zcond : eau condensee moyenne dans la maille.
    324 c           on prend en compte le réchauffement qui diminue la partie condensee
     327c           on prend en compte le rhauffement qui diminue la partie condensee
    325328c
    326329c   Version avec les raqts
     
    427430            zct(i)=1./cld_tau_lsc
    428431         endif
    429 c  quantité d'eau à élminier.
     432c  quantit�d'eau ��minier.
    430433         zchau(i) = zct(i)*dtime/FLOAT(ninter) * zoliq(i)
    431434     .         *(1.0-EXP(-(zoliq(i)/zneb(i)/zcl(i))**2)) *(1.-zfice(i))
  • LMDZ4/trunk/libf/phylmd/fisrtilp.h

    r524 r766  
    2020     s     ,iflag_pdf     ! 0
    2121
     22!$OMP THREADPRIVATE(/comfisrtilp/)
  • LMDZ4/trunk/libf/phylmd/fisrtilp.inc

    r524 r766  
    1919     &     ,reevap_ice  &
    2020     &     ,iflag_pdf 
    21 
     21!$OMP THREADPRIVATE(/comfisrtilp/)
  • LMDZ4/trunk/libf/phylmd/fisrtilp_tr.F

    r524 r766  
    1111
    1212c
     13      USE dimphy
    1314      IMPLICIT none
    1415c======================================================================
     
    1920c======================================================================
    2021c======================================================================
    21 #include "dimensions.h"
    22 #include "dimphy.h"
     22cym#include "dimensions.h"
     23cym#include "dimphy.h"
    2324#include "YOMCST.h"
    2425#include "tracstoke.h"
     
    101102      LOGICAL appel1er
    102103      SAVE appel1er
     104c$OMP THREADPRIVATE(appel1er)
    103105c
    104106c---------------------------------------------------------------
     
    110112      REAL a_tr_sca(4)
    111113      save a_tr_sca
     114c$OMP THREADPRIVATE(a_tr_sca)
    112115c
    113116c Variables intermediaires
  • LMDZ4/trunk/libf/phylmd/flxtr.F

    r524 r766  
    44      SUBROUTINE flxtr(pdtime,pmfu,pmfd,pen_u,pde_u,pen_d,pde_d,
    55     .                 pt,pplay,paprs,kcbot,kctop,kdtop,x,dx)
     6      USE dimphy
    67      IMPLICIT NONE
    78c=====================================================================
     
    2425c=====================================================================
    2526c
    26 #include "dimensions.h"
    27 #include "dimphy.h"
     27cym#include "dimensions.h"
     28cym#include "dimphy.h"
    2829#include "YOMCST.h"
    2930#include "YOECUMF.h"
  • LMDZ4/trunk/libf/phylmd/hbtm.F

    r674 r766  
    44     .                pblh,cape,EauLiq,ctei,pblT,
    55     .                therm,trmb1,trmb2,trmb3,plcl)
     6        USE dimphy
    67        IMPLICIT none
    78
     
    3839c
    3940c
    40 #include "dimensions.h"
    41 #include "dimphy.h"
     41cym#include "dimensions.h"
     42cym#include "dimphy.h"
    4243#include "YOMCST.h"
    4344      REAL RLvCp, REPS
     
    6061c
    6162      INTEGER isommet
    62       PARAMETER (isommet=klev) ! limite max sommet pbl
     63cum      PARAMETER (isommet=klev) ! limite max sommet pbl
    6364      REAL vk
    6465      PARAMETER (vk=0.35)     ! Von Karman => passer a .41 ! cf U.Olgstrom
     
    172173
    173174! initialisations (Anne)
     175      isommet=klev
    174176      th_th(:) = 0.
    175177      q_star = 0
     
    193195C++ r4 = 35.86             7.66           Kelvin
    194196C++  q_sat = eps*e_sat/(p-(1-eps)*e_sat)
    195 C++ derivée :
     197C++ deriv :
    196198C++ =========
    197199C++                   r3*(Tf-r4)*q_sat(T,p)
     
    474476cIM 091204 BEG
    475477        a1=b1*(1.+2.*RETV*qT_th(i))*t_star**2
    476         a2=(RETV*Th_th(i))**2*b2*q_star**2
     478        a2=(RETV*Th_th(i))**2*b2*q_star*q_star
    477479        a3=2.*RETV*Th_th(i)*b212*q_star*t_star
    478480        aa=a1+a2+a3
     
    486488cIM 091204 END
    487489        therm(i) = sqrt( b1*(1.+2.*RETV*qT_th(i))*t_star**2
    488      +             + (RETV*Th_th(i))**2*b2*q_star**2
     490     +             + (RETV*Th_th(i))**2*b2*q_star*q_star
    489491cIM 101204  +             + 2.*RETV*Th_th(i)*b212*q_star*t_star
    490492     +             + max(0.,2.*RETV*Th_th(i)*b212*q_star*t_star)
  • LMDZ4/trunk/libf/phylmd/hgardfou.F

    r524 r766  
    33!
    44      SUBROUTINE hgardfou (t,tsol,text)
     5      use dimphy
    56      IMPLICIT none
    67c======================================================================
    78c Verifier la temperature
    89c======================================================================
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     10cym#include "dimensions.h"
     11cym#include "dimphy.h"
    1112#include "YOMCST.h"
    1213#include "indicesol.h"
  • LMDZ4/trunk/libf/phylmd/histo_o500_pctau.F

    r524 r766  
    33!
    44      SUBROUTINE histo_o500_pctau(nbreg,pct_ocean,w,histo,histoW,nhisto)
     5      USE dimphy
    56      IMPLICIT none
    67
    78      INTEGER :: ij, k, l, nw
    89      INTEGER :: nreg, nbreg
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     10cym#include "dimensions.h"
     11cym#include "dimphy.h"
    1112      INTEGER, PARAMETER :: kmax=8, lmax=8
    1213      INTEGER, PARAMETER :: kmaxm1=kmax-1, lmaxm1=lmax-1
  • LMDZ4/trunk/libf/phylmd/homogene.F

    r524 r766  
    33!
    44      SUBROUTINE homogene(paprs, q, dq, u,v, du, dv)
     5      USE dimphy
    56      IMPLICIT NONE
    67c==============================================================
     
    1718c dv:   output, incrementation pour v
    1819c==============================================================
    19 #include "dimensions.h"
    20 #include "dimphy.h"
     20cym#include "dimensions.h"
     21cym#include "dimphy.h"
    2122c
    2223      REAL paprs(klon,klev+1)
  • LMDZ4/trunk/libf/phylmd/hydrol.F

    r524 r766  
    66      SUBROUTINE hydrol(dtime,pctsrf,rain_fall,snow_fall,evap,
    77     .                  agesno, tsol,qsol,snow,runoff)
     8      USE dimphy
    89      IMPLICIT none
    910c======================================================================
     
    2223c snow: couverture neigeuse
    2324C
    24 #include "dimensions.h"
    25 #include "dimphy.h"
     25cym#include "dimensions.h"
     26cym#include "dimphy.h"
    2627#include "YOMCST.h"
    2728#include "indicesol.h"
  • LMDZ4/trunk/libf/phylmd/inc_cpl.h

    r626 r766  
    2222      CHARACTER*8 cl_f_writ(jpmaxfld), cl_f_read(jpmaxfld)
    2323      COMMON / comcpl / cl_writ, cl_read, cl_f_writ, cl_f_read
     24!$OMP THREADPRIVATE(/comcpl/)
    2425#endif
    2526!     -------------------------------------------------------------------
  • LMDZ4/trunk/libf/phylmd/inc_sipc.h

    r524 r766  
    2424      INTEGER  mpoolread(jpmaxfld)
    2525      COMMON / compool / mpoolinitr, mpoolinitw, mpoolwrit, mpoolread
     26c$OMP THREADPRIVATE(/compool/)
    2627C     -------------------------------------------------------------------
  • LMDZ4/trunk/libf/phylmd/indicesol.h

    r524 r766  
    1919      CHARACTER *3 clnsurf(nbsrf)
    2020      DATA clnsurf/'ter', 'lic', 'oce', 'sic'/
     21      SAVE clnsurf
     22!$OMP THREADPRIVATE(clnsurf)
  • LMDZ4/trunk/libf/phylmd/indicesol.inc

    r524 r766  
    1111      CHARACTER (len=3),dimension(nbsrf) :: clnsurf(nbsrf)
    1212      DATA clnsurf/'ter', 'lic', 'oce', 'sic'/
     13      SAVE clnsurf
     14!$OMP THREADPRIVATE(clnsurf)
  • LMDZ4/trunk/libf/phylmd/ini_bilKP_ave.h

    r684 r766  
    1111         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    1212c
    13          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    14          DO i = 1, iim
    15             zx_lon(i,1) = rlon(i+1)
    16             zx_lon(i,jjmp1) = rlon(i+1)
    17          ENDDO
     13cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     14cym         DO i = 1, iim
     15cym            zx_lon(i,1) = rlon(i+1)
     16cym            zx_lon(i,jjmp1) = rlon(i+1)
     17cym         ENDDO
    1818         DO ll=1,klev
    1919            znivsig(ll)=float(ll)
    2020         ENDDO
    21          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    22          write(*,*)'zx_lon = ',zx_lon(:,1)
    23          write(*,*)'zx_lat = ',zx_lat(1,:)
    24          CALL histbeg("histbilKP_ave", iim,zx_lon(:,1), jjmp1,
    25      .                zx_lat(1,:),
    26      .                1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     21cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     22cym         write(*,*)'zx_lon = ',zx_lon(:,1)
     23cym         write(*,*)'zx_lat = ',zx_lat(1,:)
     24cym         CALL histbeg("histbilKP_ave", iim,zx_lon(:,1), jjmp1,
     25cym     .                zx_lat(1,:),
     26cym     .                1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     27cym     .                nhori, nid_bilKPave)
     28         CALL histbeg_phy("histbilKP_ave", itau_phy, zjulian, dtime,
    2729     .                nhori, nid_bilKPave)
     30
    2831         write(*,*)'Journee ', itau_phy, zjulian
    2932         CALL histvert(nid_bilKPave, "presnivs",
     
    3639         CALL histdef(nid_bilKPave,"ue",
    3740     .   "Zonal energy transport","-",
    38      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     41     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    3942     .                typeval, zsto,zout)
    4043c
    4144         CALL histdef(nid_bilKPave,"ve",
    4245     .   "Merid energy transport","-",
    43      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     46     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    4447     .                typeval, zsto,zout)
    4548c
    4649         CALL histdef(nid_bilKPave,"uq",
    4750     .   "Zonal humidity transport","-",
    48      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     51     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    4952     .                typeval, zsto,zout)
    5053c
    5154         CALL histdef(nid_bilKPave,"vq",
    5255     .   "Merid humidity transport","-",
    53      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     56     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    5457     .                typeval, zsto,zout)
    5558c
     
    5861         CALL histdef(nid_bilKPave,"temp",
    5962     .   "Air temperature","K",
    60      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     63     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    6164     .                typeval, zsto,zout)
    6265c
    6366         CALL histdef(nid_bilKPave,"ovap",
    6467     .   "Specific humidity","Kg/Kg",
    65      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     68     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    6669     .                typeval, zsto,zout)
    6770c
    6871         CALL histdef(nid_bilKPave,"geop",
    6972     .   "Geopotential height","m",
    70      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     73     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    7174     .                typeval, zsto,zout)
    7275c
    7376         CALL histdef(nid_bilKPave,"vitu",
    7477     .   "Zonal wind","m/s",
    75      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     78     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    7679     .                typeval, zsto,zout)
    7780c
    7881         CALL histdef(nid_bilKPave,"vitv",
    7982     .   "Meridional wind","m/s",
    80      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     83     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    8184     .                typeval, zsto,zout)
    8285c
    8386         CALL histdef(nid_bilKPave, "vitw",
    8487     .   "Vertical wind", "m/s",
    85      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     88     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    8689     .                typeval, zsto,zout)
    8790c
     
    8992     .   "Inter-Layer Air pressure",
    9093     .                "Pa",
    91      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     94     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    9295     .                typeval, zsto,zout)
    9396c
     
    9598     .   "Mean-Layer Air pressure",
    9699     .                "Pa",
    97      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     100     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    98101     .                typeval, zsto,zout)
    99102c
     
    101104     .   "Liquid water content",
    102105     .                "kg/kg",
    103      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     106     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    104107     .                typeval, zsto,zout)
    105108c
    106109         CALL histdef(nid_bilKPave, "dtdyn",
    107110     .   "Dynamics dT", "K/s",
    108      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     111     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    109112     .                typeval, zsto,zout)
    110113c
    111114         CALL histdef(nid_bilKPave, "dqdyn",
    112115     .   "Dynamics dQ", "Kg/Kg/s",
    113      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     116     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    114117     .                typeval, zsto,zout)
    115118c
    116119         CALL histdef(nid_bilKPave, "dtcon",
    117120     .   "Convection dT", "K/s",
    118      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     121     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    119122     .                typeval, zsto,zout)
    120123c
    121124         CALL histdef(nid_bilKPave, "ducon",
    122125     .   "Convection du", "m/s2",
    123      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     126     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    124127     .                typeval, zsto,zout)
    125128c
    126129         CALL histdef(nid_bilKPave, "dvcon",
    127130     .   "Convection dv", "m/s2",
    128      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     131     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    129132     .                typeval, zsto,zout)
    130133c
    131134         CALL histdef(nid_bilKPave,"dqcon",
    132135     .   "Convection dQ","Kg/Kg/s",
    133      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     136     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    134137     .                typeval, zsto,zout)
    135138c
    136139         CALL histdef(nid_bilKPave, "dtlsc",
    137140     .   "Condensation dT", "K/s",
    138      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     141     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    139142     .                typeval, zsto,zout)
    140143c
    141144         CALL histdef(nid_bilKPave,"dqlsc",
    142145     .   "Condensation dQ","Kg/Kg/s",
    143      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     146     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    144147     .                typeval, zsto,zout)
    145148c
    146149         CALL histdef(nid_bilKPave,"dtvdf",
    147150     .   "Boundary-layer dT","K/s",
    148      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     151     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    149152     .                typeval, zsto,zout)
    150153c
     
    152155     .   "Boundary-layer dQ",
    153156     .               "Kg/Kg/s",
    154      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     157     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    155158     .                typeval, zsto,zout)
    156159c
    157160         CALL histdef(nid_bilKPave,"dtajs",
    158161     .   "Ajustement sec dT","K/s",
    159      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     162     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    160163     .                typeval, zsto,zout)
    161164c
     
    163166     .   "Ajustement sec dQ",
    164167     .               "Kg/Kg/s",
    165      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     168     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    166169     .                typeval, zsto,zout)
    167170c
    168171         CALL histdef(nid_bilKPave, "dteva",
    169172     .   "Reevaporation dT", "K/s",
    170      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     173     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    171174     .                typeval, zsto,zout)
    172175c
     
    174177     .   "Reevaporation dQ",
    175178     .                "Kg/Kg/s",
    176      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     179     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    177180     .                typeval, zsto,zout)
    178181
     
    180183         CALL histdef(nid_bilKPave, "dtswr",
    181184     .   "SW radiation dT", "K/s",
    182      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     185     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    183186     .                typeval, zsto,zout)
    184187c
    185188         CALL histdef(nid_bilKPave, "dtsw0",
    186189     .   "SW radiation dT", "K/s",
    187      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     190     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    188191     .                typeval, zsto,zout)
    189192c
    190193         CALL histdef(nid_bilKPave, "dtlwr",
    191194     .   "LW radiation dT", "K/s",
    192      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     195     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    193196     .                typeval, zsto,zout)
    194197c
    195198         CALL histdef(nid_bilKPave, "dtlw0",
    196199     .   "LW radiation dT", "K/s",
    197      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     200     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    198201     .                typeval, zsto,zout)
    199202c
    200203         CALL histdef(nid_bilKPave,"duvdf",
    201204     .   "Boundary-layer dU","m/s2",
    202      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     205     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    203206     .                typeval, zsto,zout)
    204207c
    205208         CALL histdef(nid_bilKPave,"dvvdf",
    206209     .   "Boundary-layer dV","m/s2",
    207      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     210     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    208211     .                typeval, zsto,zout)
    209212c
     
    212215         CALL histdef(nid_bilKPave, "duoli",
    213216     .   "Orography dU", "m/s2",
    214      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     217     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    215218     .                typeval, zsto,zout)
    216219c
    217220         CALL histdef(nid_bilKPave, "dvoli",
    218221     .   "Orography dV", "m/s2",
    219      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     222     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    220223     .                typeval, zsto,zout)
    221224c
     
    225228         CALL histdef(nid_bilKPave, "duphy",
    226229     .   "Physiq dU","-",
    227      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     230     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    228231     .                typeval, zsto,zout)
    229232C
    230233         CALL histdef(nid_bilKPave, "dvphy",
    231234     .   "Physiq dV","-",
    232      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     235     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    233236     .                typeval, zsto,zout)
    234237C
    235238         CALL histdef(nid_bilKPave, "dtphy",
    236239     .   "Physiq dT","-",
    237      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     240     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    238241     .                typeval, zsto,zout)
    239242C
    240243         CALL histdef(nid_bilKPave, "dqphy",
    241244     .   "Physiq dQ","-",
    242      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     245     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    243246     .                typeval, zsto,zout)
    244247C
    245248         CALL histdef(nid_bilKPave, "dqlphy",
    246249     .   "Physiq dQl","-",
    247      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     250     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    248251     .                typeval, zsto,zout)
    249252C
  • LMDZ4/trunk/libf/phylmd/ini_bilKP_ins.h

    r684 r766  
    1111         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    1212c
    13          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    14          DO i = 1, iim
    15             zx_lon(i,1) = rlon(i+1)
    16             zx_lon(i,jjmp1) = rlon(i+1)
    17          ENDDO
     13cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     14cym         DO i = 1, iim
     15cym            zx_lon(i,1) = rlon(i+1)
     16cym            zx_lon(i,jjmp1) = rlon(i+1)
     17cym         ENDDO
    1818         DO ll=1,klev
    1919            znivsig(ll)=float(ll)
    2020         ENDDO
    21          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    22          write(*,*)'zx_lon = ',zx_lon(:,1)
    23          write(*,*)'zx_lat = ',zx_lat(1,:)
     21cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     22cym         write(*,*)'zx_lon = ',zx_lon(:,1)
     23cym         write(*,*)'zx_lat = ',zx_lat(1,:)
    2424c
    2525cIM 280405 BEG
     
    3030          jmin_ins=1
    3131          jmax_ins=jjmp1
    32           do i=1,iim-1
    33              if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i
    34              if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1
    35           enddo
    36           do j=1,jjmp1
    37              if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j
    38              if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j
    39           enddo
     32cym          do i=1,iim-1
     33cym             if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i
     34cym             if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1
     35cym          enddo
     36cym          do j=1,jjmp1
     37cym             if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j
     38cym             if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j
     39cym          enddo
    4040c
    4141          print*,'On stoke le fichier bilKP instantanne sur ',
     
    4848cIM 280405 END
    4949c
    50          IF(1.EQ.0) THEN
    51          CALL histbeg("histbilKP_ins", iim,zx_lon(:,1), jjmp1,
    52      .                zx_lat(1,:),
    53      .                1,iim,1,jjmp1, itau_phy, zjulian, dtime,
    54      .                nhori, nid_bilKPins)
     50cym         IF(1.EQ.0) THEN
     51cym         CALL histbeg("histbilKP_ins", iim,zx_lon(:,1), jjmp1,
     52cym     .                zx_lat(1,:),
     53cym     .                1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     54cym     .                nhori, nid_bilKPins)
    5555         ENDIF
    5656c
     
    5858c
    5959cIM cf. AM 081204 BEG region
    60          CALL histbeg("histbilKP_ins", iim,zx_lon(:,1),
    61      .                 jjmp1,zx_lat(1,:),
    62      .                 imin_ins,imax_ins-imin_ins+1,
    63      .                 jmin_ins,jmax_ins-jmin_ins+1,
    64      .                 itau_phy, zjulian, dtime,
     60cym         CALL histbeg("histbilKP_ins", iim,zx_lon(:,1),
     61cym     .                 jjmp1,zx_lat(1,:),
     62cym     .                 imin_ins,imax_ins-imin_ins+1,
     63cym     .                 jmin_ins,jmax_ins-jmin_ins+1,
     64cym     .                 itau_phy, zjulian, dtime,
     65cym     .                 nhori, nid_bilKPins)
     66         CALL histbeg_phy("histbilKP_ins", itau_phy, zjulian, dtime,
    6567     .                 nhori, nid_bilKPins)
    6668cIM 081204 END
     
    7779         CALL histdef(nid_bilKPins,"ue",
    7880     .   "Zonal energy transport","-",
    79      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     81     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    8082     .                typeval, zsto,zout)
    8183c
    8284         CALL histdef(nid_bilKPins,"ve",
    8385     .   "Merid energy transport","-",
    84      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     86     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    8587     .                typeval, zsto,zout)
    8688c
    8789         CALL histdef(nid_bilKPins,"uq",
    8890     .   "Zonal humidity transport","-",
    89      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     91     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    9092     .                typeval, zsto,zout)
    9193c
    9294         CALL histdef(nid_bilKPins,"vq",
    9395     .   "Merid humidity transport","-",
    94      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     96     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    9597     .                typeval, zsto,zout)
    9698c
     
    99101         CALL histdef(nid_bilKPins, "temp",
    100102     .   "Air temperature", "K",
    101      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     103     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    102104     .                typeval, zsto,zout)
    103105c
    104106         CALL histdef(nid_bilKPins,"ovap",
    105107     .   "Specific humidity","Kg/Kg",
    106      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     108     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    107109     .                typeval, zsto,zout)
    108110c
    109111         CALL histdef(nid_bilKPins,"geop",
    110112     .   "Geopotential height", "m",
    111      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     113     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    112114     .                typeval, zsto,zout)
    113115c
    114116         CALL histdef(nid_bilKPins,"vitu",
    115117     .   "Zonal wind", "m/s",
    116      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     118     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    117119     .                typeval, zsto,zout)
    118120c
    119121         CALL histdef(nid_bilKPins,"vitv",
    120122     .   "Meridional wind", "m/s",
    121      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     123     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    122124     .                typeval, zsto,zout)
    123125c
    124126         CALL histdef(nid_bilKPins, "vitw",
    125127     .   "Vertical wind", "m/s",
    126      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     128     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    127129     .                typeval, zsto,zout)
    128130c
     
    130132     .   "Inter-Layer Air pressure",
    131133     .                "Pa",
    132      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     134     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    133135     .                typeval, zsto,zout)
    134136c
     
    136138     .   "Mean-Layer Air pressure",
    137139     .                "Pa",
    138      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     140     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    139141     .                typeval, zsto,zout)
    140142c
     
    142144     .   "Liquid water content",
    143145     .                "kg/kg",
    144      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     146     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    145147     .                typeval, zsto,zout)
    146148c
    147149         CALL histdef(nid_bilKPins, "dtdyn",
    148150     .   "Dynamics dT", "K/s",
    149      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     151     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    150152     .                typeval, zsto,zout)
    151153c
    152154         CALL histdef(nid_bilKPins, "dqdyn",
    153155     .   "Dynamics dQ", "Kg/Kg/s",
    154      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     156     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    155157     .                typeval, zsto,zout)
    156158c
    157159         CALL histdef(nid_bilKPins, "dtcon",
    158160     .   "Convection dT", "K/s",
    159      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     161     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    160162     .                typeval, zsto,zout)
    161163c
    162164         CALL histdef(nid_bilKPins, "ducon",
    163165     .   "Convection du", "m/s2",
    164      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     166     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    165167     .                typeval, zsto,zout)
    166168c
    167169         CALL histdef(nid_bilKPins, "dvcon",
    168170     .   "Convection dv", "m/s2",
    169      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     171     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    170172     .                typeval, zsto,zout)
    171173c
    172174         CALL histdef(nid_bilKPins,"dqcon",
    173175     .   "Convection dQ","Kg/Kg/s",
    174      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     176     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    175177     .                typeval, zsto,zout)
    176178c
    177179         CALL histdef(nid_bilKPins, "dtlsc",
    178180     .   "Condensation dT", "K/s",
    179      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     181     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    180182     .                typeval, zsto,zout)
    181183c
    182184         CALL histdef(nid_bilKPins,"dqlsc",
    183185     .   "Condensation dQ","Kg/Kg/s",
    184      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     186     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    185187     .                typeval, zsto,zout)
    186188c
    187189         CALL histdef(nid_bilKPins,"dtvdf",
    188190     .   "Boundary-layer dT","K/s",
    189      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     191     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    190192     .                typeval, zsto,zout)
    191193c
     
    193195     .   "Boundary-layer dQ",
    194196     .               "Kg/Kg/s",
    195      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     197     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    196198     .                typeval, zsto,zout)
    197199c
    198200         CALL histdef(nid_bilKPins,"dtajs",
    199201     .   "Ajustement sec dT","K/s",
    200      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     202     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    201203     .                typeval, zsto,zout)
    202204c
     
    204206     .   "Ajustement sec dQ",
    205207     .               "Kg/Kg/s",
    206      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     208     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    207209     .                typeval, zsto,zout)
    208210c
    209211         CALL histdef(nid_bilKPins,"dteva",
    210212     .   "Reevaporation dT","K/s",
    211      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     213     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    212214     .                typeval, zsto,zout)
    213215c
     
    215217     .   "Reevaporation dQ",
    216218     .                "Kg/Kg/s",
    217      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     219     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    218220     .                typeval, zsto,zout)
    219221
     
    221223         CALL histdef(nid_bilKPins, "dtswr",
    222224     .   "SW radiation dT", "K/s",
    223      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     225     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    224226     .                typeval, zsto,zout)
    225227c
    226228         CALL histdef(nid_bilKPins, "dtsw0",
    227229     .   "SW radiation dT", "K/s",
    228      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     230     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    229231     .                typeval, zsto,zout)
    230232c
    231233         CALL histdef(nid_bilKPins, "dtlwr",
    232234     .   "LW radiation dT", "K/s",
    233      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     235     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    234236     .                typeval, zsto,zout)
    235237c
    236238         CALL histdef(nid_bilKPins, "dtlw0",
    237239     .   "LW radiation dT", "K/s",
    238      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     240     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    239241     .                typeval, zsto,zout)
    240242c
    241243         CALL histdef(nid_bilKPins,"duvdf",
    242244     .   "Boundary-layer dU","m/s2",
    243      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     245     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    244246     .                typeval, zsto,zout)
    245247c
    246248         CALL histdef(nid_bilKPins,"dvvdf",
    247249     .   "Boundary-layer dV","m/s2",
    248      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     250     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    249251     .                typeval, zsto,zout)
    250252c
     
    253255         CALL histdef(nid_bilKPins, "duoli",
    254256     .   "Orography dU", "m/s2",
    255      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     257     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    256258     .                typeval, zsto,zout)
    257259c
    258260         CALL histdef(nid_bilKPins, "dvoli",
    259261     .   "Orography dV", "m/s2",
    260      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     262     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    261263     .                typeval, zsto,zout)
    262264c
     
    266268         CALL histdef(nid_bilKPins, "duphy",
    267269     .   "Physiq dU","-",
    268      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     270     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    269271     .                typeval, zsto,zout)
    270272C
    271273         CALL histdef(nid_bilKPins, "dvphy",
    272274     .   "Physiq dV","-",
    273      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     275     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    274276     .                typeval, zsto,zout)
    275277C
    276278         CALL histdef(nid_bilKPins, "dtphy",
    277279     .   "Physiq dT","-",
    278      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     280     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    279281     .                typeval, zsto,zout)
    280282C
    281283         CALL histdef(nid_bilKPins, "dqphy",
    282284     .   "Physiq dQ","-",
    283      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     285     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    284286     .                typeval, zsto,zout)
    285287C
    286288         CALL histdef(nid_bilKPins, "dqlphy",
    287289     .   "Physiq dQl","-",
    288      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     290     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    289291     .                typeval, zsto,zout)
    290292cIM 280405 BEG
     
    303305          CALL histdef(nid_bilKPins, "u"//bb2,
    304306     .                 "Zonal wind "//bb2//"mb","m/s",
    305      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     307     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    306308     .                typeval, zsto,zout)
    307309c
    308310          CALL histdef(nid_bilKPins, "v"//bb2,
    309311     .                 "Meridional wind "//bb2//"mb","m/s",
    310      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     312     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    311313     .                typeval, zsto,zout)
    312314c
  • LMDZ4/trunk/libf/phylmd/ini_histISCCP.h

    r684 r766  
    44      IF (ok_isccp) THEN
    55c
     6c$OMP MASTER
    67      ndex2d = 0
    78      ndex3d = 0
     
    5354c definition coordonnees lon,lat en globale
    5455c
    55         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    56         DO i = 1, iim
    57           zx_lon(i,1) = rlon(i+1)
    58           zx_lon(i,jjmp1) = rlon(i+1)
    59         ENDDO
    60 
    61         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     56cym        CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     57cym        DO i = 1, iim
     58cym          zx_lon(i,1) = rlon(i+1)
     59cym          zx_lon(i,jjmp1) = rlon(i+1)
     60cym        ENDDO
     61
     62cym        CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    6263c
    6364cIM BEG region
     65cym Desole dans un premier temps le mode region ne marchera pas
     66cym Il faudra voir dans un second temps pour l'implementer
     67cym Mais cela posera des problemes au niveau de la reconstruction
     68
    6469          imin_ins=1
    6570          imax_ins=iim
    6671          jmin_ins=1
    6772          jmax_ins=jjmp1
    68           do i=1,iim-1
    69              if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i
    70              if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1
    71           enddo
    72           do j=1,jjmp1
    73              if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j
    74              if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j
    75           enddo
     73cym          do i=1,iim-1
     74cym             if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i
     75cym             if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1
     76cym          enddo
     77cym          do j=1,jjmp1
     78cym             if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j
     79cym             if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j
     80cym          enddo
    7681c
    7782          print*,'On stoke le fichier histISCCP instantanne sur ',
    7883     s   imin_ins,imax_ins,jmin_ins,jmax_ins
    79           print*,'On stoke le fichier histISCCP instantanne sur ',
    80      s   zx_lon(imin_ins,1),zx_lon(imax_ins,1),
    81      s   zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)
     84cym          print*,'On stoke le fichier histISCCP instantanne sur ',
     85cym     s   zx_lon(imin_ins,1),zx_lon(imax_ins,1),
     86cym     s   zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)
    8287cIM END region
    8388c
    8489        IF(1.EQ.0) THEN
    85          CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),jjmp1,zx_lat(1,:),
    86      .                 1, iim, 1, jjmp1,
    87      .                 itau_phy, zjulian, dtime,
     90cym         CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),jjmp1,zx_lat(1,:),
     91cym     .                 1, iim, 1, jjmp1,
     92cym     .                 itau_phy, zjulian, dtime,
     93cym     .                 nhori, nid_isccp)
     94         CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime,
    8895     .                 nhori, nid_isccp)
     96
    8997        ENDIF !(1.EQ.0) THEN
    9098c
    91          CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),
    92      .                 jjmp1,zx_lat(1,:),
    93      .                 imin_ins,imax_ins-imin_ins+1,
    94      .                 jmin_ins,jmax_ins-jmin_ins+1,
    95      .                 itau_phy, zjulian, dtime,
     99cym         CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),
     100cym     .                 jjmp1,zx_lat(1,:),
     101cym     .                 imin_ins,imax_ins-imin_ins+1,
     102cym     .                 jmin_ins,jmax_ins-jmin_ins+1,
     103cym     .                 itau_phy, zjulian, dtime,
     104cym     .                 nhori, nid_isccp)
     105
     106         CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime,
    96107     .                 nhori, nid_isccp)
     108
    97109c
    98110        IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN
     
    118130          CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//typinout(n),
    119131     .                "LMDZ ISCCP cld", "%",
    120      .                iim, jjmp1,nhori,lmaxm1,1,lmaxm1,nvert,32,
     132     .                iim, jjphy_nb,nhori,lmaxm1,1,lmaxm1,nvert,32,
    121133     .                "ave(X)", zcals(n),zout_isccp(n))
    122134         ENDDO
     
    124136         CALL histdef(nid_isccp, "nsunlit"//typinout(n),
    125137     .                "Nb of calls with sunlit ", "%",
    126      .                iim, jjmp1,nhori,1,1,1,-99,32,
     138     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    127139     .                "ave(X)", zcals(n),zout_isccp(n))
    128140c
     
    140152           CALL histdef(nid_isccp, pclev(l)//taulev(k)//typinout(n),
    141153     .                "LMDZ ISCCP cld "//cnameisccp(l,k), "%",
    142      .                iim, jjmp1,nhori,1,1,1,-99,32,
     154     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    143155     .                "ave(X)", zcals(n),zout_isccp(n))
    144156c
     
    149161          CALL histdef(nid_isccp, "nsunlit"//typinout(n),
    150162     .                "Nb of calls with sunlit ", "%",
    151      .                iim, jjmp1,nhori,1,1,1,-99,32,
     163     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    152164     .                "ave(X)", zcals(n),zout_isccp(n))
    153165c
     
    155167          CALL histdef(nid_isccp, "cirr",
    156168     .                "Cirrus lk ISCCP-D2", "%",
    157      .                iim, jjmp1,nhori,1,1,1,-99,32,
     169     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    158170     .                "ave(X)", zcals(n),zout_isccp(n))
    159171c
    160172          CALL histdef(nid_isccp, "cist",
    161173     .                "CiSt lk ISCCP-D2", "%",
    162      .                iim, jjmp1,nhori,1,1,1,-99,32,
     174     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    163175     .                "ave(X)", zcals(n),zout_isccp(n))
    164176c
    165177          CALL histdef(nid_isccp, "deep",
    166178     .                "Deep lk ISCCP-D2", "%",
    167      .                iim, jjmp1,nhori,1,1,1,-99,32,
     179     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    168180     .                "ave(X)", zcals(n),zout_isccp(n))
    169181c
    170182          CALL histdef(nid_isccp, "alcu",
    171183     .                "AlCu lk ISCCP-D2", "%",
    172      .                iim, jjmp1,nhori,1,1,1,-99,32,
     184     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    173185     .                "ave(X)", zcals(n),zout_isccp(n))
    174186c
    175187          CALL histdef(nid_isccp, "alst",
    176188     .                "AlSt lk ISCCP-D2", "%",
    177      .                iim, jjmp1,nhori,1,1,1,-99,32,
     189     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    178190     .                "ave(X)", zcals(n),zout_isccp(n))
    179191c
    180192          CALL histdef(nid_isccp, "nist",
    181193     .                "NiSt lk ISCCP-D2", "%",
    182      .                iim, jjmp1,nhori,1,1,1,-99,32,
     194     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    183195     .                "ave(X)", zcals(n),zout_isccp(n))
    184196c
    185197          CALL histdef(nid_isccp, "cumu",
    186198     .                "Cumu lk ISCCP-D2", "%",
    187      .                iim, jjmp1,nhori,1,1,1,-99,32,
     199     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    188200     .                "ave(X)", zcals(n),zout_isccp(n))
    189201c
    190202          CALL histdef(nid_isccp, "stcu",
    191203     .                "StCu lk ISCCP-D2", "%",
    192      .                iim, jjmp1,nhori,1,1,1,-99,32,
     204     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    193205     .                "ave(X)", zcals(n),zout_isccp(n))
    194206c
    195207          CALL histdef(nid_isccp, "stra",
    196208     .                "Stra lk ISCCP-D2", "%",
    197      .                iim, jjmp1,nhori,1,1,1,-99,32,
     209     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    198210     .                "ave(X)", zcals(n),zout_isccp(n))
    199211c
     
    201213          CALL histdef(nid_isccp, "thin",
    202214     .                "Opt. thin ISCCP-D2 like clouds", "%",
    203      .                iim, jjmp1,nhori,lmax3,1,lmax3,nvert3,32,
     215     .                iim, jjphy_nb,nhori,lmax3,1,lmax3,nvert3,32,
    204216     .                "ave(X)", zcals(n),zout_isccp(n))
    205217c
    206218          CALL histdef(nid_isccp, "mid",
    207219     .                "Opt. intermediate ISCCP-D2 like clouds", "%",
    208      .                iim, jjmp1,nhori,lmax3,1,lmax3,nvert3,32,
     220     .                iim, jjphy_nb,nhori,lmax3,1,lmax3,nvert3,32,
    209221     .                "ave(X)", zcals(n),zout_isccp(n))
    210222c
    211223          CALL histdef(nid_isccp, "thick",
    212224     .                "Opt. thick ISCCP-D2 like clouds", "%",
    213      .                iim, jjmp1,nhori,lmax3,1,lmax3,nvert3,32,
     225     .                iim, jjphy_nb,nhori,lmax3,1,lmax3,nvert3,32,
    214226     .                "ave(X)", zcals(n),zout_isccp(n))
    215227c
     
    224236          CALL histdef(nid_isccp,"boxptop"//verticaxe(n),
    225237     .                "Boxptop axe"//verticaxe(n), "mb",
    226      .                iim, jjmp1,nhori,
     238     .                iim, jjphy_nb,nhori,
    227239     .                ncol(n),1,ncol(n),nvlev(n),32,
    228240cIM  .                ncolmx,1,ncolmx,nvlev,32,
     
    237249          CALL histdef(nid_isccp, "seed"//verticaxe(n),
    238250     .                "seed axe"//verticaxe(n), "-",
    239      .                iim, jjmp1,nhori,1,1,1,-99,32,
     251     .                iim, jjphy_nb,nhori,1,1,1,-99,32,
    240252cIM  .                "inst(X)", dtime,dtime)
    241253     .                "ave(X)", zcals(n),zout_isccp(n))
     
    245257        CALL histend(nid_isccp)
    246258c
     259c$OMP END MASTER
    247260      ENDIF ! ok_isccp
  • LMDZ4/trunk/libf/phylmd/ini_histREGDYN.h

    r644 r766  
    44
    55      IF (ok_regdyn) THEN
     6     
     7        if (monocpu) then
    68c
    79cIM      PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_mth
     
    120122c
    121123         CALL histend(nid_regdyn)
     124         
     125         endif ! monocpu
    122126
    123127      endif ! ok_regdyn
  • LMDZ4/trunk/libf/phylmd/ini_histday.h

    r684 r766  
    33c
    44      IF (ok_journe) THEN
     5
     6c$OMP MASTER
    57c
    68       zstophy = dtime
     
    1113         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    1214c
    13          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    14          DO i = 1, iim
    15             zx_lon(i,1) = rlon(i+1)
    16             zx_lon(i,jjmp1) = rlon(i+1)
    17          ENDDO
     15cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     16cym         DO i = 1, iim
     17cym            zx_lon(i,1) = rlon(i+1)
     18cym            zx_lon(i,jjmp1) = rlon(i+1)
     19cym         ENDDO
    1820         DO ll=1,klev
    1921            znivsig(ll)=float(ll)
    2022         ENDDO
    21          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    22          CALL histbeg("histday", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    23      .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
    24      .                 nhori, nid_day)
     23cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     24cym         CALL histbeg("histday", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     25cym     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     26cym     .                 nhori, nid_day)
     27
     28         CALL histbeg_phy("histday",itau_phy, zjulian, dtime,
     29     .                    nhori, nid_day)
     30
     31         write(*,*)'Journee ', itau_phy, zjulian
    2532         CALL histvert(nid_day, "presnivs", "Vertical levels", "mb",
    2633     .                 klev, presnivs/100., nvert)
     
    2936c
    3037         CALL histdef(nid_day, "phis", "Surface geop. height", "m2/s2",
    31      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     38     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    3239     .                "once", zstophy,zout)
    3340c
    3441         CALL histdef(nid_day, "aire", "Grid area", "-",
    35      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     42     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    3643     .                "once", zstophy,zout)
    3744c
    3845         CALL histdef(nid_day, "contfracATM","% sfce ter+lic ","-",
    39      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     46     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4047     .                "once", zstophy,zout)
    4148c
    4249         CALL histdef(nid_day, "contfracOR","% sfce terre OR", "-",
    43      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     50     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4451     .                "once", zstophy,zout)
    4552c
     
    4754c
    4855         CALL histdef(nid_day, "tsol", "Surface Temperature", "K",
    49      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     56     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    5057     .                "ave(X)", zstophy,zout)
    5158c
    5259         CALL histdef(nid_day, "t2m", "Temperature 2m", "K",
    53      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
    54      .                "ave(X)", zstophy,zout)
    55 c
    56 c Champs retires momentannéement en attendant un hypothetique
     60     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     61     .                "ave(X)", zstophy,zout)
     62c
     63c Champs retires momentannement en attendant un hypothetique
    5764c debugage
    5865
    5966         CALL histdef(nid_day, "t2m_min", "Temp. 2m min.",
    6067     .                "K",
    61      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     68     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6269     .                t2mincels, zstophy,zout)
    6370c
    6471         CALL histdef(nid_day, "t2m_max", "Temp. 2m max.",
    6572     .                "K",
    66      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     73     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6774     .                t2maxcels, zstophy,zout)
    6875c
    6976         CALL histdef(nid_day, "plul", "Large-scale Precip.",
    7077     .   "kg/(s*m2)",
    71      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     78     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7279     .                "ave(X)", zstophy,zout)
    7380c
    7481         CALL histdef(nid_day, "pluc", "Convective Precip.",
    7582     .   "kg/(s*m2)",
    76      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     83     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7784     .                "ave(X)", zstophy,zout)
    7885c
    7986         CALL histdef(nid_day, "snowl", "Solid Large-scale Precip.",
    8087     .   "kg/(m2*s)",
    81      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     88     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8289     .                "ave(X)", zstophy,zout)
    8390c
     
    8592         CALL histdef(nid_day, "snowc", "Solid Convective Precip.",
    8693     .   "kg/(m2*s)",
    87      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     94     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8895     .                "ave(X)", zstophy,zout)
    8996         ENDIF !snowc=0.
    9097c
    9198         CALL histdef(nid_day, "flat", "Latent heat flux", "W/m2",
    92      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     99     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    93100     .                "ave(X)", zstophy,zout)
    94101c
    95102         CALL histdef(nid_day, "sicf", "Sea-ice fraction", "-",
    96      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     103     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    97104     .                "inst(X)", zstoday,zout)
    98105c
    99106         CALL histdef(nid_day, "q2m", "Specific humidity", "kg/kg",
    100      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     107     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    101108     .                "ave(X)", zstophy,zout)
    102109c
    103110         CALL histdef(nid_day, "u10m", "Vent zonal 10m", "m/s",
    104      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     111     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    105112     .                "ave(X)", zstophy,zout)
    106113c
    107114         CALL histdef(nid_day, "v10m", "Vent meridien 10m", "m/s",
    108      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     115     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    109116     .                "ave(X)", zstophy,zout)
    110117c
    111118         CALL histdef(nid_day, "wind10m","10-m wind speed","m/s",
    112      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     119     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    113120     .                "ave(X)", zstophy,zout)
    114121c
    115122         CALL histdef(nid_day, "wind10max", "10-m wind speed max.",
    116123     .                "m/s",
    117      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     124     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    118125     .                t2maxcels, zstophy,zout)
    119126c
    120127         CALL histdef(nid_day, "psol", "Surface Pressure", "Pa",
    121      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     128     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    122129     .                "ave(X)", zstophy,zout)
    123130c
    124131         CALL histdef(nid_day, "precip","Precipitation Totale liq+sol"
    125132     .                , "kg/(s*m2)",
    126      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     133     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    127134     .                "ave(X)", zstophy,zout)
    128135c
    129136         CALL histdef(nid_day, "snowf", "Snow fall", "kg/(m2*s)",
    130      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     137     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    131138     .                "ave(X)", zstophy,zout)
    132139c
    133140c        CALL histdef(nid_day, "snow_mass", "Snow Mass", "kg/m2",
    134 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     141c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    135142c    .                "ave(X)", zstophy,zout)
    136143c
    137144         CALL histdef(nid_day, "evap", "Evaporation", "kg/(m2*s)",
    138      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     145     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    139146     .                "ave(X)", zstophy,zout)
    140147c
    141148         CALL histdef(nid_day, "tops", "Solar rad. at TOA", "W/m2",
    142      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     149     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    143150     .                "ave(X)", zstophy,zout)
    144151c
    145152         CALL histdef(nid_day, "topl", "IR rad. at TOA", "W/m2",
    146      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     153     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    147154     .                "ave(X)", zstophy,zout)
    148155c
    149156         CALL histdef(nid_day, "sols", "Net Solar rad. at surf.",
    150157     .                "W/m2",
    151      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     158     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    152159     .                "ave(X)", zstophy,zout)
    153160c
    154161         CALL histdef(nid_day, "soll", "Net IR rad. at surface", "W/m2",
    155      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     162     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    156163     .                "ave(X)", zstophy,zout)
    157164c
    158165         CALL histdef(nid_day, "radsol", "Rayonnement au sol", "W/m2",
    159      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     166     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    160167     .                "ave(X)", zstophy,zout)
    161168c
    162169         CALL histdef(nid_day, "cldl", "Low-level cloudiness", "-",
    163      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     170     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    164171     .                "ave(X)", zstophy,zout)
    165172c
    166173         CALL histdef(nid_day, "cldm", "Mid-level cloudiness", "-",
    167      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     174     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    168175     .                "ave(X)", zstophy,zout)
    169176c
    170177         CALL histdef(nid_day, "cldh", "High-level cloudiness", "-",
    171      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     178     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    172179     .                "ave(X)", zstophy,zout)
    173180c
    174181         CALL histdef(nid_day, "cldt", "Total cloudiness", "-",
    175      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     182     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    176183     .                "ave(X)", zstophy,zout)
    177184c
    178185         CALL histdef(nid_day, "cldq", "Cloud liquid water path",
    179186     .                "kg/m2",
    180      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     187     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    181188     .                "ave(X)", zstophy,zout)
    182189c
    183190         CALL histdef(nid_day, "prw", "Precipitable water", "kg/m2",
    184      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     191     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    185192     .                "ave(X)", zstophy,zout)
    186193c
     
    203210          CALL histdef(nid_day, "u"//bb2,
    204211     .                 "Zonal wind "//bb2//"mb","m/s",
    205      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     212     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    206213     .                "inst(X)", zout,zout)
    207214c
    208215          CALL histdef(nid_day, "v"//bb2,
    209216     .                 "Meridional wind "//bb2//"mb","m/s",
    210      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     217     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    211218     .                "inst(X)", zout,zout)
    212219c
     
    217224         CALL histdef(nid_day, "w"//bb2, "Vertical wind "//bb2//"mb",
    218225     .                "m/s",
    219      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     226     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    220227     .                "inst(X)", zout,zout)
    221228c
    222229         CALL histdef(nid_day,"phi"//bb2, "Geopotential "//bb2//"mb",
    223230     .                "m",
    224      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     231     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    225232     .                "inst(X)", zout,zout)
    226233c
     
    230237c
    231238         CALL histdef(nid_day, "slp", "Sea Level Pressure", "Pa",
    232      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     239     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    233240     .                "ave(X)", zstophy,zout)
    234241c
    235242         CALL histdef(nid_day, "cape_max", "CAPE max.",
    236243     .                "J/kg",
    237      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     244     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    238245     .                capemaxcels, zstophy,zout)
    239246c
    240247         CALL histdef(nid_day, "solldown", "Down. IR rad. at surface",
    241      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     248     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    242249     .                "ave(X)", zstophy,zout)
    243250c
    244251         CALL histdef(nid_day, "sens", "Sensible heat flux", "W/m2",
    245      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     252     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    246253     .                "ave(X)", zstophy,zout)
    247254c
    248255         CALL histdef(nid_day, "SWdnSFC", "SWdn at surface","W/m2",
    249      .                iim,jjmp1,nhori, 1,1,1,-99,
     256     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    250257     .                32, "ave(X)", zstophy,zout)
    251258c
     
    257264          CALL histdef(nid_day, "lmt_bils",
    258265     .         "Bilan au sol atmosphere forcee", "W/m2",
    259      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     266     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    260267     .                "ave(X)", zstophy,zout)
    261268c
     
    264271          CALL histdef(nid_day, "slab_bils",
    265272     .                "Bilan au sol slab", "W/m2",
    266      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     273     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    267274     .                "ave(X)", zstophy,zout)
    268275c
    269276          CALL histdef(nid_day, "tslab", "Slab SST ", "K",
    270      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     277     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    271278     .                "ave(X)", zstophy,zout)
    272279c
    273280          CALL histdef(nid_day, "seaice", "Slab seaice", "kg/m2",
    274      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     281     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    275282     .                "ave(X)", zstophy,zout)
    276283c
    277284          CALL histdef(nid_day, "siceh", "Slab seaice height", "m",
    278      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     285     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    279286     .                "ave(X)", zstophy,zout)
    280287c
     
    283290         CALL histdef(nid_day, "fluxo",
    284291     .                "Flux turbulents ocean-atmosphere", "W/m2",
    285      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     292     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    286293     .                "ave(X)", zstophy,zout)
    287294c
    288295         CALL histdef(nid_day, "fluxg",
    289296     .                "Flux ocean-glace de mer", "W/m2",
    290      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     297     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    291298     .                "ave(X)", zstophy,zout)
    292299c
     
    296303c
    297304         CALL histdef(nid_day, "bils", "Surf. total heat flux", "W/m2",
    298      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     305     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    299306     .                "ave(X)", zstophy,zout)
    300307c
    301308         CALL histdef(nid_day, "fder", "Heat flux derivation", "W/m2/K",
    302      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     309     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    303310     .                "ave(X)", zstophy,zout)
    304311c
     
    314321c
    315322         CALL histdef(nid_day, "temp", "Air temperature", "K",
    316      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     323     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    317324     .                "ave(X)", zstophy,zout)
    318325c
    319326         CALL histdef(nid_day, "ovap", "Specific humidity", "kg/kg",
    320      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     327     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    321328     .                "ave(X)", zstophy,zout)
    322329c
    323330         CALL histdef(nid_day, "geop", "Geopotential height", "m2/s2",
    324      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     331     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    325332     .                "ave(X)", zstophy,zout)
    326333c
    327334         CALL histdef(nid_day, "vitu", "Zonal wind", "m/s",
    328      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     335     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    329336     .                "ave(X)", zstophy,zout)
    330337c
    331338         CALL histdef(nid_day, "vitv", "Meridional wind", "m/s",
    332      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     339     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    333340     .                "ave(X)", zstophy,zout)
    334341c
    335342         CALL histdef(nid_day, "vitw", "Vertical wind", "m/s",
    336      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     343     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    337344     .                "ave(X)", zstophy,zout)
    338345c
    339346         CALL histdef(nid_day, "pres", "Air pressure", "Pa",
    340      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     347     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    341348     .                "ave(X)", zstophy,zout)
    342349c
     
    354361c
    355362         CALL histdef(nid_day, "SWupTOA", "SWup at TOA","W/m2",
    356      .                iim,jjmp1,nhori, 1,1,1,-99,
     363     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    357364     .                32, "ave(X)", zstophy,zout)
    358365c
    359366         CALL histdef(nid_day, "SWupSFC", "SWup at surface","W/m2",
    360      .                iim,jjmp1,nhori, 1,1,1,-99,
     367     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    361368     .                32, "ave(X)", zstophy,zout)
    362369c
    363370         CALL histdef(nid_day, "SWdnTOA", "SWdn at TOA","W/m2",
    364      .                iim,jjmp1,nhori, 1,1,1,-99,
     371     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    365372     .                32, "ave(X)", zstophy,zout)
    366373c
    367374         CALL histdef(nid_day, "SWupTOAclr",
    368375     .                "SWup clear sky at TOA","W/m2",
    369      .                iim,jjmp1,nhori, 1,1,1,-99,
     376     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    370377     .                32, "ave(X)", zstophy,zout)
    371378
    372379         CALL histdef(nid_day, "SWupSFCclr",
    373380     .                "SWup clear sky at surface","W/m2",
    374      .                iim,jjmp1,nhori, 1,1,1,-99,
     381     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    375382     .                32, "ave(X)", zstophy,zout)
    376383
    377384         CALL histdef(nid_day, "SWdnTOAclr",
    378385     .                "SWdn clear sky at TOA","W/m2",
    379      .                iim,jjmp1,nhori, 1,1,1,-99,
     386     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    380387     .                32, "ave(X)", zstophy,zout)
    381388
    382389         CALL histdef(nid_day, "SWdnSFCclr",
    383390     .                "SWdn clear sky at surface","W/m2",
    384      .                iim,jjmp1,nhori, 1,1,1,-99,
     391     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    385392     .                32, "ave(X)", zstophy,zout)
    386393c
     
    388395         CALL histdef(nid_day, "LWdnSFC",
    389396     .                "LW down at surface","W/m2",
    390      .                iim,jjmp1,nhori, 1,1,1,-99,
     397     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    391398     .                32, "ave(X)", zstophy,zout)
    392399c
    393400         CALL histdef(nid_day, "LWupSFC",
    394401     .                "LW down at surface","W/m2",
    395      .                iim,jjmp1,nhori, 1,1,1,-99,
     402     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    396403     .                32, "ave(X)", zstophy,zout)
    397404c
     
    400407c    .                "Cld top pressure","mb",
    401408     .                "Cld top pressure (cf ISCCP simulator)","Pa",
    402      .                iim,jjmp1,nhori, 1,1,1,-99,
     409     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    403410     .                32, "ave(X)", zstophy,zout)
    404411cIM     ENDIF !(iflag_con.GE.3) THEN
     
    411418c
    412419         CALL histdef(nid_day, "tter", "Surface Temperature ter", "K",
    413      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     420     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    414421     .                "ave(X)", zstophy,zout)
    415422c
    416423         CALL histdef(nid_day, "tlic", "Surface Temperature lic", "K",
    417      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     424     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    418425     .                "ave(X)", zstophy,zout)
    419426c
    420427         CALL histdef(nid_day, "toce", "Surface Temperature oce", "K",
    421      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     428     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    422429     .                "ave(X)", zstophy,zout)
    423430c
    424431         CALL histdef(nid_day, "tsic", "Surface Temperature sic", "K",
    425      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     432     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    426433     .                "ave(X)", zstophy,zout)
    427434c
    428435         CALL histdef(nid_day, "t2mter", "Temp.tere 2m", "K",
    429      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     436     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    430437     .                "ave(X)", zstophy,zout)
    431438c
    432439         CALL histdef(nid_day, "t2mlic", "Temp.lic 2m", "K",
    433      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     440     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    434441     .                "ave(X)", zstophy,zout)
    435442c
    436443         CALL histdef(nid_day, "t2moce", "Temp.oce 2m", "K",
    437      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     444     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    438445     .                "ave(X)", zstophy,zout)
    439446c
    440447         CALL histdef(nid_day, "t2msic", "Temp.sic 2m", "K",
    441      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     448     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    442449     .                "ave(X)", zstophy,zout)
    443450c
    444451         CALL histdef(nid_day, "t2mter_min", "Temp.terre 2m min.",
    445452     .                "K",
    446      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     453     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    447454     .                t2mincels, zstophy,zout)
    448455c
    449456         CALL histdef(nid_day, "t2mter_max", "Temp.terre 2m max.",
    450457     .                "K",
    451      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     458     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    452459     .                t2maxcels, zstophy,zout)
    453460c
    454461         CALL histdef(nid_day, "u10mter", "Vent zonal ter 10m", "m/s",
    455      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     462     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    456463     .                "ave(X)", zstophy,zout)
    457464c
    458465         CALL histdef(nid_day, "u10mlic", "Vent zonal lic 10m", "m/s",
    459      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     466     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    460467     .                "ave(X)", zstophy,zout)
    461468c
    462469         CALL histdef(nid_day, "u10moce", "Vent zonal oce 10m", "m/s",
    463      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     470     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    464471     .                "ave(X)", zstophy,zout)
    465472c
    466473         CALL histdef(nid_day, "u10msic", "Vent zonal sic 10m",
    467      .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
     474     .                 "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    468475     .                "ave(X)", zstophy,zout)
    469476c
    470477         CALL histdef(nid_day, "v10mter", "Vent meridien ter 10m",
    471      .                "m/s", iim,jjmp1,nhori, 1,1,1, -99, 32,
     478     .                "m/s", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    472479     .                "ave(X)", zstophy,zout)
    473480c
    474481         CALL histdef(nid_day, "v10mlic", "Vent meridien lic 10m",
    475      .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
     482     .                 "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    476483     .                "ave(X)", zstophy,zout)
    477484c
    478485         CALL histdef(nid_day, "v10moce", "Vent meridien oce 10m",
    479      .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
     486     .                 "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    480487     .                "ave(X)", zstophy,zout)
    481488c
    482489         CALL histdef(nid_day, "v10msic", "Vent meridien sic 10m",
    483      .                 "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
     490     .                 "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    484491     .                "ave(X)", zstophy,zout)
    485492c
     
    488495           call histdef(nid_day, "pourc_"//clnsurf(nsrf),
    489496     $         "% "//clnsurf(nsrf), "%", 
    490      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     497     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    491498     $         "ave(X)", zstophy,zout)
    492499C
    493500           call histdef(nid_day, "fract_"//clnsurf(nsrf),
    494501     $         "Fraction "//clnsurf(nsrf), "1", 
    495      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     502     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    496503     $         "ave(X)", zstophy,zout)
    497504C
    498505           call histdef(nid_day, "tsol_"//clnsurf(nsrf),
    499506     $         "Temperature "//clnsurf(nsrf), "K", 
    500      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     507     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    501508     $         "ave(X)", zstophy,zout)
    502509C
    503510           call histdef(nid_day, "sens_"//clnsurf(nsrf),
    504511     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
    505      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     512     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    506513     $         "ave(X)", zstophy,zout)
    507514c
    508515           call histdef(nid_day, "lat_"//clnsurf(nsrf),
    509516     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    510      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     517     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    511518     $         "ave(X)", zstophy,zout)
    512519C
    513520           call histdef(nid_day, "taux_"//clnsurf(nsrf),
    514521     $         "Zonal wind stress "//clnsurf(nsrf),"Pa",
    515      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     522     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    516523     $         "ave(X)", zstophy,zout)
    517524
    518525           call histdef(nid_day, "tauy_"//clnsurf(nsrf),
    519526     $         "Meridional wind stress "//clnsurf(nsrf), "Pa", 
    520      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     527     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    521528     $         "ave(X)", zstophy,zout)
    522529C
    523530           call histdef(nid_day, "albe_"//clnsurf(nsrf),
    524531     $         "Albedo surf. "//clnsurf(nsrf), "-", 
    525      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     532     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    526533     $         "ave(X)", zstophy,zout)
    527534C
    528535           call histdef(nid_day, "rugs_"//clnsurf(nsrf),
    529536     $         "Rugosite "//clnsurf(nsrf), "m", 
    530      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     537     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    531538     $         "ave(X)", zstophy,zout)
    532539C
     
    545552         CALL histdef(nid_day, "tops0", "CS Solar rad. at TOA",
    546553     .                "W/m2",
    547      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     554     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    548555     .                "ave(X)", zstophy,zout)
    549556c
    550557         CALL histdef(nid_day, "topl0", "CS IR rad. at TOA",
    551558     .                "W/m2",
    552      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     559     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    553560     .                "ave(X)", zstophy,zout)
    554561c
    555562         CALL histdef(nid_day, "sols0", "CS Net Solar rad. at surf.",
    556563     .                "W/m2",
    557      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     564     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    558565     .                "ave(X)", zstophy,zout)
    559566c
    560567         CALL histdef(nid_day, "soll0", "CS Net IR rad. at surface",
    561568     .                "W/m2",
    562      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     569     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    563570     .                "ave(X)", zstophy,zout)
    564571c
    565572         CALL histdef(nid_day, "rneb", "Cloud fraction", "-",
    566      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     573     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    567574     .                "ave(X)", zstophy,zout)
    568575c
    569576         CALL histdef(nid_day, "rnebcon", "Convective Cloud Fraction"
    570577     .                , "-",
    571      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     578     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    572579     .                "ave(X)", zstophy,zout)
    573580c
    574581         CALL histdef(nid_day,"lwcon","Cloud liquid water content",
    575582     .                "kg/kg",
    576      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     583     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    577584     .                "ave(X)", zstophy,zout)
    578585c
    579586        CALL histdef(nid_day,"iwcon","Cloud ice water content","kg/kg",
    580      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     587     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    581588     .                "ave(X)", zstophy,zout)
    582589c
    583590         CALL histdef(nid_day,"lwp","Cloud water path","kg/m2",
    584      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     591     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    585592     .                "ave(X)", zstophy,zout)
    586593c
    587594         CALL histdef(nid_day,"iwp","Cloud ice water path","kg/m2",
    588      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     595     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    589596     .                "ave(X)", zstophy,zout)
    590597c
    591598        CALL histdef(nid_day,"meantaucld",
    592599     .                "ISCCP mean cloud optical thickness","1",
    593      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     600     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    594601     .                "ave(X)", zstophy,zout)
    595602c
    596603        CALL histdef(nid_day,"cldtau","Cloud optical thickness","1",
    597      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     604     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    598605     .                "ave(X)", zstophy,zout)
    599606c
    600607        CALL histdef(nid_day,"cldemi","Cloud optical emissivity","1",
    601      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     608     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    602609     .                "ave(X)", zstophy,zout)
    603610c
     
    605612c
    606613         CALL histdef(nid_day, "dtcon", "Convection dT", "K/s",
    607      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     614     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    608615     .                "ave(X)", zstophy,zout)
    609616c
    610617         CALL histdef(nid_day, "dqcon", "Convection dQ", "(kg/kg)/s",
    611      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     618     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    612619     .                "ave(X)", zstophy,zout)
    613620c
    614621         CALL histdef(nid_day, "rh2m", "Relative humidity at 2m", "%",
    615      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     622     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    616623     .                "ave(X)", zstophy,zout)
    617624c
    618625         CALL histdef(nid_day, "qsat2m", "Saturant humidity at 2m", "%",
    619      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     626     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    620627     .                "ave(X)", zstophy,zout)
    621628c
    622629         CALL histdef(nid_day, "tpot",
    623630     .                "Surface air potential temperature", "K",
    624      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     631     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    625632     .                "ave(X)", zstophy,zout)
    626633c
    627634         CALL histdef(nid_day, "tpote",
    628635     .        "Surface air equivalent potential temperature", "K",
    629      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     636     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    630637     .                "ave(X)", zstophy,zout)
    631638c
     
    639646c
    640647c=================================================================
     648c$OMP END MASTER
    641649      ENDIF ! fin de test sur ok_journe
  • LMDZ4/trunk/libf/phylmd/ini_histday_seri.h

    r684 r766  
    22c $Header$
    33c
     4cym Ne fonctionnera pas en mode parallele
     5      IF (monocpu) THEN
     6     
    47      IF (type_run.EQ."AMIP") THEN
    58c
     
    125128c=================================================================
    126129      ENDIF ! fin de test sur type_run.EQ.AMIP
     130     
     131      ENDIF ! monocpu
  • LMDZ4/trunk/libf/phylmd/ini_histhf.h

    r684 r766  
    44
    55      IF (ok_hf) THEN
     6c$OMP MASTER
    67c
    78       zstohf = ecrit_hf
     
    1415
    1516c
    16          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    17          DO i = 1, iim
    18             zx_lon(i,1) = rlon(i+1)
    19             zx_lon(i,jjmp1) = rlon(i+1)
    20          ENDDO
    21 
    22          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    23          CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    24      .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     17cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     18cym         DO i = 1, iim
     19cym            zx_lon(i,1) = rlon(i+1)
     20cym            zx_lon(i,jjmp1) = rlon(i+1)
     21cym         ENDDO
     22
     23cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     24
     25cccIM      CALL histbeg("histhf", iim,zx_lon, jjmp1,zx_lat,
     26cym         CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     27cym     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     28cym     .                 nhori, nid_hf)
     29
     30         CALL histbeg_phy("histhf", itau_phy, zjulian, dtime,
    2531     .                 nhori, nid_hf)
    2632
     
    3440c
    3541         CALL histdef(nid_hf, "aireTER","Grid area CONT","-",
    36      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     42     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    3743     .                "once", zstohf,zout)
    3844c
    3945         CALL histdef(nid_hf, "contfracATM","% sfce ter+lic ","-",
    40      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     46     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4147     .                "once", zstohf,zout)
    4248c
    4349         CALL histdef(nid_hf, "contfracOR","% sfce terre OR", "-",
    44      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     50     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4551     .                "once", zstohf,zout)
    4652c
     
    4854c
    4955         CALL histdef(nid_hf, "t2m", "Temperature 2m", "K",
    50      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     56     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    5157     .                "inst(X)", zstohf,zout)
    5258c
    5359         CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg",
    54      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     60     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    5561     .                "inst(X)", zstohf,zout)
    5662c
    5763         CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa",
    58      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     64     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    5965     .                "inst(X)", zstohf,zout)
    6066c
    6167         CALL histdef(nid_hf, "precip", "Precipitation", "kg/(s*m2)",
    62      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     68     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6369     .                "ave(X)", zstophy,zout)
    6470c
    6571cIM ENSEMBLES BEG
    6672         CALL histdef(nid_hf, "tsol", "Surface Temperature", "K",
    67      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     73     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6874     .                "inst(X)", zstohf,zout)
    6975c
    7076         CALL histdef(nid_hf, "slp", "Sea Level Pressure", "Pa",
    71      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     77     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7278     .                "inst(X)", zstohf,zout)
    7379c
    7480         CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s",
    75      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     81     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7682     .                "inst(X)", zstohf,zout)
    7783c
    7884         CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s",
    79      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     85     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8086     .                "inst(X)", zstohf,zout)
    8187c
    8288         CALL histdef(nid_hf, "wind10m","10-m wind speed","m/s",
    83      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     89     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8490     .                "inst(X)", zstohf,zout)
    8591c
     
    99105          CALL histdef(nid_hf, "phi"//bb2,
    100106     .                "Geopotential "//bb2//"mb", "m",
    101      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     107     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    102108     .                "inst(X)", zstohf,zout)
    103109          ENDIF !bb2.EQ."500"
     
    109115c
    110116         CALL histdef(nid_hf, "cldt", "Total cloudiness", "%",
    111      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     117     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    112118     .                "ave(X)", zstophy,zout)
    113119c
    114120         CALL histdef(nid_hf, "SWnetOR",
    115121     .                "Sfce net SW radiation OR", "W/m2",
    116      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     122     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    117123     .                "ave(X)", zstophy,zout)
    118124c
    119125         CALL histdef(nid_hf, "SWdownOR",
    120126     .                "Sfce incident SW radiation OR", "W/m2",
    121      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     127     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    122128     .                "ave(X)", zstophy,zout)
    123129c
    124130         CALL histdef(nid_hf, "LWdownOR",
    125131     .                "Sfce incident LW radiation OR", "W/m2",
    126      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     132     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    127133     .                "ave(X)", zstophy,zout)
    128134      ENDIF !lev_histhf.GE.2
     
    148154          CALL histdef(nid_hf, "t"//bb2,
    149155     .                 "Temperature "//bb2//"mb","K",
    150      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     156     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    151157     .                "inst(X)", zstohf,zout)
    152158c
     
    154160          CALL histdef(nid_hf, "phi"//bb2,
    155161     .                "Geopotential "//bb2//"mb", "m",
    156      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     162     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    157163     .                "inst(X)", zstohf,zout)
    158164          ENDIF
     
    160166          CALL histdef(nid_hf, "q"//bb2,
    161167     .                 "Specific humidity "//bb2//"mb","kg/kg",
    162      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     168     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    163169     .                "inst(X)", zstohf,zout)
    164170c
    165171          CALL histdef(nid_hf, "u"//bb2,
    166172     .                 "Zonal wind "//bb2//"mb","m/s",
    167      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     173     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    168174     .                "inst(X)", zstohf,zout)
    169175c
    170176          CALL histdef(nid_hf, "v"//bb2,
    171177     .                 "Meridional wind "//bb2//"mb","m/s",
    172      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     178     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    173179     .                "inst(X)", zstohf,zout)
    174180c
     
    210216          CALL histdef(nid_hf, "u"//bb2,
    211217     .                 "Zonal wind "//bb2//"mb","m/s",
    212      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     218     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    213219     .         "inst(X)", zstohf,zstohf)
    214220c
    215221          CALL histdef(nid_hf, "v"//bb2,
    216222     .                 "Meridional wind "//bb2//"mb","m/s",
    217      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     223     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    218224     .         "inst(X)", zstohf,zstohf)
    219225c
     
    223229        CALL histdef(nid_hf, "topl",
    224230     .       "Outgoing longwave radiation", "W/m2",
    225      .       iim,jjmp1,nhori, 1,1,1, -99, 32,
     231     .       iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    226232     .       "ave(X)", zstophy,zout)
    227233c
    228234        CALL histdef(nid_hf, "precip","Total precipitation rate",
    229      .       "kg/(s*m2)",iim,jjmp1,nhori, 1,1,1, -99, 32,
     235     .       "kg/(s*m2)",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    230236     .       "ave(X)", zstophy,zout)
    231237c
    232238        CALL histdef(nid_hf, "slp",
    233239     .       "Mean sea-level pressure", "Pa",
    234      .       iim,jjmp1,nhori, 1,1,1, -99, 32,
     240     .       iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    235241     .       "inst(X)", zstohf,zout)
    236242c
     
    255261          CALL histdef(nid_hf, "t"//bb2,
    256262     .                 "Temperature "//bb2//"mb","K",
    257      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     263     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    258264     .                "inst(X)", zstohf,zstohf)
    259265c
    260266          CALL histdef(nid_hf, "q"//bb2,
    261267     .                 "Specific humidity "//bb2//"mb","kg/kg",
    262      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     268     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    263269     .                "inst(X)", zstohf,zstohf)
    264270c
     
    269275          CALL histdef(nid_hf, "phi"//bb2,
    270276     .                "Geopotential "//bb2//"mb", "m",
    271      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     277     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    272278     .                "inst(X)", zstohf,zstohf)
    273279c
    274280          CALL histdef(nid_hf, "w"//bb2,
    275281     .                 "Vertical motion "//bb2//"mb","Pa/s",
    276      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     282     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    277283     .                "inst(X)", zstohf,zstohf)
    278284         ENDIF !bb2.EQ."500"
     
    282288          CALL histdef(nid_hf, "t"//bb3,
    283289     .                 "Temperature "//bb3//"mb","K",
    284      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     290     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    285291     .                "inst(X)", zstohf,zstohf)
    286292c
    287293          CALL histdef(nid_hf, "u"//bb3,
    288294     .                 "Zonal wind "//bb3//"mb","m/s",
    289      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     295     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    290296     .         "inst(X)", zstohf,zstohf)
    291297c
    292298          CALL histdef(nid_hf, "v"//bb3,
    293299     .                 "Meridional wind "//bb3//"mb","m/s",
    294      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     300     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    295301     .         "inst(X)", zstohf,zstohf)
    296302c
     
    300306c
    301307        CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s",
    302      .               iim,jjmp1,nhori, 1,1,1, -99, 32,
     308     .               iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    303309     .               "inst(X)", zstohf,zout)
    304310c
    305311        CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s",
    306      .               iim,jjmp1,nhori, 1,1,1, -99, 32,
     312     .               iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    307313     .               "inst(X)", zstohf,zout)
    308314c
    309315        CALL histdef(nid_hf, "t2m", "Temperature 2m", "K",
    310      .               iim,jjmp1,nhori, 1,1,1, -99, 32,
     316     .               iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    311317     .               "inst(X)", zstohf,zout)
    312318c
    313319        CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg",
    314      .               iim,jjmp1,nhori, 1,1,1, -99, 32,
     320     .               iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    315321     .               "inst(X)", zstohf,zout)
    316322c
    317323        CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa",
    318      .               iim,jjmp1,nhori, 1,1,1, -99, 32,
     324     .               iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    319325     .               "inst(X)", zstohf,zout)
    320326c
    321327        CALL histdef(nid_hf, "cldt", "Total cloudiness", "%",
    322      .               iim,jjmp1,nhori, 1,1,1, -99, 32,
     328     .               iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    323329     .               "ave(X)", zstohf,zout)
    324330c
    325331        CALL histdef(nid_hf, "taux",
    326332     $         "Zonal wind stress","Pa",
    327      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     333     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    328334     $         "ave(X)", zstohf,zout)
    329335c
    330336        CALL histdef(nid_hf, "tauy",
    331337     $         "Meridional wind stress ", "Pa",
    332      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     338     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    333339     $         "ave(X)", zstohf,zout)
    334340c
    335341        CALL histdef(nid_hf, "prw", "Precipitable water", "kg/m2",
    336      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     342     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    337343cIM 090904  .                "ave(X)", zstohf,zout)
    338344     .                "ave(X)", zstophy,zout)
    339345c
    340346        CALL histdef(nid_hf, "sens", "Sensible heat flux", "W/m2",
    341      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     347     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    342348cIM 090904  .                "ave(X)", zstohf,zout)
    343349     .                "ave(X)", zstophy,zout)
    344350c
    345351        CALL histdef(nid_hf, "flat", "Latent heat flux", "W/m2",
    346      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     352     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    347353     .                "ave(X)", zstohf,zout)
    348354c
    349355c       CALL histdef(nid_hf, "snow_mass", "Snow Mass", "kg/m2",
    350 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     356c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    351357c    .                "ave(X)", zstohf,zout)
    352358c
    353359        CALL histdef(nid_hf, "SWdnSFC", "SWdn at surface","W/m2",
    354      .                iim,jjmp1,nhori, 1,1,1,-99,
     360     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    355361     .                32, "ave(X)", zstohf,zout)
    356362c
    357363        CALL histdef(nid_hf, "SWupSFC", "SWup at surface","W/m2",
    358      .                iim,jjmp1,nhori, 1,1,1,-99,
     364     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    359365     .                32, "ave(X)", zstohf,zout)
    360366c
    361367        CALL histdef(nid_hf,"LWdnSFC","Down. IR rad. at surface",
    362      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     368     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    363369     .                "ave(X)", zstohf,zout)
    364370c
    365371        CALL histdef(nid_hf,"LWupSFC","Upwd. IR rad. at surface",
    366      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     372     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    367373     .                "ave(X)", zstohf,zout)
    368374c
    369375        CALL histdef(nid_hf, "SWdnTOA", "SWdn at TOA","W/m2",
    370      .                iim,jjmp1,nhori, 1,1,1,-99,
     376     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    371377     .                32, "ave(X)", zstohf,zout)
    372378c
    373379        CALL histdef(nid_hf, "SWupTOA", "SWup at TOA","W/m2",
    374      .                iim,jjmp1,nhori, 1,1,1,-99,
     380     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    375381     .                32, "ave(X)", zstohf,zout)
    376382c
     
    378384         CALL histdef(nid_hf, "PV"//ctetaSTD(k),
    379385     $               "Vorticite potentielle "//ctetaSTD(k)//"K",
    380      $               "1/(Pa*s)",iim,jjmp1,nhori, 1,1,1, -99,
     386     $               "1/(Pa*s)",iim,jjphy_nb,nhori, 1,1,1, -99,
    381387     $                 32, "inst(X)", zstohf,zout)
    382388        ENDDO !k=1, nbteta
     
    393399      CALL histend(nid_hf)
    394400c
     401c$OMP END MASTER
    395402      ENDIF ! ok_hf
  • LMDZ4/trunk/libf/phylmd/ini_histins.h

    r684 r766  
    33!
    44      IF (ok_instan) THEN
     5c$OMP MASTER
    56c
    67          zsto = ecrit_ins
     
    1011         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    1112c
    12          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    13          DO i = 1, iim
    14             zx_lon(i,1) = rlon(i+1)
    15             zx_lon(i,jjmp1) = rlon(i+1)
    16          ENDDO
     13cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     14cym         DO i = 1, iim
     15cym            zx_lon(i,1) = rlon(i+1)
     16cym            zx_lon(i,jjmp1) = rlon(i+1)
     17cym         ENDDO
    1718         DO ll=1,klev
    1819            znivsig(ll)=float(ll)
    1920         ENDDO
    20          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    21          CALL histbeg("histins", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    22      .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     21cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     22cym         CALL histbeg("histins", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     23cym     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     24cym     .                 nhori, nid_ins)
     25         CALL histbeg_phy("histins", itau_phy, zjulian, dtime,
    2326     .                 nhori, nid_ins)
    2427         write(*,*)'Inst ', itau_phy, zjulian
     
    3134c
    3235         CALL histdef(nid_ins, "phis", "Surface geop. height", "-",
    33      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     36     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    3437     .                "once", zsto,zout)
    3538c
    3639         CALL histdef(nid_ins, "aire", "Grid area", "-",
    37      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     40     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    3841     .                "once", zsto,zout)
    3942c
     
    4144c
    4245        CALL histdef(nid_ins, "tsol", "Surface Temperature", "K",
    43      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     46     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4447     .                "inst(X)", zsto,zout)
    4548c
    4649         CALL histdef(nid_ins, "t2m", "Temperature 2m", "K",
    47      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     50     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4851     .                "inst(X)", zsto,zout)
    4952c
    5053         CALL histdef(nid_ins, "q2m", "Specific humidity 2m", "Kg/Kg",
    51      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     54     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    5255     .                "inst(X)", zsto,zout)
    5356c
    5457         CALL histdef(nid_ins, "u10m", "Vent zonal 10m", "m/s",
    55      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     58     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    5659     .                "inst(X)", zsto,zout)
    5760c
    5861         CALL histdef(nid_ins, "v10m", "Vent meridien 10m", "m/s",
    59      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     62     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6063     .                "inst(X)", zsto,zout)
    6164c
    6265        CALL histdef(nid_ins, "psol", "Surface Pressure", "Pa",
    63      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     66     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6467     .                "inst(X)", zsto,zout)
    6568c
    6669         CALL histdef(nid_ins, "plul", "Large-scale Precip.", "mm/day",
    67      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     70     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6871     .                "inst(X)", zsto,zout)
    6972c
    7073         CALL histdef(nid_ins, "pluc", "Convective Precip.", "mm/day",
    71      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     74     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7275     .                "inst(X)", zsto,zout)
    7376c
    7477         CALL histdef(nid_ins, "cdrm", "Momentum drag coef.", "-",
    75      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     78     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7679     .                "inst(X)", zsto,zout)
    7780c
    7881         CALL histdef(nid_ins, "cdrh", "Heat drag coef.", "-",
    79      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     82     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8083     .                "inst(X)", zsto,zout)
    8184c
    8285         CALL histdef(nid_ins, "precip", "Precipitation Totale liq+sol",
    8386     .                "kg/(s*m2)",
    84      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     87     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8588     .                "inst(X)", zsto,zout)
    8689c
    8790         CALL histdef(nid_ins, "snow", "Snow fall", "kg/(s*m2)",
    88      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     91     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8992     .                "inst(X)", zsto,zout)
    9093c
     
    9497c
    9598         CALL histdef(nid_ins, "topl", "OLR", "W/m2",
    96      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     99     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    97100     .                "inst(X)", zsto,zout)
    98101c
    99102         CALL histdef(nid_ins, "evap", "Evaporation", "kg/(s*m2)",
    100      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     103     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    101104     .                "inst(X)", zsto,zout)
    102105c
    103106         CALL histdef(nid_ins, "sols", "Solar rad. at surf.", "W/m2",
    104      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     107     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    105108     .                "inst(X)", zsto,zout)
    106109c
    107110         CALL histdef(nid_ins, "soll", "IR rad. at surface", "W/m2",
    108      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     111     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    109112     .                "inst(X)", zsto,zout)
    110113c
    111114         CALL histdef(nid_ins, "solldown", "Down. IR rad. at surface",
    112      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     115     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    113116     .                "inst(X)", zsto,zout)
    114117c
    115118         CALL histdef(nid_ins, "bils", "Surf. total heat flux", "W/m2",
    116      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     119     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    117120     .                "inst(X)", zsto,zout)
    118121c
    119122         CALL histdef(nid_ins, "sens", "Sensible heat flux", "W/m2",
    120      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     123     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    121124     .                "inst(X)", zsto,zout)
    122125c
    123126         CALL histdef(nid_ins, "fder", "Heat flux derivation", "W/m2",
    124      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     127     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    125128     .                "inst(X)", zsto,zout)
    126129c
    127130      CALL histdef(nid_ins, "dtsvdfo", "Boundary-layer dTs(o)", "K/s",
    128      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     131     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    129132     .                "inst(X)", zsto,zout)
    130133c
    131134      CALL histdef(nid_ins, "dtsvdft", "Boundary-layer dTs(t)", "K/s",
    132      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     135     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    133136     .                "inst(X)", zsto,zout)
    134137c
    135138      CALL histdef(nid_ins, "dtsvdfg", "Boundary-layer dTs(g)", "K/s",
    136      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     139     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    137140     .                "inst(X)", zsto,zout)
    138141c
    139142      CALL histdef(nid_ins, "dtsvdfi", "Boundary-layer dTs(g)", "K/s",
    140      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     143     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    141144     .                "inst(X)", zsto,zout)
    142145
     
    145148           call histdef(nid_ins, "pourc_"//clnsurf(nsrf),
    146149     $         "% "//clnsurf(nsrf), "%", 
    147      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     150     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    148151     $         "inst(X)", zsto,zout)
    149152
    150153           call histdef(nid_ins, "fract_"//clnsurf(nsrf),
    151154     $         "Fraction "//clnsurf(nsrf), "1", 
    152      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     155     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    153156     $         "inst(X)", zsto,zout)
    154157
    155158           call histdef(nid_ins, "sens_"//clnsurf(nsrf),
    156159     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
    157      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     160     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    158161     $         "inst(X)", zsto,zout)
    159162c
    160163           call histdef(nid_ins, "tsol_"//clnsurf(nsrf),
    161164     $         "Surface Temperature"//clnsurf(nsrf), "W/m2", 
    162      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     165     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    163166     $         "inst(X)", zsto,zout)
    164167c
    165168           call histdef(nid_ins, "lat_"//clnsurf(nsrf),
    166169     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    167      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     170     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    168171     $         "inst(X)", zsto,zout)
    169172C
    170173           call histdef(nid_ins, "taux_"//clnsurf(nsrf),
    171174     $         "Zonal wind stress"//clnsurf(nsrf),"Pa",
    172      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     175     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    173176     $         "inst(X)", zsto,zout)
    174177
    175178           call histdef(nid_ins, "tauy_"//clnsurf(nsrf),
    176179     $         "Meridional xind stress "//clnsurf(nsrf), "Pa", 
    177      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     180     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    178181     $         "inst(X)", zsto,zout)
    179182c
    180183           call histdef(nid_ins, "albe_"//clnsurf(nsrf),
    181184     $         "Albedo "//clnsurf(nsrf), "-", 
    182      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     185     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    183186     $         "inst(X)", zsto,zout)
    184187c
    185188           call histdef(nid_ins, "rugs_"//clnsurf(nsrf),
    186189     $         "rugosite "//clnsurf(nsrf), "-", 
    187      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     190     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    188191     $         "inst(X)", zsto,zout)
    189192CXXX
    190193         END DO
    191194         CALL histdef(nid_ins, "rugs", "rugosity", "-",
    192      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     195     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    193196     .                "inst(X)", zsto,zout)
    194197
    195198c
    196199         CALL histdef(nid_ins, "albs", "Surface albedo", "-",
    197      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     200     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    198201     .                "inst(X)", zsto,zout)
    199202         CALL histdef(nid_ins, "albslw", "Surface albedo LW", "-",
    200      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     203     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    201204     .                "inst(X)", zsto,zout)
    202205c
     
    205208c HBTM2
    206209         CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m",
    207      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     210     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    208211     .                "inst(X)", zsto,zout)
    209212c
    210213         CALL histdef(nid_ins, "s_pblt", "T at Boundary Layer Height",
    211214     .                "K",
    212      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     215     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    213216     .                "inst(X)", zsto,zout)
    214217c
    215218         CALL histdef(nid_ins, "s_lcl", "Condensation level", "m",
    216      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     219     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    217220     .                "inst(X)", zsto,zout)
    218221c
    219222         CALL histdef(nid_ins, "s_capCL", "Conv avlbl pot ener for
    220223     .                ABL", "J/m2",
    221      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     224     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    222225     .                "inst(X)", zsto,zout)
    223226c
    224227         CALL histdef(nid_ins, "s_oliqCL", "Liq Water in BL", "kg/m2",
    225      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     228     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    226229     .                "inst(X)", zsto,zout)
    227230c
    228231         CALL histdef(nid_ins, "s_cteiCL", "Instability criteria
    229232     .                (ABL)", "K",
    230      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     233     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    231234     .                "inst(X)", zsto,zout)
    232235c
    233236         CALL histdef(nid_ins, "s_therm", "Exces du thermique", "K",
    234      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     237     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    235238     .                "inst(X)", zsto,zout)
    236239c
    237240         CALL histdef(nid_ins, "s_trmb1", "deep_cape(HBTM2)", "J/m2",
    238      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     241     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    239242     .                "inst(X)", zsto,zout)
    240243c
    241244         CALL histdef(nid_ins, "s_trmb2", "inhibition (HBTM2)", "J/m2",
    242      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     245     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    243246     .                "inst(X)", zsto,zout)
    244247c
    245248         CALL histdef(nid_ins, "s_trmb3", "Point Omega (HBTM2)", "m",
    246      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     249     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    247250     .                "inst(X)", zsto,zout)
    248251c
     
    252255c
    253256         CALL histdef(nid_ins, "temp", "Temperature", "K",
    254      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     257     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    255258     .                "inst(X)", zsto,zout)
    256259c
    257260         CALL histdef(nid_ins, "vitu", "Zonal wind", "m/s",
    258      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     261     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    259262     .                "inst(X)", zsto,zout)
    260263c
    261264         CALL histdef(nid_ins, "vitv", "Merid wind", "m/s",
    262      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     265     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    263266     .                "inst(X)", zsto,zout)
    264267c
    265268         CALL histdef(nid_ins, "geop", "Geopotential height", "m",
    266      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     269     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    267270     .                "inst(X)", zsto,zout)
    268271c
    269272         CALL histdef(nid_ins, "pres", "Air pressure", "Pa",
    270      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     273     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    271274     .                "inst(X)", zsto,zout)
    272275c
    273276         CALL histdef(nid_ins, "dtvdf", "Boundary-layer dT", "K/s",
    274      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     277     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    275278     .                "inst(X)", zsto,zout)
    276279c
    277280         CALL histdef(nid_ins, "dqvdf", "Boundary-layer dQ", "Kg/Kg/s",
    278      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     281     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    279282     .                "inst(X)", zsto,zout)
    280283c
     
    285288         ndex3d = 0
    286289c
     290c$OMP END MASTER
     291
    287292      ENDIF
  • LMDZ4/trunk/libf/phylmd/ini_histmth.h

    r684 r766  
    33c
    44      IF (ok_mensuel) THEN
     5c$OMP MASTER
    56c
    67       zstophy = dtime
     
    1314         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    1415c
    15          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    16          DO i = 1, iim
    17             zx_lon(i,1) = rlon(i+1)
    18             zx_lon(i,jjmp1) = rlon(i+1)
    19          ENDDO
    20 c
    21 cIM cf. AM 081204 BEG region
    22 c         imin_histmth=1
    23 c         imax_histmth=iim
    24 c         jmin_histmth=1
    25 c         jmax_histmth=jjmp1
    26 c         do i=1,iim-1
    27 c            if(zx_lon(i,1).lt.lonmin_histmth) imin_histmth=i
    28 c            if(zx_lon(i,1).le.lonmax_histmth) imax_histmth=i+1
    29 c         enddo
    30 cIM 220704 BAD??       do j=1,jjmp1-1
    31 c         do j=1,jjmp1
    32 c            if(zx_lat(1,j).ge.latmin_histmth) jmax_histmth=j
    33 c            if(zx_lat(1,j).gt.latmax_histmth) jmin_histmth=j
    34 c         enddo
    35 c
    36 c         print*,'On stoke le fichier instantanne sur, ',
    37 c     s   imin_histmth,imax_histmth,jmin_histmth,jmax_histmth
    38 c         print*,'On stoke le fichier instantanne sur, ',
    39 c     s   zx_lon(imin_histmth,1),zx_lon(imax_histmth,1),
    40 c     s   zx_lat(1,jmin_histmth),zx_lat(1,jmax_histmth)
    41 cIM cf. AM 081204 END region
    42 c
     16cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     17cym         DO i = 1, iim
     18cym            zx_lon(i,1) = rlon(i+1)
     19cym            zx_lon(i,jjmp1) = rlon(i+1)
     20cym         ENDDO
    4321         DO ll=1,klev
    4422            znivsig(ll)=float(ll)
    4523         ENDDO
    46          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    47          CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    48      .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     24cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     25cym         CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     26cym     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     27cym     .                 nhori, nid_mth)
     28
     29           CALL histbeg_phy("histmth",itau_phy, zjulian, dtime,
    4930     .                 nhori, nid_mth)
    50 c
    51 cIM cf. AM 081204 BEG region
    52 c         CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    53 c     .                 imin_histmth,imax_histmth-imin_histmth+1
    54 c     .                 ,jmin_histmth,jmax_histmth-jmin_histmth+1
    55 c     .                 , itau_phy, zjulian, dtime,
    56 c     .                 nhori, nid_mth)
    57 cIM 081204 END
    58 c
     31     
     32       write(*,*)'Mensuel ', itau_phy, zjulian
    5933         CALL histvert(nid_mth, "presnivs", "Vertical levels", "mb",
    6034     .                 klev, presnivs/100., nvert)
     
    6640         CALL histdef(nid_mth, "phis",
    6741     .                "Surface geop. height", "m2/s2",
    68      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     42     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    6943     .                "once",  zstophy,zout)
    7044c
    7145         CALL histdef(nid_mth, "aire", "Grid area", "-",
    72      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     46     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7347     .                "once",  zstophy,zout)
    7448c
    7549         CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter),
    7650     .         "% "//clnsurf(is_ter), "%", 
    77      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     51     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    7852     .         "once", zstophy,zout)
    7953c
    8054         CALL histdef(nid_mth, "fract_"//clnsurf(is_ter),
    8155     .         "Fraction "//clnsurf(is_ter), "1", 
    82      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     56     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8357     .         "once", zstophy,zout)
    8458c
     
    8660c
    8761         CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa",
    88      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     62     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    8963     .                "ave(X)", zstophy,zout)
    9064c
    9165         CALL histdef(nid_mth, "tsol", "Surface Temperature", "K",
    92      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     66     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    9367     .                "ave(X)", zstophy,zout)
    9468c
    9569         CALL histdef(nid_mth, "t2m", "Temperature 2m", "K",
    96      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     70     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    9771     .                "ave(X)", zstophy,zout)
    9872c
     
    10074         CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.",
    10175     .                "K",
    102      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     76     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10377     .                t2mincels, zstophy,zout)
    10478c
    10579         CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.",
    10680     .                "K",
    107      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     81     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10882     .                t2maxcels, zstophy,zout)
    10983c
    11084c        CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature",
    11185c    .                "K",
    112 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     86c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11387c    .                "ave(X)", zstophy,zout)
    11488c
    11589         CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s",
    116      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     90     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11791     .                "ave(X)", zstophy,zout)
    11892c
    11993         CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-",
    120      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     94     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12195     .                "ave(X)", zstophy,zout)
    12296c
    12397c ENSEMBLES END
    12498         CALL histdef(nid_mth, "q2m", "Specific humidity 2m", "kg/kg",
    125      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     99     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    126100     .                "ave(X)", zstophy,zout)
    127101c
    128102         CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s",
    129      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     103     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    130104     .                "ave(X)", zstophy,zout)
    131105c
    132106         CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s",
    133      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     107     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    134108     .                "ave(X)", zstophy,zout)
    135109c
    136110         CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa",
    137      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     111     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    138112     .                "ave(X)", zstophy,zout)
    139113c
    140114         CALL histdef(nid_mth, "qsurf", "Surface Air humidity", "kg/kg",
    141      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     115     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    142116     .                "ave(X)", zstophy,zout)
    143117c
    144118      if (.not. ok_veget) then
    145119         CALL histdef(nid_mth, "qsol", "Soil watter content", "mm",
    146      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     120     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    147121     .                "ave(X)", zstophy,zout)
    148122      endif
     
    150124         CALL histdef(nid_mth, "ndayrain",
    151125     .                "Number of day with rain (liq+sol)", "-",
    152      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     126     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    153127     .                "inst(X)", zstomth,zout)
    154128c
    155129         CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol",
    156130     .                "kg/(s*m2)",
    157      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     131     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    158132     .                "ave(X)", zstophy,zout)
    159133c
    160134         CALL histdef(nid_mth, "plul", "Large-scale Precip.",
    161135     .   "kg/(s*m2)",
    162      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     136     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    163137     .                "ave(X)", zstophy,zout)
    164138c
    165139         CALL histdef(nid_mth, "pluc", "Convective Precip.",
    166140     .   "kg/(s*m2)",
    167      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     141     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    168142     .                "ave(X)", zstophy,zout)
    169143c
    170144         CALL histdef(nid_mth, "snow", "Snow fall", "kg/(s*m2)",
    171      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     145     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    172146     .                "ave(X)", zstophy,zout)
    173147c
    174148c        CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2",
    175 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     149c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    176150c    .                "ave(X)", zstophy,zout)
    177151c
    178152         CALL histdef(nid_mth, "evap", "Evaporation", "kg/(s*m2)",
    179      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     153     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    180154     .                "ave(X)", zstophy,zout)
    181155c
    182156         CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2",
    183      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     157     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    184158     .                "ave(X)", zstophy,zout)
    185159c
    186160         CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2",
    187      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     161     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    188162     .                "ave(X)", zstophy,zout)
    189163c
    190164         CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2",
    191      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     165     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    192166     .                "ave(X)", zstophy,zout)
    193167c
    194168         CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2",
    195      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     169     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    196170     .                "ave(X)", zstophy,zout)
    197171c
    198172         CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2",
    199      .                iim,jjmp1,nhori, 1,1,1,-99,
     173     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    200174     .                32, "ave(X)", zstophy,zout)
    201175c
    202176         CALL histdef(nid_mth, "SWupTOAclr",
    203177     .                "SWup clear sky at TOA","W/m2",
    204      .                iim,jjmp1,nhori, 1,1,1,-99,
     178     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    205179     .                32, "ave(X)", zstophy,zout)
    206180c
    207181         CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2",
    208      .                iim,jjmp1,nhori, 1,1,1,-99,
     182     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    209183     .                32, "ave(X)", zstophy,zout)
    210184c
    211185         CALL histdef(nid_mth, "SWdnTOAclr",
    212186     .                "SWdn clear sky at TOA","W/m2",
    213      .                iim,jjmp1,nhori, 1,1,1,-99,
     187     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    214188     .                32, "ave(X)", zstophy,zout)
    215189c
    216190         CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2",
    217      .                iim,jjmp1,nhori, 1,1,1,-99,
     191     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    218192     .                32, "ave(X)", zstophy,zout)
    219193c
    220194         CALL histdef(nid_mth, "SWup200clr",
    221195     .                "SWup clear sky at 200mb","W/m2",
    222      .                iim,jjmp1,nhori, 1,1,1,-99,
     196     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    223197     .                32, "ave(X)", zstophy,zout)
    224198c
    225199         CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2",
    226      .                iim,jjmp1,nhori, 1,1,1,-99,
     200     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    227201     .                32, "ave(X)", zstophy,zout)
    228202c
    229203         CALL histdef(nid_mth, "SWdn200clr",
    230204     .                "SWdn clear sky at 200mb","W/m2",
    231      .                iim,jjmp1,nhori, 1,1,1,-99,
     205     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    232206     .                32, "ave(X)", zstophy,zout)
    233207c
    234208         CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2",
    235      .                iim,jjmp1,nhori, 1,1,1,-99,
     209     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    236210     .                32, "ave(X)", zstophy,zout)
    237211c
    238212         CALL histdef(nid_mth, "LWup200clr",
    239213     .                "LWup clear sky at 200mb","W/m2",
    240      .                iim,jjmp1,nhori, 1,1,1,-99,
     214     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    241215     .                32, "ave(X)", zstophy,zout)
    242216c
    243217         CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2",
    244      .                iim,jjmp1,nhori, 1,1,1,-99,
     218     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    245219     .                32, "ave(X)", zstophy,zout)
    246220c
    247221         CALL histdef(nid_mth, "LWdn200clr",
    248222     .                "LWdn clear sky at 200mb","W/m2",
    249      .                iim,jjmp1,nhori, 1,1,1,-99,
     223     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    250224     .                32, "ave(X)", zstophy,zout)
    251225c
    252226         CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2",
    253      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     227     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    254228     .                "ave(X)", zstophy,zout)
    255229c
    256230         CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2",
    257      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     231     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    258232     .                "ave(X)", zstophy,zout)
    259233c
    260234         CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2",
    261      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     235     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    262236     .                "ave(X)", zstophy,zout)
    263237c
    264238         CALL histdef(nid_mth, "radsol", "Rayonnement au sol", "W/m2",
    265      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     239     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    266240     .                "ave(X)", zstophy,zout)
    267241c
    268242         CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2",
    269      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     243     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    270244     .                "ave(X)", zstophy,zout)
    271245c
    272246         CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2",
    273      .                iim,jjmp1,nhori, 1,1,1,-99,
     247     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    274248     .                32, "ave(X)", zstophy,zout)
    275249c
    276250         CALL histdef(nid_mth, "SWupSFCclr",
    277251     .                "SWup clear sky at surface","W/m2",
    278      .                iim,jjmp1,nhori, 1,1,1,-99,
     252     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    279253     .                32, "ave(X)", zstophy,zout)
    280254c
    281255         CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2",
    282      .                iim,jjmp1,nhori, 1,1,1,-99,
     256     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    283257     .                32, "ave(X)", zstophy,zout)
    284258c
    285259         CALL histdef(nid_mth, "SWdnSFCclr",
    286260     .                "SWdn clear sky at surface","W/m2",
    287      .                iim,jjmp1,nhori, 1,1,1,-99,
     261     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    288262     .                32, "ave(X)", zstophy,zout)
    289263c
    290264         CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface",
    291      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     265     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    292266     .                "ave(X)", zstophy,zout)
    293267c
    294268         CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface",
    295      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     269     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    296270     .                "ave(X)", zstophy,zout)
    297271c
    298272         CALL histdef(nid_mth,"LWupSFCclr",
    299273     .                "CS Upwd. IR rad. at surface",
    300      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     274     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    301275     .                "ave(X)", zstophy,zout)
    302276c
    303277         CALL histdef(nid_mth,"LWdnSFCclr",
    304278     .                "Down. CS IR rad. at surface",
    305      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     279     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    306280     .                "ave(X)", zstophy,zout)
    307281c
    308282         CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2",
    309      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     283     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    310284     .                "ave(X)", zstophy,zout)
    311285c
     
    315289c
    316290         CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2",
    317      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     291     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    318292     .                "ave(X)", zstophy,zout)
    319293c
    320294c          CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa",
    321 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     295c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    322296c    .                "ave(X)", zstophy,zout)
    323297c
    324298c        CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa",
    325 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     299c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    326300c    .                "ave(X)", zstophy,zout)
    327301c
    328302         CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting",
    329      .                "W/m2",iim,jjmp1,nhori, 1,1,1, -99, 32,
     303     .                "W/m2",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    330304     .                "ave(X)", zstophy,zout)
    331305c
    332306         CALL histdef(nid_mth, "fqcalving","Ice Calving",
    333      .                "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
    334      .                "ave(X)", zstophy,zout)
    335 c
     307     .                "kg/m2/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     308     .                "ave(X)", zstophy,zout)
     309c
     310         CALL histdef(nid_mth, "fqfonte","Land ice melt",
     311     .                "kg/m2/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     312     .                "ave(X)", zsto,zout)
     313
    336314         DO nsrf = 1, nbsrf
    337315           call histdef(nid_mth, "taux_"//clnsurf(nsrf),
    338316     $         "Zonal wind stress"//clnsurf(nsrf), "Pa", 
    339      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     317     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    340318     $         "ave(X)", zstophy,zout)
    341319
    342320           call histdef(nid_mth, "tauy_"//clnsurf(nsrf),
    343321     $         "Meridional wind stress "//clnsurf(nsrf), "Pa", 
    344      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     322     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    345323     $         "ave(X)", zstophy,zout)
    346324         ENDDO
     
    351329           call histdef(nid_mth, "pourc_"//clnsurf(nsrf),
    352330     $         "% "//clnsurf(nsrf), "%", 
    353      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     331     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    354332     $         "ave(X)", zstophy,zout)
    355333c
    356334           call histdef(nid_mth, "fract_"//clnsurf(nsrf),
    357335     $         "Fraction "//clnsurf(nsrf), "1", 
    358      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     336     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    359337     $         "ave(X)", zstophy,zout)
    360338          ENDIF !nsrf.GT.2
     
    362340           call histdef(nid_mth, "tsol_"//clnsurf(nsrf),
    363341     $         "Temperature "//clnsurf(nsrf), "K", 
    364      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     342     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    365343     $         "ave(X)", zstophy,zout)
    366344C
    367345           call histdef(nid_mth, "sens_"//clnsurf(nsrf),
    368346     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
    369      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     347     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    370348     $         "ave(X)", zstophy,zout)
    371349c
    372350           call histdef(nid_mth, "lat_"//clnsurf(nsrf),
    373351     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    374      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     352     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    375353     $         "ave(X)", zstophy,zout)
    376354C
    377355           call histdef(nid_mth, "flw_"//clnsurf(nsrf),
    378356     $         "LW "//clnsurf(nsrf), "W/m2",
    379      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     357     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    380358     $         "ave(X)", zstophy,zout)
    381359c
    382360           call histdef(nid_mth, "fsw_"//clnsurf(nsrf),
    383361     $         "SW "//clnsurf(nsrf), "W/m2",
    384      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     362     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    385363     $         "ave(X)", zstophy,zout)
    386364C
    387365           call histdef(nid_mth, "wbils_"//clnsurf(nsrf),
    388366     $         "Bilan sol "//clnsurf(nsrf), "W/m2",
    389      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     367     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    390368     $         "ave(X)", zstophy,zout)
    391369C
    392370           call histdef(nid_mth, "wbilo_"//clnsurf(nsrf),
    393371     $         "Bilan eau "//clnsurf(nsrf), "kg/(m2*s)",
    394      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     372     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    395373     $         "ave(X)", zstophy,zout)
    396374C
     
    400378           call histdef(nid_mth, "evapour_"//clnsurf(nsrf),
    401379     $         "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)",
    402      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     380     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    403381     $         "ave(X)", zstophy,zout)
    404382C
    405383           call histdef(nid_mth, "prepour_"//clnsurf(nsrf),
    406384     $         "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)",
    407      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     385     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    408386     $         "ave(X)", zstophy,zout)
    409387C
     
    414392c
    415393         CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-",
    416      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     394     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    417395     .                "ave(X)", zstophy,zout)
    418396c
    419397         CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-",
    420      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     398     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    421399     .                "ave(X)", zstophy,zout)
    422400c
    423401         CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-",
    424      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     402     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    425403     .                "ave(X)", zstophy,zout)
    426404c
    427405         CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-",
    428      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     406     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    429407     .                "ave(X)", zstophy,zout)
    430408c
    431409         CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-",
    432      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     410     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    433411     .                "ave(X)", zstophy,zout)
    434412c
    435413         CALL histdef(nid_mth, "cldt", "Total cloudiness", "-",
    436      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     414     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    437415     .                "ave(X)", zstophy,zout)
    438416c
    439417         CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2",
    440      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     418     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    441419     .                "ave(X)", zstophy,zout)
    442420c
    443421         CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2",
    444      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     422     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    445423     .                "ave(X)", zstophy,zout)
    446424c
    447425         CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2",
    448      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     426     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    449427     .                "ave(X)", zstophy,zout)
    450428c
    451429         CALL histdef(nid_mth, "ue", "Zonal energy transport", "-",
    452      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     430     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    453431     .                "ave(X)", zstophy,zout)
    454432c
    455433         CALL histdef(nid_mth, "ve", "Merid energy transport", "-",
    456      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     434     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    457435     .                "ave(X)", zstophy,zout)
    458436c
    459437         CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-",
    460      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     438     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    461439     .                "ave(X)", zstophy,zout)
    462440c
    463441         CALL histdef(nid_mth, "vq", "Merid humidity transport", "-",
    464      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     442     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    465443     .                "ave(X)", zstophy,zout)
    466444cKE43
     
    468446c
    469447         CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg",
    470      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     448     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    471449     .                "ave(X)", zstophy,zout)
    472450c
    473451         CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb",
    474      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     452     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    475453     .                "ave(X)", zstophy,zout)
    476454c
    477455         CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb",
    478      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     456     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    479457     .                "ave(X)", zstophy,zout)
    480458c
    481459         CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s",
    482      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     460     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    483461     .                "ave(X)", zstophy,zout)
    484462c
    485463         CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2",
    486      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     464     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    487465     .                "ave(X)", zstophy,zout)
    488466c
     
    493471c HBTM2
    494472         CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m",
    495      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     473     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    496474     .                "ave(X)", zstophy,zout)
    497475         CALL histdef(nid_mth, "s_pblt", "t at Boundary Layer Height",
    498476     .                "K",
    499      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     477     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    500478     .                "ave(X)", zstophy,zout)
    501479         CALL histdef(nid_mth, "s_lcl", "Condensation level", "m",
    502      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     480     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    503481     .                "ave(X)", zstophy,zout)
    504482         CALL histdef(nid_mth, "s_capCL", "Conv avlbl pot ener
    505483     .                for ABL", "J/m2",
    506      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     484     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    507485     .                "ave(X)", zstophy,zout)
    508486         CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2",
    509      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     487     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    510488     .                "ave(X)", zstophy,zout)
    511489         CALL histdef(nid_mth, "s_cteiCL", "Instability criteria
    512490     .                (ABL)", "K",
    513      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     491     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    514492     .                "ave(X)", zstophy,zout)
    515493         CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K",
    516      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     494     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    517495     .                "ave(X)", zstophy,zout)
    518496         CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2",
    519      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     497     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    520498     .                "ave(X)", zstophy,zout)
    521499         CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2",
    522      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     500     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    523501     .                "ave(X)", zstophy,zout)
    524502         CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m",
    525      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     503     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    526504     .                "ave(X)", zstophy,zout)
    527505c
     
    545523          CALL histdef(nid_mth, "u"//bb2,
    546524     .                 "Zonal wind "//bb2//"mb","m/s",
    547      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     525     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    548526     .                "inst(X)", zout,zout)
    549527c
    550528          CALL histdef(nid_mth, "v"//bb2,
    551529     .                 "Meridional wind "//bb2//"mb","m/s",
    552      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     530     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    553531     .                "inst(X)", zout,zout)
    554532c
    555533          CALL histdef(nid_mth, "w"//bb2,
    556534     .                 "Vertical wind "//bb2//"mb","m/s",
    557      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     535     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    558536     .                "inst(X)", zout,zout)
    559537c
    560538          CALL histdef(nid_mth, "phi"//bb2,
    561539     .                 "Geopotential "//bb2//"mb","m",
    562      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     540     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    563541     .                "inst(X)", zout,zout)
    564542c
     
    571549       CALL histdef(nid_mth, "fluxo",
    572550     .              "Flux turbulents ocean-atmosphere", "W/m2",
    573      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     551     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    574552     .              "ave(X)", zstophy,zout)
    575553c
    576554       CALL histdef(nid_mth, "fluxg",
    577555     .              "Flux turbulents ocean-glace de mer","W/m2",
    578      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     556     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    579557     .              "ave(X)", zstophy,zout)
    580558c
    581559       CALL histdef(nid_mth, "t_oce_sic",
    582560     .              "Temp. mixte oce-sic","K",
    583      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     561     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    584562     .              "ave(X)", zstophy,zout)
    585563c
     
    588566        CALL histdef(nid_mth, "lmt_bils",
    589567     .       "Bilan au sol atmosphere forcee", "W/m2",
    590      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     568     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    591569     .              "ave(X)", zstophy,zout)
    592570c
     
    595573        CALL histdef(nid_mth, "slab_bils",
    596574     .       "Bilan au sol Slab", "W/m2",
    597      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     575     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    598576     .              "ave(X)", zstophy,zout)
    599577c
    600578        CALL histdef(nid_mth, "tslab", "Slab SST ", "K",
    601      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     579     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    602580     .              "ave(X)", zstophy,zout)
    603581c
    604582        CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2",
    605      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     583     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    606584     .              "ave(X)", zstophy,zout)
    607585c
    608586        CALL histdef(nid_mth, "siceh", "Slab seaice height", "m",
    609      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     587     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    610588     .              "ave(X)", zstophy,zout)
    611589c
     
    621599         CALL histdef(nid_mth,"lwcon","Cloud liquid water content",
    622600     .                "kg/kg",
    623      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     601     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    624602     .                "ave(X)", zstophy,zout)
    625603c
    626604         CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg",
    627      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     605     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    628606     .                "ave(X)", zstophy,zout)
    629607c
    630608         CALL histdef(nid_mth, "temp", "Air temperature", "K",
    631      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     609     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    632610     .                "ave(X)", zstophy,zout)
    633611c
    634612         CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg",
    635      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     613     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    636614     .                "ave(X)", zstophy,zout)
    637615c
    638616c        CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg",
    639 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     617c    .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    640618c    .                "ave(X)", zstophy,zout)
    641619c
    642620         CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2",
    643      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     621     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    644622     .                "ave(X)", zstophy,zout)
    645623c
    646624         CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s",
    647      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     625     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    648626     .                "ave(X)", zstophy,zout)
    649627c
    650628         CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s",
    651      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     629     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    652630     .                "ave(X)", zstophy,zout)
    653631c
    654632         CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s",
    655      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     633     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    656634     .                "ave(X)", zstophy,zout)
    657635c
    658636         CALL histdef(nid_mth, "pres", "Air pressure", "Pa",
    659      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     637     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    660638     .                "ave(X)", zstophy,zout)
    661639c
    662640        CALL histdef(nid_mth, "rneb", "Cloud fraction", "-",
    663      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     641     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    664642     .                "ave(X)", zstophy,zout)
    665643c
    666644         CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction"
    667645     .                , "-",
    668      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     646     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    669647     .                "ave(X)", zstophy,zout)
    670648c
    671649         CALL histdef(nid_mth, "rhum", "Relative humidity", "-",
    672      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     650     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    673651     .                "ave(X)", zstophy,zout)
    674652c
    675653         CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv",
    676      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     654     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    677655     .                "ave(X)", zstophy,zout)
    678656c
    679657         CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s",
    680      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     658     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    681659     .                "ave(X)", zstophy,zout)
    682660c
    683661         CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s",
    684      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     662     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    685663     .                "ave(X)", zstophy,zout)
    686664c
    687665         CALL histdef(nid_mth, "dqphy", "Physics dQ", "(kg/kg)/s",
    688      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     666     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    689667     .                "ave(X)", zstophy,zout)
    690668c
     
    697675           call histdef(nid_mth, "albe_"//clnsurf(nsrf),
    698676     $         "Albedo surf. "//clnsurf(nsrf), "-", 
    699      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     677     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    700678     $         "ave(X)", zstophy,zout)
    701679c
    702680           call histdef(nid_mth, "rugs_"//clnsurf(nsrf),
    703681     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    704      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     682     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    705683     $         "ave(X)", zstophy,zout)
    706684c
    707685         CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day",
    708      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     686     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    709687     .                "ave(X)", zstophy,zout)
    710688c
     
    712690c
    713691         CALL histdef(nid_mth, "albs", "Surface albedo", "-",
    714      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     692     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    715693     .                "ave(X)", zstophy,zout)
    716694         CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-",
    717      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     695     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    718696     .                "ave(X)", zstophy,zout)
    719697c
     
    725703     .                "Convective Cloud Liquid water content"
    726704     .                , "kg/kg",
    727      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     705     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    728706     .                "ave(X)", zstophy,zout)
    729707c
    730708         CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s",
    731      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     709     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    732710     .                "ave(X)", zstophy,zout)
    733711c
    734712         CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s",
    735      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     713     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    736714     .                "ave(X)", zstophy,zout)
    737715c
    738716         CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s",
    739      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     717     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    740718     .                "ave(X)", zstophy,zout)
    741719c
    742720         CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s",
    743      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     721     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    744722     .                "ave(X)", zstophy,zout)
    745723c
    746724         CALL histdef(nid_mth, "dqdyn", "Dynamics dQ", "(kg/kg)/s",
    747      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     725     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    748726     .                "ave(X)", zstophy,zout)
    749727c
    750728         CALL histdef(nid_mth, "dtcon", "Convection dT", "K/s",
    751      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     729     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    752730     .                "ave(X)", zstophy,zout)
    753731c
    754732c        CALL histdef(nid_mth, "ducon", "Convection du", "m/s2",
    755 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     733c    .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    756734c    .                "ave(X)", zstophy,zout)
    757735c
    758736         CALL histdef(nid_mth, "dqcon", "Convection dQ", "(kg/kg)/s",
    759      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     737     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    760738     .                "ave(X)", zstophy,zout)
    761739c
    762740         CALL histdef(nid_mth, "dtlsc", "Condensation dT", "K/s",
    763      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     741     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    764742     .                "ave(X)", zstophy,zout)
    765743c
    766744         CALL histdef(nid_mth, "dtlschr",
    767      $       "Large-scale condensational heating rate", "K/s",iim,jjmp1
    768      $       ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout)
     745     $     "Large-scale condensational heating rate", "K/s",iim,jjphy_nb
     746     $     ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout)
    769747c
    770748         CALL histdef(nid_mth, "dqlsc", "Condensation dQ", "(kg/kg)/s",
    771      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     749     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    772750     .                "ave(X)", zstophy,zout)
    773751c
    774752         CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s",
    775      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     753     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    776754     .                "ave(X)", zstophy,zout)
    777755c
    778756         CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s",
    779      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     757     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    780758     .                "ave(X)", zstophy,zout)
    781759c
    782760         CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s",
    783      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     761     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    784762     .                "ave(X)", zstophy,zout)
    785763c
    786764         CALL histdef(nid_mth, "dqeva","Reevaporation dQ","(kg/kg)/s",
    787      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     765     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    788766     .                "ave(X)", zstophy,zout)
    789767
    790768         CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ",
    791      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     769     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    792770     .                "ave(X)", zstophy,zout)
    793771
    794772         CALL histdef(nid_mth, "ratqs", "RATQS"," ",
    795      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     773     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    796774     .                "ave(X)", zstophy,zout)
    797775
    798776c
    799777         CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s",
    800      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     778     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    801779     .                "ave(X)", zstophy,zout)
    802780
    803781         CALL histdef(nid_mth,"dqajs","Dry adjust. dQ","(kg/kg)/s",
    804      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     782     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    805783     .                "ave(X)", zstophy,zout)
    806784c
    807785         CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s",
    808      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     786     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    809787     .                "ave(X)", zstophy,zout)
    810788c
    811789         CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s",
    812      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     790     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    813791     .                "ave(X)", zstophy,zout)
    814792c
    815793         CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s",
    816      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     794     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    817795     .                "ave(X)", zstophy,zout)
    818796c
    819797         CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s",
    820      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     798     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    821799     .                "ave(X)", zstophy,zout)
    822800c
    823801         CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s",
    824      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     802     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    825803     .                "ave(X)", zstophy,zout)
    826804c
    827805         CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2",
    828      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     806     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    829807     .                "ave(X)", zstophy,zout)
    830808c
    831809         CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2",
    832      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     810     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    833811     .                "ave(X)", zstophy,zout)
    834812c
    835813         IF (ok_orodr) THEN
    836814         CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2",
    837      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     815     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    838816     .                "ave(X)", zstophy,zout)
    839817c
    840818         CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2",
    841      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     819     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    842820     .                "ave(X)", zstophy,zout)
    843821c
     
    846824         IF (ok_orolf) THEN
    847825         CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2",
    848      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     826     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    849827     .                "ave(X)", zstophy,zout)
    850828c
    851829         CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2",
    852      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     830     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    853831     .                "ave(X)", zstophy,zout)
    854832         ENDIF
     
    859837         WRITE(str2,'(i2.2)') iq
    860838         CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-",
    861      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     839     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    862840     .                "ave(X)", zstophy,zout)
    863841         ELSE
     
    875853c
    876854         CALL histdef(nid_mth, "phis", "Surface geop. height", "m",
    877      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     855     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    878856     .                "once",  zstophy,zout)
    879857c
    880858         CALL histdef(nid_mth, "aire", "Grid area", "-",
    881      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     859     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    882860     .                "once",  zstophy,zout)
    883861c
    884862         CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter),
    885863     .         "% "//clnsurf(is_ter), "%", 
    886      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     864     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    887865     .         "once", zstophy,zout)
    888866c
    889867         CALL histdef(nid_mth, "fract_"//clnsurf(is_ter),
    890868     .         "Fraction "//clnsurf(is_ter), "1", 
    891      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     869     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    892870     .         "once", zstophy,zout)
    893871c
    894872         CALL histdef(nid_mth, "pourc_"//clnsurf(is_lic),
    895873     .         "% "//clnsurf(is_lic), "%", 
    896      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     874     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    897875     .         "once", zstophy,zout)
    898876c
    899877         CALL histdef(nid_mth, "fract_"//clnsurf(is_lic),
    900878     .         "Fraction "//clnsurf(is_lic), "1", 
    901      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     879     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    902880     .         "once", zstophy,zout)
    903881c
    904882         CALL histdef(nid_mth, "pourc_"//clnsurf(is_sic),
    905883     .         "% "//clnsurf(is_sic), "%",
    906      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     884     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    907885     .                "ave(X)", zstophy,zout)
    908886c
    909887         CALL histdef(nid_mth, "fract_"//clnsurf(is_sic),
    910888     .         "Fraction "//clnsurf(is_sic), "1",
    911      .         iim,jjmp1,nhori, 1,1,1, -99, 32,
     889     .         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    912890     .                "ave(X)", zstophy,zout)
    913891c
    914892         CALL histdef(nid_mth, "flat", "Latent heat flux", "W/m2",
    915      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     893     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    916894     .                "ave(X)", zstophy,zout)
    917895c
    918896         CALL histdef(nid_mth, "bilTOA",
    919897     .                "Net radiation at TOA", "W/m2",
    920      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     898     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    921899     .                "ave(X)", zstophy,zout)
    922900c
     
    925903c    .                "TOA reflected clear-sky shortwave
    926904c    .                radiation (method 1)", "W/m2",
    927 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     905c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    928906c    .                "ave(X)", zstophy,zout)
    929907c
    930908          CALL histdef(nid_mth, "dtdia","dtdia","K/s",
    931      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     909     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    932910     .                "ave(X)", zstophy,zout)
    933911c
    934912          CALL histdef(nid_mth, "dtsw","dtsw","K/s",
    935      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     913     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    936914     .                "ave(X)", zstophy,zout)
    937915c
    938916          CALL histdef(nid_mth, "dtlw","dtlw","K/s",
    939      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     917     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    940918     .                "ave(X)", zstophy,zout)
    941919c
    942920          CALL histdef(nid_mth, "dtcon","dtcon","K/s",
    943      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     921     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    944922     .                "ave(X)", zstophy,zout)
    945923c
    946924          CALL histdef(nid_mth, "dtajs","dtajs","K/s",
    947      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     925     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    948926     .                "ave(X)", zstophy,zout)
    949927c
    950928          CALL histdef(nid_mth, "dtlsc","dtlsc","K/s",
    951      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     929     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    952930     .                "ave(X)", zstophy,zout)
    953931c
    954932          CALL histdef(nid_mth, "dqdia","dqdia","(kg/kg)/s",
    955      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     933     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    956934     .                "ave(X)", zstophy,zout)
    957935c
    958936          CALL histdef(nid_mth, "duoli",
    959937     .         "duoli","m/s2",
    960      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     938     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    961939     .                "ave(X)", zstophy,zout)
    962940c
    963941          CALL histdef(nid_mth, "dvoli",
    964942     .         "dvoli","m/s2",
    965      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     943     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    966944     .                "ave(X)", zstophy,zout)
    967945c
    968946          CALL histdef(nid_mth, "ducon",
    969947     .         "ducon","m/s2",
    970      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     948     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    971949     .                "ave(X)", zstophy,zout)
    972950c
    973951          CALL histdef(nid_mth, "dvcon",
    974952     .         "dvcon","m/s2",
    975      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     953     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    976954     .                "ave(X)", zstophy,zout)
    977955c
    978956          CALL histdef(nid_mth, "dutot",
    979957     .         "dutot","m/s2",
    980      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     958     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    981959     .                "ave(X)", zstophy,zout)
    982960c
    983961          CALL histdef(nid_mth, "dvtot",
    984962     .         "dvtot","m/s2",
    985      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     963     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    986964     .                "ave(X)", zstophy,zout)
    987965c
    988966c         CALL histdef(nid_mth, "cldtrue",
    989967c    .         "TRUE Cloud fraction ","%",
    990 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     968c    .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    991969c    .         "inst(X)", zout,zout)
    992970c
    993971c         CALL histdef(nid_mth, "cldTOA",
    994972c    .         "Cloud amount (satellite view)","%",
    995 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     973c    .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    996974c    .         "ave(X)", zstophy,zout)
    997975c
    998976c         CALL histdef(nid_mth, "cldSFC",
    999977c    .         "Cloud amount (surface view)","%",
    1000 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     978c    .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    1001979c    .         "ave(X)", zstophy,zout)
    1002980c
    1003981          CALL histdef(nid_mth, "GWDtaux",
    1004982     .         "GWD induced Ewd wind stress","Pa",
    1005      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     983     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    1006984     .         "ave(X)", zstophy,zout)
    1007985c
    1008986          CALL histdef(nid_mth, "GWDtauy",
    1009987     .         "GWD induced Nwd wind stress","Pa",
    1010      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     988     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    1011989     .         "ave(X)", zstophy,zout)
    1012990c
     
    1014992c
    1015993         CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa",
    1016      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     994     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    1017995     .                "ave(X)", zstorad,zout)
    1018996c
    1019997         CALL histdef(nid_mth, "tsol", "Surface Temperature", "K",
    1020      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     998     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    1021999     .                "ave(X)", zstophy,zout)
    10221000c
    10231001         CALL histdef(nid_mth, "t2m", "Temperature 2m", "K",
    1024      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1002     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10251003     .                "ave(X)", zstorad,zout)
    10261004c
    10271005         CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.",
    10281006     .                "K",
    1029      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1007     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10301008     .                t2mincels, zstophy,zout)
    10311009c
    10321010         CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.",
    10331011     .                "K",
    1034      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1012     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10351013     .                t2maxcels, zstophy,zout)
    10361014c
    10371015c        CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature",
    10381016c    .                "K",
    1039 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1017c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10401018c    .                "ave(X)", zstophy,zout)
    10411019c
    10421020         CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s",
    1043      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1021     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10441022     .                "ave(X)", zstorad,zout)
    10451023c
    10461024         CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-",
    1047      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1025     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10481026     .                "ave(X)", zstophy,zout)
    10491027
    10501028c
    10511029         CALL histdef(nid_mth, "q2m","Specific humidity 2m","kg/kg",
    1052      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1030     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10531031     .                "ave(X)", zstorad,zout)
    10541032c
    10551033         CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s",
    1056      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1034     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10571035     .                "ave(X)", zstorad,zout)
    10581036c
    10591037         CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s",
    1060      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1038     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10611039     .                "ave(X)", zstorad,zout)
    10621040c
    10631041         CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa",
    1064      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1042     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10651043     .                "ave(X)", zstorad,zout)
    10661044c
    10671045         CALL histdef(nid_mth, "qsurf","Surface Air humidity","kg/kg",
    1068      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1046     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10691047     .                "ave(X)", zstophy,zout)
    10701048c
    10711049      if (.not. ok_veget) then
    10721050         CALL histdef(nid_mth, "qsol", "Soil watter content", "mm",
    1073      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1051     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10741052     .                "ave(X)", zstophy,zout)
    10751053      endif
     
    10771055         CALL histdef(nid_mth, "ndayrain",
    10781056     .                "Number of day with rain (liq+sol)", "-",
    1079      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1057     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10801058     .                "inst(X)", zstomth,zout)
    10811059c
    10821060         CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol",
    10831061     .                "kg/(s*m2)",
    1084      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1062     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10851063     .                "ave(X)", zstophy,zout)
    10861064c
    10871065         CALL histdef(nid_mth, "plul", "Large-scale Precip.",
    10881066     .   "kg/(s*m2)",
    1089      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1067     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10901068     .                "ave(X)", zstophy,zout)
    10911069c
    10921070         CALL histdef(nid_mth, "pluc", "Convective Precip.",
    10931071     .   "kg/(s*m2)",
    1094      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1072     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10951073     .                "ave(X)", zstophy,zout)
    10961074c
    10971075         CALL histdef(nid_mth, "snowf", "Snow fall", "kg/(s*m2)",
    1098      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1076     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    10991077     .                "ave(X)", zstophy,zout)
    11001078c
    11011079c        CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2",
    1102 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1080c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11031081c    .                "ave(X)", zstophy,zout)
    11041082c
    11051083         CALL histdef(nid_mth, "evap",
    11061084     .                "Evaporation plus sublimation rate", "kg/(s*m2)",
    1107      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1085     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11081086     .                "ave(X)", zstophy,zout)
    11091087c
    11101088         CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2",
    1111      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1089     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11121090     .                "ave(X)", zstophy,zout)
    11131091c
    11141092         CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2",
    1115      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1093     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11161094     .                "ave(X)", zstophy,zout)
    11171095c
    11181096         CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2",
    1119      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1097     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11201098     .                "ave(X)", zstophy,zout)
    11211099c
    11221100         CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2",
    1123      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1101     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11241102     .                "ave(X)", zstophy,zout)
    11251103c
    11261104         CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2",
    1127      .                iim,jjmp1,nhori, 1,1,1,-99,
     1105     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11281106     .                32, "ave(X)", zstophy,zout)
    11291107c
    11301108         CALL histdef(nid_mth, "SWupTOAclr",
    11311109     .                "SWup clear sky at TOA","W/m2",
    1132      .                iim,jjmp1,nhori, 1,1,1,-99,
     1110     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11331111     .                32, "ave(X)", zstophy,zout)
    11341112c
    11351113         CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2",
    1136      .                iim,jjmp1,nhori, 1,1,1,-99,
     1114     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11371115     .                32, "ave(X)", zstophy,zout)
    11381116c
    11391117         CALL histdef(nid_mth, "SWdnTOAclr",
    11401118     .                "SWdn clear sky at TOA","W/m2",
    1141      .                iim,jjmp1,nhori, 1,1,1,-99,
     1119     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11421120     .                32, "ave(X)", zstophy,zout)
    11431121c
    11441122         CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2",
    1145      .                iim,jjmp1,nhori, 1,1,1,-99,
     1123     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11461124     .                32, "ave(X)", zstophy,zout)
    11471125c
    11481126         CALL histdef(nid_mth, "SWup200clr",
    11491127     .                "SWup clear sky at 200mb","W/m2",
    1150      .                iim,jjmp1,nhori, 1,1,1,-99,
     1128     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11511129     .                32, "ave(X)", zstophy,zout)
    11521130c
    11531131         CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2",
    1154      .                iim,jjmp1,nhori, 1,1,1,-99,
     1132     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11551133     .                32, "ave(X)", zstophy,zout)
    11561134c
    11571135         CALL histdef(nid_mth, "SWdn200clr",
    11581136     .                "SWdn clear sky at 200mb","W/m2",
    1159      .                iim,jjmp1,nhori, 1,1,1,-99,
     1137     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11601138     .                32, "ave(X)", zstophy,zout)
    11611139c
    11621140         CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2",
    1163      .                iim,jjmp1,nhori, 1,1,1,-99,
     1141     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11641142     .                32, "ave(X)", zstophy,zout)
    11651143c
    11661144         CALL histdef(nid_mth, "LWup200clr",
    11671145     .                "LWup clear sky at 200mb","W/m2",
    1168      .                iim,jjmp1,nhori, 1,1,1,-99,
     1146     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11691147     .                32, "ave(X)", zstophy,zout)
    11701148c
    11711149         CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2",
    1172      .                iim,jjmp1,nhori, 1,1,1,-99,
     1150     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11731151     .                32, "ave(X)", zstophy,zout)
    11741152c
    11751153         CALL histdef(nid_mth, "LWdn200clr",
    11761154     .                "LWdn clear sky at 200mb","W/m2",
    1177      .                iim,jjmp1,nhori, 1,1,1,-99,
     1155     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    11781156     .                32, "ave(X)", zstophy,zout)
    11791157c
    11801158         CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2",
    1181      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1159     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11821160     .                "ave(X)", zstophy,zout)
    11831161c
    11841162         CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2",
    1185      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1163     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11861164     .                "ave(X)", zstophy,zout)
    11871165c
    11881166         CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2",
    1189      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1167     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11901168     .                "ave(X)", zstophy,zout)
    11911169c
    11921170         CALL histdef(nid_mth, "radsol", "Rayonnement au sol", "W/m2",
    1193      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1171     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11941172     .                "ave(X)", zstophy,zout)
    11951173c
    11961174         CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2",
    1197      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1175     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    11981176     .                "ave(X)", zstophy,zout)
    11991177c
    12001178         CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2",
    1201      .                iim,jjmp1,nhori, 1,1,1,-99,
     1179     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    12021180     .                32, "ave(X)", zstophy,zout)
    12031181c
    12041182         CALL histdef(nid_mth, "SWupSFCclr",
    12051183     .                "SWup clear sky at surface","W/m2",
    1206      .                iim,jjmp1,nhori, 1,1,1,-99,
     1184     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    12071185     .                32, "ave(X)", zstophy,zout)
    12081186c
    12091187         CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2",
    1210      .                iim,jjmp1,nhori, 1,1,1,-99,
     1188     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    12111189     .                32, "ave(X)", zstophy,zout)
    12121190c
    12131191         CALL histdef(nid_mth, "SWdnSFCclr",
    12141192     .                "SWdn clear sky at surface","W/m2",
    1215      .                iim,jjmp1,nhori, 1,1,1,-99,
     1193     .                iim,jjphy_nb,nhori, 1,1,1,-99,
    12161194     .                32, "ave(X)", zstophy,zout)
    12171195c
    12181196         CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface",
    1219      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1197     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12201198     .                "ave(X)", zstophy,zout)
    12211199c
    12221200         CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface",
    1223      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1201     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12241202     .                "ave(X)", zstophy,zout)
    12251203c
    12261204         CALL histdef(nid_mth,"LWupSFCclr",
    12271205     .                "CS Upwd. IR rad. at surface",
    1228      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1206     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12291207     .                "ave(X)", zstophy,zout)
    12301208c
    12311209         CALL histdef(nid_mth,"LWdnSFCclr",
    12321210     .                "Down. CS IR rad. at surface",
    1233      .                "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32,
     1211     .                "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12341212     .                "ave(X)", zstophy,zout)
    12351213c
    12361214         CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2",
    1237      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1215     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12381216     .                "ave(X)", zstophy,zout)
    12391217c
    12401218         CALL histdef(nid_mth, "sens", "Sensible heat flux", "W/m2",
    1241      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1219     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12421220     .                "ave(X)", zstophy,zout)
    12431221c
    12441222         CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2",
    1245      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1223     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12461224     .                "ave(X)", zstophy,zout)
    12471225c
    12481226c          CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa",
    1249 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1227c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12501228c    .                "ave(X)", zstophy,zout)
    12511229c
    12521230c        CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa",
    1253 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1231c    .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12541232c    .                "ave(X)", zstophy,zout)
    12551233c
    12561234         CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting",
    1257      .                "W/m2",iim,jjmp1,nhori, 1,1,1, -99, 32,
     1235     .                "W/m2",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12581236     .                "ave(X)", zstophy,zout)
    12591237c
    12601238         CALL histdef(nid_mth, "fqcalving","Ice Calving",
    1261      .                "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32,
     1239     .                "kg/m2/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12621240     .                "ave(X)", zstophy,zout)
    12631241c
     
    12651243           call histdef(nid_mth, "taux_"//clnsurf(nsrf),
    12661244     $         "Zonal wind stress"//clnsurf(nsrf), "Pa", 
    1267      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1245     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12681246     $         "ave(X)", zstophy,zout)
    12691247
    12701248           call histdef(nid_mth, "tauy_"//clnsurf(nsrf),
    12711249     $         "Meridional wind stress "//clnsurf(nsrf), "Pa", 
    1272      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1250     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12731251     $         "ave(X)", zstophy,zout)
    12741252         ENDDO
     
    12761254           call histdef(nid_mth, "pourc_"//clnsurf(is_oce),
    12771255     $         "% "//clnsurf(is_oce), "%", 
    1278      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1256     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12791257     $         "ave(X)", zstophy,zout)
    12801258c
    12811259           call histdef(nid_mth, "fract_"//clnsurf(is_oce),
    12821260     $         "Fraction "//clnsurf(is_oce), "1", 
    1283      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1261     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12841262     $         "ave(X)", zstophy,zout)
    12851263C
     
    12881266           call histdef(nid_mth, "tsol_"//clnsurf(nsrf),
    12891267     $         "Temperature "//clnsurf(nsrf), "K", 
    1290      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1268     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12911269     $         "ave(X)", zstophy,zout)
    12921270C
    12931271           call histdef(nid_mth, "sens_"//clnsurf(nsrf),
    12941272     $         "Sensible heat flux "//clnsurf(nsrf), "W/m2", 
    1295      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1273     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    12961274     $         "ave(X)", zstophy,zout)
    12971275c
    12981276           call histdef(nid_mth, "lat_"//clnsurf(nsrf),
    12991277     $         "Latent heat flux "//clnsurf(nsrf), "W/m2", 
    1300      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1278     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13011279     $         "ave(X)", zstophy,zout)
    13021280C
    13031281           call histdef(nid_mth, "flw_"//clnsurf(nsrf),
    13041282     $         "LW "//clnsurf(nsrf), "W/m2",
    1305      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1283     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13061284     $         "ave(X)", zstophy,zout)
    13071285c
    13081286           call histdef(nid_mth, "fsw_"//clnsurf(nsrf),
    13091287     $         "SW "//clnsurf(nsrf), "W/m2",
    1310      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1288     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13111289     $         "ave(X)", zstophy,zout)
    13121290C
    13131291           call histdef(nid_mth, "wbils_"//clnsurf(nsrf),
    13141292     $         "Bilan sol "//clnsurf(nsrf), "W/m2",
    1315      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1293     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13161294     $         "ave(X)", zstophy,zout)
    13171295C
    13181296           call histdef(nid_mth, "wbilo_"//clnsurf(nsrf),
    13191297     $         "Bilan eau "//clnsurf(nsrf), "kg/(m2*s)",
    1320      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1298     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13211299     $         "ave(X)", zstophy,zout)
    13221300C
     
    13261304           call histdef(nid_mth, "evapour_"//clnsurf(nsrf),
    13271305     $         "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)",
    1328      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1306     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13291307     $         "ave(X)", zstophy,zout)
    13301308C
    13311309           call histdef(nid_mth, "prepour_"//clnsurf(nsrf),
    13321310     $         "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)",
    1333      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1311     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13341312     $         "ave(X)", zstophy,zout)
    13351313C
     
    13401318c
    13411319         CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-",
    1342      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1320     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13431321     .                "ave(X)", zstophy,zout)
    13441322c
    13451323         CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-",
    1346      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1324     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13471325     .                "ave(X)", zstophy,zout)
    13481326c
    13491327         CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-",
    1350      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1328     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13511329     .                "ave(X)", zstophy,zout)
    13521330c
    13531331         CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-",
    1354      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1332     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13551333     .                "ave(X)", zstophy,zout)
    13561334c
    13571335         CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-",
    1358      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1336     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13591337     .                "ave(X)", zstophy,zout)
    13601338c
    13611339         CALL histdef(nid_mth, "cldt", "Total cloudiness", "%",
    1362      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1340     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13631341     .                "ave(X)", zstophy,zout)
    13641342c
    13651343         CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2",
    1366      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1344     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13671345     .                "ave(X)", zstophy,zout)
    13681346c
    13691347         CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2",
    1370      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1348     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13711349     .                "ave(X)", zstophy,zout)
    13721350c
    13731351         CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2",
    1374      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1352     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13751353     .                "ave(X)", zstophy,zout)
    13761354c
    13771355         CALL histdef(nid_mth, "ue", "Zonal energy transport", "-",
    1378      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1356     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13791357     .                "ave(X)", zstophy,zout)
    13801358c
    13811359         CALL histdef(nid_mth, "ve", "Merid energy transport", "-",
    1382      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1360     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13831361     .                "ave(X)", zstophy,zout)
    13841362c
    13851363         CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-",
    1386      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1364     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13871365     .                "ave(X)", zstophy,zout)
    13881366c
    13891367         CALL histdef(nid_mth, "vq", "Merid humidity transport", "-",
    1390      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1368     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13911369     .                "ave(X)", zstophy,zout)
    13921370cKE43
     
    13941372c
    13951373         CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg",
    1396      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1374     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    13971375     .                "ave(X)", zstophy,zout)
    13981376c
    13991377         CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb",
    1400      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1378     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14011379     .                "ave(X)", zstophy,zout)
    14021380c
    14031381         CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb",
    1404      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1382     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14051383     .                "ave(X)", zstophy,zout)
    14061384c
    14071385         CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s",
    1408      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1386     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14091387     .                "ave(X)", zstophy,zout)
    14101388c
    14111389         CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2",
    1412      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1390     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14131391     .                "ave(X)", zstophy,zout)
    14141392c
    14151393         CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s",
    1416      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1394     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    14171395     .                "ave(X)", zstophy,zout)
    14181396c
     
    14231401c HBTM2
    14241402         CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m",
    1425      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1403     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14261404     .                "ave(X)", zstophy,zout)
    14271405         CALL histdef(nid_mth, "s_pblt", "T at Boundary Layer Height",
    14281406     .                "K",
    1429      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1407     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14301408     .                "ave(X)", zstophy,zout)
    14311409         CALL histdef(nid_mth, "s_lcl", "Condensation level", "m",
    1432      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1410     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14331411     .                "ave(X)", zstophy,zout)
    14341412         CALL histdef(nid_mth,"s_capCL","Conv avlbl pot ener for ABL",
    14351413     .                "J/m2",
    1436      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1414     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14371415     .                "ave(X)", zstophy,zout)
    14381416         CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2",
    1439      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1417     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14401418     .                "ave(X)", zstophy,zout)
    14411419         CALL histdef(nid_mth,"s_cteiCL","Instability criteria (ABL)",
    14421420     .                "K",
    1443      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1421     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14441422     .                "ave(X)", zstophy,zout)
    14451423         CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K",
    1446      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1424     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14471425     .                "ave(X)", zstophy,zout)
    14481426         CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2",
    1449      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1427     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14501428     .                "ave(X)", zstophy,zout)
    14511429         CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2",
    1452      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1430     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14531431     .                "ave(X)", zstophy,zout)
    14541432         CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m",
    1455      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1433     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14561434     .                "ave(X)", zstophy,zout)
    14571435c
     
    14751453          CALL histdef(nid_mth, "u"//bb2,
    14761454     .                 "Zonal wind "//bb2//"mb","m/s",
    1477      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1455     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14781456     .                "inst(X)", zout,zout)
    14791457c
    14801458          CALL histdef(nid_mth, "v"//bb2,
    14811459     .                 "Meridional wind "//bb2//"mb","m/s",
    1482      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1460     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14831461     .                "inst(X)", zout,zout)
    14841462c
    14851463          CALL histdef(nid_mth, "w"//bb2,
    14861464     .                 "Vertical wind "//bb2//"mb","m/s",
    1487      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1465     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14881466     .                "inst(X)", zout,zout)
    14891467c
    14901468          CALL histdef(nid_mth, "phi"//bb2,
    14911469     .                 "Geopotential "//bb2//"mb","m",
    1492      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1470     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    14931471     .                "inst(X)", zout,zout)
    14941472c
     
    15021480       CALL histdef(nid_mth, "fluxo",
    15031481     .              "Flux turbulents ocean-atmosphere", "W/m2",
    1504      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1482     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15051483     .              "ave(X)", zstophy,zout)
    15061484c
    15071485       CALL histdef(nid_mth, "fluxg",
    15081486     .              "Flux turbulents ocean-glace de mer","W/m2",
    1509      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1487     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15101488     .              "ave(X)", zstophy,zout)
    15111489c
    15121490       CALL histdef(nid_mth, "t_oce_sic",
    15131491     .              "Temp. mixte oce-sic","K",
    1514      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1492     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15151493     .              "ave(X)", zstophy,zout)
    15161494c
     
    15191497        CALL histdef(nid_mth, "lmt_bils",
    15201498     .       "Bilan au sol atmosphere forcee", "W/m2",
    1521      .       iim,jjmp1,nhori, 1,1,1, -99, 32,
     1499     .       iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15221500     .       "ave(X)", zstophy,zout)
    15231501c
     
    15261504        CALL histdef(nid_mth, "slab_bils",
    15271505     .              "Bilan au sol Slab", "W/m2",
    1528      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1506     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15291507     .              "ave(X)", zstophy,zout)
    15301508c
    15311509        CALL histdef(nid_mth, "tslab", "Slab SST ", "K",
    1532      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1510     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15331511     .              "ave(X)", zstophy,zout)
    15341512c
    15351513        CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2",
    1536      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1514     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15371515     .              "ave(X)", zstophy,zout)
    15381516c
    15391517        CALL histdef(nid_mth, "siceh", "Slab seaice height", "m",
    1540      .              iim,jjmp1,nhori, 1,1,1, -99, 32,
     1518     .              iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    15411519     .              "ave(X)", zstophy,zout)
    15421520c
     
    15521530         CALL histdef(nid_mth,"lwcon","Cloud liquid water content",
    15531531     .                "kg/kg",
    1554      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     1532     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    15551533     .                "ave(X)", zstophy,zout)
    15561534c
    15571535         CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg",
    1558      .                iim,jjmp1,nhori, klev,1,klev, nvert, 32,
     1536     .                iim,jjphy_nb,nhori, klev,1,klev, nvert, 32,
    15591537     .                "ave(X)", zstophy,zout)
    15601538c
    15611539         CALL histdef(nid_mth, "temp", "Air temperature", "K",
    1562      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1540     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15631541     .                "ave(X)", zstophy,zout)
    15641542c
    15651543         CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg",
    1566      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1544     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15671545     .                "ave(X)", zstophy,zout)
    15681546c
    15691547c        CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg",
    1570 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1548c    .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15711549c    .                "ave(X)", zstophy,zout)
    15721550c
    15731551         CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2",
    1574      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1552     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15751553     .                "ave(X)", zstophy,zout)
    15761554c
    15771555         CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s",
    1578      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1556     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15791557     .                "ave(X)", zstophy,zout)
    15801558c
    15811559         CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s",
    1582      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1560     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15831561     .                "ave(X)", zstophy,zout)
    15841562c
    15851563         CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s",
    1586      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1564     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15871565     .                "ave(X)", zstophy,zout)
    15881566c
    15891567         CALL histdef(nid_mth, "pres", "Air pressure", "Pa",
    1590      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1568     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15911569     .                "ave(X)", zstophy,zout)
    15921570c
    15931571        CALL histdef(nid_mth, "rneb", "Cloud fraction", "%",
    1594      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1572     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    15951573     .                "ave(X)", zstophy,zout)
    15961574c
    15971575         CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction"
    15981576     .                , "-",
    1599      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1577     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16001578     .                "ave(X)", zstophy,zout)
    16011579c
    16021580         CALL histdef(nid_mth, "rhum", "Relative humidity", "-",
    1603      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1581     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16041582     .                "ave(X)", zstophy,zout)
    16051583c
    16061584         CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv",
    1607      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1585     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16081586     .                "ave(X)", zstophy,zout)
    16091587c
    16101588         CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s",
    1611      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1589     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16121590     .                "ave(X)", zstophy,zout)
    16131591c
    16141592         CALL histdef(nid_mth, "dqphy","Physics dQ","(kg/kg)/s",
    1615      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1593     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16161594     .                "ave(X)", zstophy,zout)
    16171595c
     
    16241602           call histdef(nid_mth, "albe_"//clnsurf(nsrf),
    16251603     $         "Albedo surf. "//clnsurf(nsrf), "-", 
    1626      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1604     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    16271605     $         "ave(X)", zstophy,zout)
    16281606c
    16291607           call histdef(nid_mth, "rugs_"//clnsurf(nsrf),
    16301608     $         "Rugosite "//clnsurf(nsrf), "m", 
    1631      $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     1609     $         iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    16321610     $         "ave(X)", zstophy,zout)
    16331611c
    16341612         CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day",
    1635      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1613     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    16361614     .                "ave(X)", zstophy,zout)
    16371615c
     
    16391617c
    16401618         CALL histdef(nid_mth, "albs", "Surface albedo", "-",
    1641      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1619     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    16421620     .                "ave(X)", zstophy,zout)
    16431621         CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-",
    1644      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     1622     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    16451623     .                "ave(X)", zstophy,zout)
    16461624c
     
    16521630     .                "Convective Cloud Liquid water content"
    16531631     .                , "kg/kg",
    1654      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1632     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16551633     .                "ave(X)", zstophy,zout)
    16561634c
    16571635         CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s",
    1658      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1636     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16591637     .                "ave(X)", zstophy,zout)
    16601638c
    16611639         CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s",
    1662      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1640     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16631641     .                "ave(X)", zstophy,zout)
    16641642c
    16651643         CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s",
    1666      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1644     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16671645     .                "ave(X)", zstophy,zout)
    16681646c
    16691647         CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s",
    1670      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1648     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16711649     .                "ave(X)", zstophy,zout)
    16721650c
    16731651         CALL histdef(nid_mth, "dqdyn","Dynamics dQ","(kg/kg)/s",
    1674      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1652     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16751653     .                "ave(X)", zstophy,zout)
    16761654c
    16771655         CALL histdef(nid_mth, "dqcon","Convection dQ","(kg/kg)/s",
    1678      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1656     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16791657     .                "ave(X)", zstophy,zout)
    16801658c
    16811659         CALL histdef(nid_mth, "dtlschr",
    1682      $       "Large-scale condensational heating rate", "K/s",iim,jjmp1
     1660     $       "Large-scale condensational heating rate", "K/s",
     1661     $       iim,jjphy_nb
    16831662     $       ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout)
    16841663c
    16851664         CALL histdef(nid_mth, "dqlsc","Condensation dQ","(kg/kg)/s",
    1686      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1665     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16871666     .                "ave(X)", zstophy,zout)
    16881667c
    16891668         CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s",
    1690      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1669     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16911670     .                "ave(X)", zstophy,zout)
    16921671c
    16931672         CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s",
    1694      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1673     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16951674     .                "ave(X)", zstophy,zout)
    16961675c
    16971676         CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s",
    1698      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1677     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    16991678     .                "ave(X)", zstophy,zout)
    17001679c
    17011680         CALL histdef(nid_mth,"dqeva","Reevaporation dQ","(kg/kg)/s",
    1702      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1681     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17031682     .                "ave(X)", zstophy,zout)
    17041683
    17051684         CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ",
    1706      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1685     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17071686     .                "ave(X)", zstophy,zout)
    17081687
    17091688         CALL histdef(nid_mth, "ratqs", "RATQS"," ",
    1710      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1689     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17111690     .                "ave(X)", zstophy,zout)
    17121691
    17131692c
    17141693         CALL histdef(nid_mth, "dqajs","Dry adjust. dQ","(kg/kg)/s",
    1715      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1694     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17161695     .                "ave(X)", zstophy,zout)
    17171696c
    17181697         CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s",
    1719      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1698     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17201699     .                "ave(X)", zstophy,zout)
    17211700c
    17221701         CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s",
    1723      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1702     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17241703     .                "ave(X)", zstophy,zout)
    17251704c
    17261705         CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s",
    1727      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1706     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17281707     .                "ave(X)", zstophy,zout)
    17291708c
    17301709         CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s",
    1731      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1710     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17321711     .                "ave(X)", zstophy,zout)
    17331712c
    17341713         CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s",
    1735      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1714     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17361715     .                "ave(X)", zstophy,zout)
    17371716c
    17381717         CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2",
    1739      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1718     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17401719     .                "ave(X)", zstophy,zout)
    17411720c
    17421721         CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2",
    1743      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1722     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17441723     .                "ave(X)", zstophy,zout)
    17451724c
    17461725         IF (ok_orodr) THEN
    17471726         CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2",
    1748      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1727     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17491728     .                "ave(X)", zstophy,zout)
    17501729c
    17511730         CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2",
    1752      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1731     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17531732     .                "ave(X)", zstophy,zout)
    17541733c
     
    17571736         IF (ok_orolf) THEN
    17581737         CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2",
    1759      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1738     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17601739     .                "ave(X)", zstophy,zout)
    17611740c
    17621741         CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2",
    1763      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1742     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17641743     .                "ave(X)", zstophy,zout)
    17651744         ENDIF
     
    17691748         iiq=niadv(iq)
    17701749         CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",
    1771      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     1750     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    17721751     .                "ave(X)", zstophy,zout)
    17731752         ENDDO
     
    17831762         ndex3d = 0
    17841763c
     1764c$OMP END MASTER
    17851765      ENDIF ! fin de test sur ok_mensuel
  • LMDZ4/trunk/libf/phylmd/ini_histmthNMC.h

    r684 r766  
    44      IF (ok_mensuel) THEN
    55c
     6c$OMP MASTER
     7
    68       zstophy = dtime
    79       zstohf = ecrit_hf
     
    1214         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    1315c
    14          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
    15          DO i = 1, iim
    16             zx_lon(i,1) = rlon(i+1)
    17             zx_lon(i,jjmp1) = rlon(i+1)
    18          ENDDO
     16cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)
     17cym         DO i = 1, iim
     18cym            zx_lon(i,1) = rlon(i+1)
     19cym            zx_lon(i,jjmp1) = rlon(i+1)
     20cym         ENDDO
    1921         DO ll=1,klev
    2022            znivsig(ll)=float(ll)
    2123         ENDDO
    22          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
    23          CALL histbeg("histNMC.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
    24      .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     24cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)
     25cym         CALL histbeg("histNMC.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:),
     26cym     .                 1,iim,1,jjmp1, itau_phy, zjulian, dtime,
     27cym     .                 nhori, nid_nmc)
     28
     29         CALL histbeg_phy("histNMC",itau_phy, zjulian, dtime,
    2530     .                 nhori, nid_nmc)
    2631c
     
    3439          CALL histdef(nid_nmc, "temp",
    3540     .                 "Temperature","K",
    36      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     41     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    3742     .                "inst(X)", zout,zout)
    3843c
    3944         CALL histdef(nid_nmc, "phi",
    4045     .                "Geopotential", "m",
    41      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     46     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    4247     .                "inst(X)", zout,zout)
    4348c
    4449          CALL histdef(nid_nmc, "q",
    4550     .                 "Specific humidity","kg/kg",
    46      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     51     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    4752     .                "inst(X)", zout,zout)
    4853c
    4954         CALL histdef(nid_nmc, "rh",
    5055     .                 "Relative humidity", "%",
    51      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     56     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    5257     .                "inst(X)", zout,zout)
    5358c
    5459          CALL histdef(nid_nmc, "u",
    5560     .                 "Zonal wind","m/s",
    56      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     61     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    5762     .                "inst(X)", zout,zout)
    5863c
    5964          CALL histdef(nid_nmc, "v",
    6065     .                 "Meridional wind","m/s",
    61      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     66     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    6267     .                "inst(X)", zout,zout)
    6368c
     
    7378          CALL histdef(nid_nmc, "temp",
    7479     .                 "Temperature","K",
    75      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     80     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    7681     .                "inst(X)", zout,zout)
    7782c
    7883         CALL histdef(nid_nmc, "phi",
    7984     .                "Geopotential ", "m",
    80      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     85     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    8186     .                "inst(X)", zout,zout)
    8287c
    8388          CALL histdef(nid_nmc, "q",
    8489     .                 "Specific humidity","kg/kg",
    85      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     90     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    8691     .                "inst(X)", zout,zout)
    8792c
    8893         CALL histdef(nid_nmc, "rh",
    8994     .                 "Relative humidity", "%",
    90      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     95     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    9196     .                "inst(X)", zout,zout)
    9297c
    9398          CALL histdef(nid_nmc, "u",
    9499     .                 "Zonal wind","m/s",
    95      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     100     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    96101     .                "inst(X)", zout,zout)
    97102c
    98103          CALL histdef(nid_nmc, "v",
    99104     .                 "Meridional wind","m/s",
    100      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     105     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    101106     .                "inst(X)", zout,zout)
    102107c
    103108          CALL histdef(nid_nmc, "w",
    104109     .                 "Vertical motion","Pa/s",
    105      .                iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     110     .                iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    106111     .                "inst(X)", zout,zout)
    107112c
     
    116121          CALL histdef(nid_nmc, "psbg",
    117122     .         "Pressure sfce below ground","%",
    118      .         iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     123     .         iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    119124     .         "inst(X)", zout,zout)
    120125c
    121126          CALL histdef(nid_nmc, "uv",
    122127     .         "uv ",
    123      .         "m2/s2",iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,
     128     .         "m2/s2",iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32,
    124129     .         "inst(X)", zout,zout)
    125130c
    126131          CALL histdef(nid_nmc, "vq",
    127132     .         "vq ",
    128      .         "m/s * (kg/kg)",iim,jjmp1,nhori,
     133     .         "m/s * (kg/kg)",iim,jjphy_nb,nhori,
    129134     .          nlevSTD,1,nlevSTD, nvert, 32,
    130135     .         "inst(X)", zout,zout)
     
    132137          CALL histdef(nid_nmc, "vT",
    133138     .         "vT ",
    134      .         "mK/s",iim,jjmp1,nhori,
     139     .         "mK/s",iim,jjphy_nb,nhori,
    135140     .          nlevSTD,1,nlevSTD, nvert, 32,
    136141     .         "inst(X)", zout,zout)
     
    138143          CALL histdef(nid_nmc, "wq",
    139144     .         "wq ",
    140      .         "(Pa/s)*(kg/kg)",iim,jjmp1,nhori,
     145     .         "(Pa/s)*(kg/kg)",iim,jjphy_nb,nhori,
    141146     .          nlevSTD,1,nlevSTD, nvert, 32,
    142147     .         "inst(X)", zout,zout)
     
    144149          CALL histdef(nid_nmc, "vphi",
    145150     .         "vphi ",
    146      .         "m2/s",iim,jjmp1,nhori,
     151     .         "m2/s",iim,jjphy_nb,nhori,
    147152     .          nlevSTD,1,nlevSTD, nvert, 32,
    148153     .         "inst(X)", zout,zout)
     
    150155          CALL histdef(nid_nmc, "wT",
    151156     .         "wT ",
    152      .         "K*Pa/s",iim,jjmp1,nhori,
     157     .         "K*Pa/s",iim,jjphy_nb,nhori,
    153158     .          nlevSTD,1,nlevSTD, nvert, 32,
    154159     .         "inst(X)", zout,zout)
     
    156161          CALL histdef(nid_nmc, "uxu",
    157162     .         "u2 ",
    158      .         "m2/s2",iim,jjmp1,nhori,
     163     .         "m2/s2",iim,jjphy_nb,nhori,
    159164     .          nlevSTD,1,nlevSTD, nvert, 32,
    160165     .         "inst(X)", zout,zout)
     
    162167          CALL histdef(nid_nmc, "vxv",
    163168     .         "v2 ",
    164      .         "m2/s2",iim,jjmp1,nhori,
     169     .         "m2/s2",iim,jjphy_nb,nhori,
    165170     .          nlevSTD,1,nlevSTD, nvert, 32,
    166171     .         "inst(X)", zout,zout)
     
    168173          CALL histdef(nid_nmc, "TxT",
    169174     .         "T2 ",
    170      .         "K2",iim,jjmp1,nhori,
     175     .         "K2",iim,jjphy_nb,nhori,
    171176     .          nlevSTD,1,nlevSTD, nvert, 32,
    172177     .         "inst(X)", zout,zout)
     
    176181         CALL histend(nid_nmc)
    177182c
     183c$OMP END MASTER
     184
    178185      ENDIF ! fin de test sur ok_mensuel
  • LMDZ4/trunk/libf/phylmd/ini_histrac.h

    r684 r766  
    22! $Header$
    33!
     4#ifndef INCA
     5c$OMP MASTER
    46         CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
    57c
    6          CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlon,zx_lon)
    7          DO i = 1, iim
    8             zx_lon(i,1) = xlon(i+1)
    9             zx_lon(i,jjm+1) = xlon(i+1)
    10          ENDDO
    11          CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlat,zx_lat)
    12          CALL histbeg("histrac", iim,zx_lon(:,1), jjm+1,zx_lat(1,:),
    13      .                 1,iim,1,jjm+1, itau_phy, zjulian, pdtphys,
     8cym         CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlon,zx_lon)
     9cym         DO i = 1, iim
     10cym            zx_lon(i,1) = xlon(i+1)
     11cym            zx_lon(i,jjm+1) = xlon(i+1)
     12cym         ENDDO
     13cym         CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlat,zx_lat)
     14cym         CALL histbeg("histrac", iim,zx_lon(:,1), jjm+1,zx_lat(1,:),
     15cym     .                 1,iim,1,jjm+1, itau_phy, zjulian, pdtphys,
     16cym     .                 nhori, nid_tra)
     17         CALL histbeg_phy("histrac", itau_phy, zjulian, pdtphys,
    1418     .                 nhori, nid_tra)
    1519         CALL histvert(nid_tra, "presnivs", "Vertical levels", "mb",
    1620     .                 klev, presnivs, nvert)
    1721
    18 #ifdef INCA_AER
    19          CALL histbeg("histrac_aer", iim,zx_lon(:,1), jjm+1,zx_lat(1,:),
    20      .                 1,iim,1,jjm+1,  itau_phy, zjulian, pdtphys,
    21      .                 nhori, nid_tra2)
    22 
    23          CALL histbeg("histrac_inst", iim,zx_lon, jjm+1,zx_lat,
    24      .                 1,iim,1,jjm+1,  itau_phy, zjulian, pdtphys,
    25      .                 nhori, nid_tra3)
    26 
    27          call histvert(nid_tra2, "presnivs", "Vertical levels", "mb",
    28      .                 klev, presnivs, nvert)
    29          call histvert(nid_tra3, "presnivs", "presnivs", "mb",
    30      .                 klev, presnivs, nvert)
    31 #endif
    3222
    3323
    3424         zsto = pdtphys
    35          zout = ecrit_tra
     25         zout = pdtphys * FLOAT(ecrit_tra)
    3626c
    3727         CALL histdef(nid_tra, "phis", "Surface geop. height", "-",
    38      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
     28     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    3929     .                "once",  zsto,zout)
    4030c
    4131         CALL histdef(nid_tra, "aire", "Grid area", "-",
    42      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
     32     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
    4333     .                "once",  zsto,zout)
    44 #ifdef INCA
    45          CALL histdef(nid_tra, "ps", "Surface pressure", "Pa",
    46      .                iim,jjm+1,nhori, 1,1,1,-99, 32,
    47      .                "ave(X)", zsto,zout)
    48 
    49          CALL histdef(nid_tra, "ptrop", "Tropopause pressure", "Pa",
    50      .                iim,jjm+1,nhori, 1,1,1,-99, 32,
    51      .                "ave(X)", zsto,zout)
    52 
    53 C   3d FIELDS
    54          CALL histdef(nid_tra, "temp", "Air temperature", "K",
    55      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    56      .                "ave(X)", zsto,zout)
    57 
    58          CALL histdef(nid_tra, "u", "zonal wind component", "m/s",
    59      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    60      .                "ave(X)", zsto,zout)
    61 
    62          CALL histdef(nid_tra, "v", "zonal wind component", "m/s",
    63      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    64      .                "ave(X)", zsto,zout)
    65 
    66          CALL histdef(nid_tra, "h2o", "Specific Humidity", "MMR",
    67      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    68      .                "ave(X)", zsto,zout)
    69 
    70          CALL histdef(nid_tra, "pmid", "Pressure", "Pa",
    71      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    72      .                "ave(X)", zsto,zout)
    73 
    74          CALL histdef(nid_tra, "pdel", "Delta Pressure", "Pa",
    75      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    76      .                "ave(X)", zsto,zout)
    77 
    78 ! MS info
    79 #ifdef INCA_AER
    80          CALL histdef(nid_tra, "airm", "Air mass", "kg",
    81      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    82      .                "ave(X)", zsto,zout)
    83 #endif
    84 #ifdef INCA
    85 #ifdef INCAINFO
    86 
    87 #ifdef INCA_CH4
    88          DO it=1, phtcnt
    89          WRITE(str2,'(i2.2)') it
    90          CALL histdef(nid_tra, "j"//str2,"j"//str2, "CM-3 S-1",
    91      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    92      .                "ave(X)", zsto,zout)
    93          ENDDO
    94          DO it=1, hetcnt
    95          WRITE(str2,'(i2.2)') it
    96          CALL histdef(nid_tra, "w"//str2,"w"//str2, "S-1",
    97      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    98      .                "ave(X)", zsto,zout)
    99          ENDDO
    100          DO it=1, extcnt
    101          WRITE(str2,'(i2.2)') it
    102          CALL histdef(nid_tra, "ext"//str2,"ext"//str2, "CM-3 S-1",
    103      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    104      .                "ave(X)", zsto,zout)
    105          ENDDO
    106 #endif
    107 #ifdef INCA_NMHC
    108          DO it=1, phtcnt
    109          WRITE(str2,'(i2.2)') it
    110          CALL histdef(nid_tra, "j"//str2,"j"//str2, "CM-3 S-1",
    111      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    112      .                "ave(X)", zsto,zout)
    113          ENDDO
    114          DO it=1, hetcnt
    115          WRITE(str2,'(i2.2)') it
    116          CALL histdef(nid_tra, "w"//str2,"w"//str2, "S-1",
    117      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    118      .                "ave(X)", zsto,zout)
    119          ENDDO
    120          DO it=1, extcnt
    121          WRITE(str2,'(i2.2)') it
    122          CALL histdef(nid_tra, "ext"//str2,"ext"//str2, "CM-3 S-1",
    123      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    124      .                "ave(X)", zsto,zout)
    125          ENDDO
    126 #endif
    127          DO it=1, nfs
    128          WRITE(str2,'(i2.2)') it
    129          CALL histdef(nid_tra, "INV"//str2, "INV"//str2, "CM-3",
    130      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    131      .                "ave(X)", zsto,zout)
    132          ENDDO
    133 
    134 #else
    135 
    136 #ifdef INCA_NMHC
    137          CALL histdef(nid_tra, "jO3","jO3", "CM-3 S-1",
    138      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    139      .                "ave(X)", zsto,zout)
    140          CALL histdef(nid_tra, "jNO2","jNO2", "CM-3 S-1",
    141      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    142      .                "ave(X)", zsto,zout)
    143          CALL histdef(nid_tra, "jH2O2","jH2O2", "CM-3 S-1",
    144      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    145      .                "ave(X)", zsto,zout)
    146          CALL histdef(nid_tra, "wHNO3","wHNO3", "S-1",
    147      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    148      .                "ave(X)", zsto,zout)
    149          CALL histdef(nid_tra, "kN2O5", "kN2O5","CM-3 S-1",
    150      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    151      .                "ave(X)", zsto,zout)
    152          CALL histdef(nid_tra, "LghtNO","LghtNO", "CM-3 S-1",
    153      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    154      .                "ave(X)", zsto,zout)
    155 #endif
    156 #ifdef INCA_CH4
    157          CALL histdef(nid_tra, "jO3","jO3", "CM-3 S-1",
    158      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    159      .                "ave(X)", zsto,zout)
    160          CALL histdef(nid_tra, "jNO2","jNO2", "CM-3 S-1",
    161      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    162      .                "ave(X)", zsto,zout)
    163          CALL histdef(nid_tra, "jH2O2","jH2O2", "CM-3 S-1",
    164      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    165      .                "ave(X)", zsto,zout)
    166          CALL histdef(nid_tra, "wHNO3","wHNO3", "S-1",
    167      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    168      .                "ave(X)", zsto,zout)
    169          CALL histdef(nid_tra, "kN2O5", "kN2O5","CM-3 S-1",
    170      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    171      .                "ave(X)", zsto,zout)
    172          CALL histdef(nid_tra, "LghtNO","LghtNO", "CM-3 S-1",
    173      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    174      .                "ave(X)", zsto,zout)
    175 #endif
    176 #endif
    177 
    178 !         DO it=1, grpcnt
    179 !         CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",
    180 !     .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    181 !     .                "ave(X)", zsto,zout)
    182 !         ENDDO
    183 #endif
    184 
    185 #ifdef INCA_AER
    186 
    187         CALL histdef(nid_tra2, "scavcoef_st","scavcoef_st", "S-1",
    188      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    189      .                "ave(X)", zsto,zout)
    190         CALL histdef(nid_tra2, "scavcoef_cv","scavcoef_cv", "S-1",
    191      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    192      .                "ave(X)", zsto,zout)
    193         CALL histdef(nid_tra2, "AngstroemComp","AngstroemComp",
    194      .      "angs comp", iim,jjm+1,nhori, 1,1,1, -99, 32,
    195      .      "ave(X)", zsto,zout)
    196 
    197         CALL histdef(nid_tra2, "TOTAERH2O", "Total aerosol water",
    198      .      "kg/m2", iim,jjm+1,nhori, klev,1,klev, nvert, 32,
    199      .      "ave(X)", zsto,zout)
    200 #endif
    201 #endif
    20234         DO it=1,nqmax
    20335C champ 2D
    204 #ifdef INCA
    205          IF ( prt_flag_ts(it) == 0 ) CYCLE
    206          CALL histdef(nid_tra, "Emi_"//solsym(it), "Emi_"//solsym(it),
    207      .           "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    208      .           "ave(X)", zsto,zout)
    209          CALL histdef(nid_tra, "Dep_"//solsym(it), "Dep_"//solsym(it),
    210      .           "cm/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    211      .           "ave(X)", zsto,zout)
    212 #ifdef INCA_AER
    213 
    214          CALL histdef(nid_tra2, "Dry_"//solsym(it), "Dry_"//solsym(it),
    215      .           "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    216      .           "ave(X)", zsto,zout)
    217          
    218         IF  ((it .ge. trmx) .and. (it .le. trnx)) then
    219           CALL histdef(nid_tra2, "Sed_"//solsym(it), "Sed_"//solsym(it),
    220      .      "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    221      .      "ave(X)", zsto,zout)
    222           CALL histdef(nid_tra2, "Wet_"//solsym(it), "Wet_"//solsym(it),
    223      .      "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    224      .      "ave(X)", zsto,zout)
    225           CALL histdef(nid_tra2, "WetST_"//solsym(it), "WetST_"//solsym(it),
    226      .      "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    227      .      "ave(X)", zsto,zout)
    228           CALL histdef(nid_tra2, "WetCV_"//solsym(it), "WetCV_"//solsym(it),
    229      .      "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,
    230      .      "ave(X)", zsto,zout)
    231           CALL histdef(nid_tra2, "Emi_alt_"//solsym(it), "Emi_alt_"//solsym(it),
    232      .      "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    233      .      "ave(X)", zsto,zout)
    234           CALL histdef(nid_tra2, "Load_"//solsym(it), "Load_"//solsym(it),
    235      .      "kg/m2", iim,jjm+1,nhori, 1,1,1, -99, 32,
    236      .      "ave(X)", zsto,zout)
    237           CALL histdef(nid_tra2, "SConc_"//solsym(it), "SConc_"//solsym(it),
    238      .      "kg/m3", iim,jjm+1,nhori, 1,1,1, -99, 32,
    239      .      "ave(X)", zsto,zout)
    240           do la=1,las
    241             CALL histdef(nid_tra2, "OD"//cla(la)//"_"//solsym(it), "OD"//cla(la)//"_"//solsym(it),
    242      .        "opt. depth", iim,jjm+1,nhori, 1,1,1, -99, 32,
    243      .        "ave(X)", zsto,zout)
    244 
    245             CALL histdef(nid_tra2, "OD3D"//cla(la)//"_"//solsym(it), "OD3d_"//cla(la)//"_"//solsym(it),
    246      .        "opt. depth 3D", iim,jjm+1,nhori, klev,1,klev, nvert, 32,
    247      .        "ave(X)", zsto,zout)
    248           enddo
    249 
    250           CALL histdef(nid_tra2, "CLOAD_"//solsym(it), "3D LOAD_"//solsym(it),
    251      .      "kg/m2 resp. #/m2", iim,jjm+1,nhori, klev,1,klev, nvert, 32,
    252      .      "ave(X)", zsto,zout)
    253 
    254           CALL histdef(nid_tra2, "MD_"//solsym(it), "MD_"//solsym(it),
    255      .      "median diameter [m]", iim,jjm+1,nhori, klev,1,klev, nvert, 32,
    256      .      "ave(X)", zsto,zout)
    257 
    258           CALL histdef(nid_tra2, "MDW_"//solsym(it), "MDW_"//solsym(it),
    259      .      "wet median diameter [m]", iim,jjm+1,nhori, klev,1,klev, nvert, 32,
    260      .      "ave(X)", zsto,zout)
    261 
    262 
    263 
    264           CALL histdef(nid_tra3, "Inst_Load_"//solsym(it), "Inst_Load_"//solsym(it),
    265      .      "kg/m2", iim,jjm+1,nhori, 1,1,1, -99, 32,
    266      .      "inst(X)", zout,zout)
    267 
    268         endif
    269 
    270 #endif
    271          CALL histdef(nid_tra, solsym(it), solsym(it), "VMR",
    272      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    273      .                "ave(X)", zsto,zout)
    274 #else
    27536         iq=it+2
    27637         iiq=niadv(iq)
    27738         CALL histdef(nid_tra, tnom(iq), ttext(iiq), "U/kga",
    278      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     39     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    27940     .                "ave(X)", zsto,zout)
    28041         if (lessivage) THEN
    28142         CALL histdef(nid_tra, "fl"//tnom(iq),"Flux "//ttext(iiq),
    282      .              "U/m2/s",iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     43     .              "U/m2/s",iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    28344     .              "ave(X)", zsto,zout)
    28445         endif
     
    28748         CALL histdef(nid_tra, "d_tr_th_"//tnom(iq),
    28849     .                "tendance thermique"// ttext(iiq), "?",
    289      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     50     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    29051     .                "ave(X)", zsto,zout)
    29152         CALL histdef(nid_tra, "d_tr_cv_"//tnom(iq),
    29253     .                "tendance convection"// ttext(iiq), "?",
    293      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     54     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    29455     .                "ave(X)", zsto,zout)
    29556         CALL histdef(nid_tra, "d_tr_cl_"//tnom(iq),
    29657     .                "tendance couche limite"// ttext(iiq), "?",
    297      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     58     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    29859     .                "ave(X)", zsto,zout)
    29960c---fin Olivia   
    30061
    301 #endif
    30262         ENDDO
    30363
    304 #ifdef INCA
    305          CALL histdef(nid_tra, "O3_column", "O3_column",
    306      .           "DU", iim,jjm+1,nhori, 1,1,1, -99, 32,
    307      .           "ave(X)", zsto,zout)
    308          CALL histdef(nid_tra, "CO_column", "CO_column",
    309      .           "10^18 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32,
    310      .           "ave(X)", zsto,zout)
    311          CALL histdef(nid_tra, "CH4_column", "CH4_column",
    312      .           "10^18 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32,
    313      .           "ave(X)", zsto,zout)
    314          CALL histdef(nid_tra, "NO2_column", "NO2_column",
    315      .           "10^15 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32,
    316      .           "ave(X)", zsto,zout)
    317          CALL histdef(nid_tra, "O3_ste", "O3_ste",
    318      .           "CM-2 S-1", iim,jjm+1,nhori, 1,1,1, -99, 32,
    319      .           "ave(X)", zsto,zout)
    320          CALL histdef(nid_tra, "O3_prod", "O3_prod", "CM-3 S-1",
    321      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     64         CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-",
     65     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     66     .                "inst(X)",  zout,zout)
     67
     68         CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-",
     69     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     70     .                "inst(X)",  zout,zout)
     71         CALL histdef(nid_tra, "psrf1", "nature sol", "-",
     72     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     73     .                "inst(X)",  zout,zout)
     74         CALL histdef(nid_tra, "psrf2", "nature sol", "-",
     75     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     76     .                "inst(X)",  zout,zout)
     77         CALL histdef(nid_tra, "psrf3", "nature sol", "-",
     78     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     79     .                "inst(X)",  zout,zout)
     80         CALL histdef(nid_tra, "psrf4", "nature sol", "-",
     81     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     82     .                "inst(X)",  zout,zout)
     83         CALL histdef(nid_tra, "ftsol1", "temper sol", "-",
     84     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     85     .                "inst(X)",  zout,zout)
     86         CALL histdef(nid_tra, "ftsol2", "temper sol", "-",
     87     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     88     .                "inst(X)",  zout,zout)
     89         CALL histdef(nid_tra, "ftsol3", "temper sol", "-",
     90     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     91     .                "inst",  zout,zout)
     92         CALL histdef(nid_tra, "ftsol4", "temper sol", "-",
     93     .                iim,jjphy_nb,nhori, 1,1,1, -99, 32,
     94     .                "inst(X)",  zout,zout)
     95         CALL histdef(nid_tra, "pplay", "flux u mont","-",
     96     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     97     .                "inst(X)", zout,zout)
     98         CALL histdef(nid_tra, "t", "flux u mont","-",
     99     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     100     .                "inst(X)", zout,zout)
     101         CALL histdef(nid_tra, "mfu", "flux u mont","-",
     102     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    322103     .                "ave(X)", zsto,zout)
    323          CALL histdef(nid_tra, "O3_loss", "O3_loss", "CM-3 S-1",
    324      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
     104         CALL histdef(nid_tra, "mfd", "flux u decen","-",
     105     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     106     .                "ave(X)", zsto,zout)
     107         CALL histdef(nid_tra, "en_u", "flux u mont","-",
     108     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     109     .                "ave(X)", zsto,zout)
     110         CALL histdef(nid_tra, "en_d", "flux u mont","-",
     111     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     112     .                "ave(X)", zsto,zout)
     113         CALL histdef(nid_tra, "de_d", "flux u mont","-",
     114     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     115     .                "ave(X)", zsto,zout)
     116         CALL histdef(nid_tra, "de_u", "flux u decen","-",
     117     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
     118     .                "ave(X)", zsto,zout)
     119         CALL histdef(nid_tra, "coefh", "turbulent coef","-",
     120     .                iim,jjphy_nb,nhori, klev,1,klev,nvert, 32,
    325121     .                "ave(X)", zsto,zout)
    326122
    327 !        Special variables for daytime averaging
    328 !        CALL histdef(nid_tra, "day_cnt", "day_cnt", "-",
    329 !    .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    330 !    .                "t_sum(X)", zsto,zout)
    331 !        CALL histdef(nid_tra, "NO_day", "NO_day", "VMR",
    332 !    .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    333 !    .                "t_sum(X)", zsto,zout)
    334 
    335 
    336 
    337 !! Ajout Anne
    338 #ifdef INCA_AER
    339 ! for sulfur cycle
    340          CALL histdef(nid_tra, "SO2_p_dmsoh", "SO2_p_dmsoh", "CM-3 S-1",
    341      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    342      .                "ave(X)", zsto,zout)
    343          CALL histdef(nid_tra, "SO2_p_dmsno3", "SO2_p_dmsno3", "CM-3 S-1",
    344      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    345      .                "ave(X)", zsto,zout)
    346          CALL histdef(nid_tra, "SO2_p_h2soh", "SO2_p_h2soh", "CM-3 S-1",
    347      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    348      .                "ave(X)", zsto,zout)
    349          CALL histdef(nid_tra, "SO2_p_dmsooh", "SO2_p_dmsooh", "CM-3 S-1",
    350      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    351      .                "ave(X)", zsto,zout)
    352          CALL histdef(nid_tra, "DMSO_p_dmsoh", "DMSO_p_dmsoh", "CM-3 S-1",
    353      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    354      .                "ave(X)", zsto,zout)
    355          CALL histdef(nid_tra, "ASMSAM_p_dmsooh", "ASMSAM_p_dmsooh", "CM-3 S-1",
    356      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    357      .                "ave(X)", zsto,zout)
    358          CALL histdef(nid_tra, "ASSO4M_p_so2oh", "ASSO4M_p_so2oh", "CM-3 S-1",
    359      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    360      .                "ave(X)", zsto,zout)
    361          CALL histdef(nid_tra, "ASSO4M_p_so2h2o2", "ASSO4M_p_h2o2","CM-3 S-1",
    362      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    363      .                "ave(X)", zsto,zout)
    364          CALL histdef(nid_tra, "ASSO4M_p_so2o3", "ASSO4M_p_so2o3", "CM-3 S-1",
    365      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    366      .                "ave(X)", zsto,zout)
    367 
    368          CALL histdef(nid_tra, "Wet3D_SO2", "Wet3D_SO2",
    369      .           "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    370      .           "ave(X)", zsto,zout)
    371          CALL histdef(nid_tra, "Wet3D_DMS", "Wet3D_DMS",
    372      .           "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    373      .           "ave(X)", zsto,zout)
    374          CALL histdef(nid_tra, "Wet3D_HNO3", "Wet3D_HNO3",
    375      .           "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    376      .           "ave(X)", zsto,zout)
    377          CALL histdef(nid_tra, "Wet3D_H2O2", "Wet3D_H2O2",
    378      .           "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    379      .           "ave(X)", zsto,zout)
    380 
    381          CALL histdef(nid_tra, "PH_HIST", "pH over physics time step", "1",
    382      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    383      .                "ave(X)", zsto,zout)
    384 #endif
    385 
    386 #ifdef INCA_CH4
    387          DO it=1, grpcnt
    388          CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",
    389      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    390      .                "ave(X)", zsto,zout)
    391          ENDDO
    392 
    393 #endif
    394 
    395 
    396 #ifdef INCA_NMHC
    397          CALL histdef(nid_tra, "CO2_basprod", "CO2_basprod", "CM-3 S-1",
    398      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    399      .                "ave(X)", zsto,zout)
    400          CALL histdef(nid_tra, "CO2_nmhcprod", "CO2_nmhcprod", "CM-3 S-1",
    401      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    402      .                "ave(X)", zsto,zout)
    403          CALL histdef(nid_tra, "CO2_radicalprod", "CO2_radicalprod", "CM-3 S-1",
    404      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    405      .                "ave(X)", zsto,zout)
    406          CALL histdef(nid_tra, "HNO3_prod", "HNO3_prod", "CM-3 S-1",
    407      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    408      .                "ave(X)", zsto,zout)
    409          CALL histdef(nid_tra, "HNO3_loss", "HNO3_loss", "CM-3 S-1",
    410      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    411      .                "ave(X)", zsto,zout)
    412          CALL histdef(nid_tra, "CO_prod", "CO_prod", "CM-3 S-1",
    413      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    414      .                "ave(X)", zsto,zout)
    415          CALL histdef(nid_tra, "CO_loss", "CO_loss", "CM-3 S-1",
    416      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    417      .                "ave(X)", zsto,zout)
    418 
    419          DO it=1, grpcnt
    420          CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",
    421      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    422      .                "ave(X)", zsto,zout)
    423          ENDDO
    424 
    425 
    426 #endif
    427 ! Fin ajout Anne
    428 #else
    429          CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-",
    430      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    431      .                "inst(X)", zout,zout)
    432 
    433          CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-",
    434      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    435      .                "inst(X)",  zout,zout)
    436          CALL histdef(nid_tra, "psrf1", "nature sol", "-",
    437      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    438      .                "inst(X)",  zout,zout)
    439          CALL histdef(nid_tra, "psrf2", "nature sol", "-",
    440      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    441      .                "inst(X)",  zout,zout)
    442          CALL histdef(nid_tra, "psrf3", "nature sol", "-",
    443      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    444      .                "inst(X)",  zout,zout)
    445          CALL histdef(nid_tra, "psrf4", "nature sol", "-",
    446      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    447      .                "inst(X)",  zout,zout)
    448          CALL histdef(nid_tra, "ftsol1", "temper sol", "-",
    449      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    450      .                "inst(X)",  zout,zout)
    451          CALL histdef(nid_tra, "ftsol2", "temper sol", "-",
    452      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    453      .                "inst(X)",  zout,zout)
    454          CALL histdef(nid_tra, "ftsol3", "temper sol", "-",
    455      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    456      .                "inst(X)",  zout,zout)
    457          CALL histdef(nid_tra, "ftsol4", "temper sol", "-",
    458      .                iim,jjm+1,nhori, 1,1,1, -99, 32,
    459      .                "inst(X)",  zout,zout)
    460          CALL histdef(nid_tra, "pplay", "flux u mont","-",
    461      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    462      .                "inst(X)", zout,zout)
    463          CALL histdef(nid_tra, "t", "flux u mont","-",
    464      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    465      .                "inst(X)", zout,zout)
    466          CALL histdef(nid_tra, "mfu", "flux u mont","-",
    467      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    468      .                "ave(X)", zsto,zout)
    469          CALL histdef(nid_tra, "mfd", "flux u decen","-",
    470      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    471      .                "ave(X)", zsto,zout)
    472          CALL histdef(nid_tra, "en_u", "flux u mont","-",
    473      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    474      .                "ave(X)", zsto,zout)
    475          CALL histdef(nid_tra, "en_d", "flux u mont","-",
    476      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    477      .                "ave(X)", zsto,zout)
    478          CALL histdef(nid_tra, "de_d", "flux u mont","-",
    479      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    480      .                "ave(X)", zsto,zout)
    481          CALL histdef(nid_tra, "de_u", "flux u decen","-",
    482      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    483      .                "ave(X)", zsto,zout)
    484          CALL histdef(nid_tra, "coefh", "turbulent coef","-",
    485      .                iim,jjm+1,nhori, klev,1,klev,nvert, 32,
    486      .                "ave(X)", zsto,zout)
    487 
    488 #endif
    489123c
    490124         CALL histend(nid_tra)
    491 #ifdef INCA_AER
    492          CALL histend(nid_tra2)
    493          CALL histend(nid_tra3)
    494 #endif
    495125         ndex2d = 0
    496126         ndex3d = 0
    497127         ndex = 0
     128c$OMP END MASTER
     129#endif
  • LMDZ4/trunk/libf/phylmd/ini_paramLMDZ_phy.h

    r719 r766  
     1cym    Non implemente en mode parallele
     2
     3       IF (monocpu) THEN 
    14c
    25       zstophy = dtime
     
    357360c
    358361       CALL histend(nid_ctesGCM)
     362       
     363       ENDIF ! monocpu
    359364c
    360365c=================================================================
  • LMDZ4/trunk/libf/phylmd/ini_undefSTD.F

    r684 r766  
    22     $           dtime,ecrit_day,ecrit_mth,
    33     $           tnondef,tsumSTD)
     4      USE dimphy
    45      IMPLICIT none
    56c
     
    2627c====================================================================
    2728c
    28 #include "dimensions.h"
    29       integer jjmp1
    30       parameter (jjmp1=jjm+1-1/jjm)
    31 #include "dimphy.h"
     29cym #include "dimensions.h"
     30cym      integer jjmp1
     31cym      parameter (jjmp1=jjm+1-1/jjm)
     32cym #include "dimphy.h"
    3233c variables Input/Output
    3334      INTEGER nlevSTD, klevSTD, itap
  • LMDZ4/trunk/libf/phylmd/inifis.F

    r524 r766  
    77     $           plat,plon,parea,
    88     $           prad,pg,pr,pcpp)
     9      use dimphy
    910      IMPLICIT NONE
    1011c
     
    4142c   -------------
    4243 
    43 #include "dimensions.h"
    44 #include "dimphy.h"
     44cym#include "dimensions.h"
     45cym#include "dimphy.h"
    4546
    4647      REAL prad,pg,pr,pcpp,punjours
  • LMDZ4/trunk/libf/phylmd/iniphysiq.F

    r524 r766  
    99     $           plat,plon,parea,pcu,pcv,
    1010     $           prad,pg,pr,pcpp)
     11      USE dimphy,klon2=>klon,klon=>klon2
     12      USE comgeomphy
    1113      IMPLICIT NONE
    1214c
     
    4345c   -------------
    4446 
    45 #include "dimensions.h"
    46 #include "dimphy.h"
    47 #include "comgeomphy.h"
    48 
     47cym#include "dimensions.h"
     48cym#include "dimphy.h"
     49cym#include "comgeomphy.h"
     50#include "YOMCST.h"
    4951      REAL prad,pg,pr,pcpp,punjours
    5052 
     
    5254      REAL plat(ngrid),plon(ngrid),parea(klon),pcu(klon),pcv(klon)
    5355      INTEGER pdayref
     56      INTEGER :: ibegin,iend
    5457 
    5558      REAL ptimestep
     
    7073         STOP
    7174      ENDIF
     75c$OMP PARALLEL PRIVATE(ibegin,iend)
     76c$OMP+         SHARED(parea,pcu,pcv,plon,plat)
     77      ibegin=klon_begin+klon_omp_begin(omp_rank)-1
     78      iend=ibegin+klon_omp-1
    7279
    73       airephy=parea
    74       cuphy=pcu
    75       cvphy=pcv
    76       rlond = plon
    77       rlatd = plat
     80      airephy(1:klon_omp)=parea(ibegin:iend)
     81      cuphy(1:klon_omp)=pcu(ibegin:iend)
     82      cvphy(1:klon_omp)=pcv(ibegin:iend)
     83      rlond(1:klon_omp) = plon(ibegin:iend)
     84      rlatd(1:klon_omp) = plat(ibegin:iend)
    7885
    7986      call suphec
     87
     88c$OMP END PARALLEL
     89
    8090      print*,'ATTENTION !!! TRAVAILLER SUR INIPHYSIQ'
    8191      print*,'CONTROLE DES LATITUDES, LONGITUDES, PARAMETRES ...'
  • LMDZ4/trunk/libf/phylmd/initphysto.F

    r541 r766  
    77     .  (infile,
    88     .  rlon, rlat, tstep,t_ops,t_wrt,nq,fileid)
    9 
     9       
     10       USE dimphy
    1011       USE IOIPSL
    11 
     12       USE iophy
    1213      implicit none
    1314
     
    5152#include "indicesol.h"
    5253#include "control.h"
    53 #include "dimphy.h"
     54cym#include "dimphy.h"
    5455
    5556C   Arguments
     
    9192      tau0 = 0
    9293       
    93         CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
    94          DO i = 1, iim
    95             zx_lon(i,1) = rlon(i+1)
    96             zx_lon(i,jjm+1) = rlon(i+1)
    97          ENDDO
    98          CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)
    99 
    100 
    101       call histbeg(infile, iim, zx_lon(:,1), jjm+1, zx_lat(1,:),
    102      .             1, iim, 1, jjm+1,
    103      .             tau0, zjulian, tstep, nhoriid, fileid)
    104 
     94cym     CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)
     95cym         DO i = 1, iim
     96cym            zx_lon(i,1) = rlon(i+1)
     97cym            zx_lon(i,jjm+1) = rlon(i+1)
     98cym         ENDDO
     99cym         CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)
     100
     101
     102      call histbeg_phy(infile,tau0, zjulian, tstep,
     103     .                 nhoriid, fileid)
     104
     105c$OMP MASTER   
    105106C  Appel a histvert pour la grille verticale
    106107C
     
    108109            nivsigs(l)=float(l)
    109110         ENDDO
    110        
     111
    111112        write(*,*) 'avant histvert ds initphysto'
    112113
     
    120121
    121122       CALL histdef(fileid, "phis", "Surface geop. height", "-",
    122      .                iim,jjm+1,nhoriid, 1,1,1, -99, 32,
     123     .                iim,jjphy_nb,nhoriid, 1,1,1, -99, 32,
    123124     .                "once", t_ops, t_wrt)
    124125c
     
    126127
    127128         CALL histdef(fileid, "aire", "Grid area", "-",
    128      .                iim,jjm+1,nhoriid, 1,1,1, -99, 32,
     129     .                iim,jjphy_nb,nhoriid, 1,1,1, -99, 32,
    129130     .                "once", t_ops, t_wrt)
    130131         write(*,*) 'apres aire ds initphysto'
    131132
     133cym     Attention dtime et istphy ne sont pas �rit ---> a �iminer ?
    132134         CALL histdef(fileid, "dtime", "tps phys ", "s",
    133135     .                1,1,nhoriid, 1,1,1, -99, 32,
     
    141143C
    142144      call histdef(fileid, 't', 'Temperature', 'K',
    143      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     145     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    144146     .             32, 'inst(X)', t_ops, t_wrt)
    145147        write(*,*) 'apres t ds initphysto'
     
    147149C
    148150      call histdef(fileid, 'mfu', 'flx m. pan. mt', 'kg m/s',
    149      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     151     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    150152     .             32, 'inst(X)', t_ops, t_wrt)
    151153        write(*,*) 'apres mfu ds initphysto'
     
    154156C
    155157      call histdef(fileid, 'mfd', 'flx m. pan. des', 'kg m/s',
    156      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     158     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    157159     .             32, 'inst(X)', t_ops, t_wrt)
    158160
     
    161163C
    162164      call histdef(fileid, 'en_u', 'flx ent pan mt', 'kg m/s',
    163      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     165     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    164166     .             32, 'inst(X)', t_ops, t_wrt)
    165167               write(*,*) 'apres en_u ds initphysto'
     
    168170C
    169171      call histdef(fileid, 'de_u', 'flx det pan mt', 'kg m/s',
    170      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     172     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    171173     .             32, 'inst(X)', t_ops, t_wrt)
    172174
     
    175177C
    176178      call histdef(fileid, 'en_d', 'flx ent pan dt', 'kg m/s',
    177      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     179     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    178180     .             32, 'inst(X)', t_ops, t_wrt)
    179181C
     
    183185C
    184186      call histdef(fileid, 'de_d', 'flx det pan dt', 'kg m/s',
    185      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     187     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    186188     .             32, 'inst(X)', t_ops, t_wrt)
    187189
     
    189191       
    190192        call histdef(fileid, "coefh", " ", " ",
    191      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     193     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    192194     .             32, "inst(X)", t_ops, t_wrt)
    193195
    194196c abderrahmane le 16 09 02
    195197        call histdef(fileid, "fm_th", " ", " ",
    196      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     198     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    197199     .             32, "inst(X)", t_ops, t_wrt)
    198200
    199201        call histdef(fileid, "en_th", " ", " ",
    200      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     202     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    201203     .             32, "inst(X)", t_ops, t_wrt)
    202204c fin aj
     
    205207
    206208        call histdef(fileid, 'frac_impa', ' ', ' ',
    207      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     209     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    208210     .             32, 'inst(X)', t_ops, t_wrt)
    209211       
    210212        call histdef(fileid, 'frac_nucl', ' ', ' ',
    211      .             iim, jjm+1, nhoriid, llm, 1, llm, zvertiid,
     213     .             iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid,
    212214     .             32, 'inst(X)', t_ops, t_wrt)
    213215
     
    216218c
    217219      CALL histdef(fileid, "pyu1", " ", " ",
    218      .                iim,jjm+1,nhoriid, 1,1,1, -99, 32,
     220     .                iim,jjphy_nb,nhoriid, 1,1,1, -99, 32,
    219221     .                "inst(X)", t_ops, t_wrt)
    220222
     
    223225c
    224226        CALL histdef(fileid, "pyv1", " ", " ",
    225      .                iim,jjm+1,nhoriid, 1,1,1, -99, 32,
     227     .                iim,jjphy_nb,nhoriid, 1,1,1, -99, 32,
    226228     .                "inst(X)", t_ops, t_wrt)
    227229       
     
    231233c
    232234        call histdef(fileid, "ftsol1", " ", " ",
    233      .             iim, jjm+1, nhoriid, 1, 1,1, -99,32,
     235     .             iim, jjphy_nb, nhoriid, 1, 1,1, -99,32,
    234236     .             "inst(X)", t_ops, t_wrt)
    235237
     
    238240c
    239241        call histdef(fileid, "ftsol2", " ", " ",
    240      .             iim, jjm+1, nhoriid, 1, 1,1, -99,32,
     242     .             iim, jjphy_nb, nhoriid, 1, 1,1, -99,32,
    241243     .             "inst(X)", t_ops, t_wrt)
    242244
     
    245247c
    246248        call histdef(fileid, "ftsol3", " ", " ",
    247      .             iim, jjm+1, nhoriid, 1, 1,1, -99,
     249     .             iim, jjphy_nb, nhoriid, 1, 1,1, -99,
    248250     .             32, "inst(X)", t_ops, t_wrt)
    249251
     
    252254c
    253255        call histdef(fileid, "ftsol4", " ", " ",
    254      .             iim, jjm+1, nhoriid, 1, 1,1, -99,
     256     .             iim, jjphy_nb, nhoriid, 1, 1,1, -99,
    255257     .             32, "inst(X)", t_ops, t_wrt)
    256258       
     
    259261c
    260262        call histdef(fileid, "rain", " ", " ",
    261      .             iim, jjm+1, nhoriid, 1, 1,1, -99,
     263     .             iim, jjphy_nb, nhoriid, 1, 1,1, -99,
    262264     .             32, "inst(X)", t_ops, t_wrt)
    263265
     
    266268c
    267269        call histdef(fileid, "psrf1", " ", " ",
    268      .             iim, jjm+1, nhoriid, 1, 1, 1, -99,
     270     .             iim, jjphy_nb, nhoriid, 1, 1, 1, -99,
    269271     .             32, "inst(X)", t_ops, t_wrt)
    270272       
     
    273275c
    274276        call histdef(fileid, "psrf2", " ", " ",
    275      .             iim, jjm+1, nhoriid, 1, 1, 1, -99,
     277     .             iim, jjphy_nb, nhoriid, 1, 1, 1, -99,
    276278     .             32, "inst(X)", t_ops, t_wrt)
    277279
     
    280282c
    281283        call histdef(fileid, "psrf3", " ", " ",
    282      .             iim, jjm+1, nhoriid, 1, 1, 1, -99,
     284     .             iim, jjphy_nb, nhoriid, 1, 1, 1, -99,
    283285     .             32, "inst(X)", t_ops, t_wrt)
    284286
     
    287289c
    288290        call histdef(fileid, "psrf4", " ", " ",
    289      .             iim, jjm+1, nhoriid, 1, 1, 1, -99,
     291     .             iim, jjphy_nb, nhoriid, 1, 1, 1, -99,
    290292     .             32, "inst(X)", t_ops, t_wrt)
    291293       
     
    295297c     if (ok_sync) call histsync(fileid)
    296298      if (ok_sync) call histsync
    297 
     299c$OMP END MASTER
    298300       
    299301
  • LMDZ4/trunk/libf/phylmd/initrrnpb.F

    r541 r766  
    44      SUBROUTINE  initrrnpb(ftsol,pctsrf,masktr,fshtr,hsoltr,tautr
    55     .                   ,vdeptr,scavtr)
     6      USE dimphy
    67      IMPLICIT none
    78c======================================================================
     
    2425c scavtr---output-R- Coefficient de lessivage
    2526c======================================================================
    26 #include "dimensions.h"
    27 #include "dimphy.h"
     27cym#include "dimensions.h"
     28cym#include "dimphy.h"
    2829#include "indicesol.h"
    2930c======================================================================
  • LMDZ4/trunk/libf/phylmd/interface_surf.F90

    r729 r766  
    2222! L. Fairhead, LMD, 02/2000
    2323
    24   USE ioipsl
     24!ym  USE ioipsl
    2525
    2626  IMPLICIT none
     
    4444! run_off      ruissellement total
    4545  REAL, ALLOCATABLE, DIMENSION(:),SAVE    :: run_off, run_off_lic
     46!$OMP THREADPRIVATE(run_off, run_off_lic)
    4647  real, allocatable, dimension(:),save    :: coastalflow, riverflow
     48!$OMP THREADPRIVATE(coastalflow, riverflow)
    4749!!$PB
    4850  REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: tmp_rriv, tmp_rcoa,tmp_rlic
     51!$OMP THREADPRIVATE(tmp_rriv, tmp_rcoa,tmp_rlic)
    4952!! pour simuler la fonte des glaciers antarctiques
    5053  REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: coeff_iceberg
     54!$OMP THREADPRIVATE(coeff_iceberg)
    5155  real, save                              :: surf_maille
     56!$OMP THREADPRIVATE(surf_maille)
    5257  real, save                              :: cte_flux_iceberg = 6.3e7
     58!$OMP THREADPRIVATE(cte_flux_iceberg) 
    5359  integer, save                           :: num_antarctic = 1
     60!$OMP THREADPRIVATE(num_antarctic)
    5461  REAL, save                              :: tau_calv
     62!$OMP THREADPRIVATE(tau_calv)
    5563!!$
    5664  CONTAINS
     
    7583      & evap, fluxsens, fluxlat, dflux_l, dflux_s, &             
    7684      & tsol_rad, tsurf_new, alb_new, alblw, emis_new, &
    77       & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0,&
     85      & z0_new, pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0,&
    7886!IM "slab" ocean
    7987      & flux_o, flux_g, tslab, seaice)
    8088
    8189
     90   USE dimphy,only : monocpu,jjphy_nb,omp_rank
    8291! Cette routine sert d'aiguillage entre l'atmosphere et la surface en general
    8392! (sols continentaux, oceans, glaces) pour les fluxs de chaleur et d'humidite.
     
    189198  real, dimension(klon), intent(INOUT) :: tslab
    190199  real, allocatable, dimension(:), save :: tmp_tslab
     200!$OMP THREADPRIVATE(tmp_tslab)
    191201  real, dimension(klon), intent(OUT) :: flux_o, flux_g
    192202  real, dimension(klon), intent(INOUT)        :: seaice ! glace de mer (kg/m2)
    193203  real, dimension(klon)                       :: siceh  ! hauteur glace de mer (m)
    194204  REAL, DIMENSION(klon), INTENT(INOUT) :: radsol,fder
     205 
     206!  real, dimension(klon), intent(IN) :: zmasq
    195207  real, dimension(klon), intent(IN) :: zmasq
    196208  real, dimension(klon), intent(IN) :: taux, tauy, rugos, rugoro
     
    221233!jld a rajouter   real, dimension(klon), intent(INOUT):: ffonte
    222234  real, dimension(klon), intent(INOUT):: ffonte
    223 ! Flux d'eau "perdue" par la surface et nécessaire pour que limiter la
    224 ! hauteur de neige, en kg/m2/s
    225 !jld a rajouter   real, dimension(klon), intent(INOUT):: fqcalving
    226   real, dimension(klon), intent(INOUT):: fqcalving
     235! Flux d'eau "perdue" par la surface et necessaire pour que limiter la
     236! hauteur de neige, en kg/m2/s. Et quantite d'eau de fonte de la calotte.
     237!jld a rajouter   real, dimension(klon), intent(INOUT):: fqcalving, fqfonte
     238  REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte
    227239!IM: "slab" ocean
    228240  real, dimension(klon) :: new_dif_grnd
     
    232244  integer i
    233245  real, allocatable, dimension(:), save :: tmp_flux_o, tmp_flux_g
     246!$OMP THREADPRIVATE(tmp_flux_o, tmp_flux_g) 
    234247  real, allocatable, dimension(:), save :: tmp_radsol
     248!$OMP THREADPRIVATE(tmp_radsol)
    235249  real, allocatable, dimension(:,:), save :: tmp_pctsrf_slab
     250!$OMP THREADPRIVATE(tmp_pctsrf_slab)
    236251  real, allocatable, dimension(:), save :: tmp_seaice
    237 
     252!$OMP THREADPRIVATE(tmp_seaice)
    238253! Local
    239254  character (len = 20),save :: modname = 'interfsurf_hq'
     255!$OMP THREADPRIVATE(modname)
    240256  character (len = 80) :: abort_message
    241257  logical, save        :: first_call = .true.
     258!$OMP THREADPRIVATE(first_call) 
    242259  integer, save        :: error
     260!$OMP THREADPRIVATE(error) 
    243261  integer              :: ii, index
    244   logical,save              :: check = .false.
     262  logical,save              :: check = .true.
     263!$OMP THREADPRIVATE(check) 
    245264  real, dimension(klon):: cal, beta, dif_grnd, capsol
    246265!!$PB  real, parameter      :: calice=1.0/(5.1444e+06*0.15), tau_gl=86400.*5.
     
    258277  real, dimension(klon):: fder_prev
    259278  REAL, dimension(klon) :: bidule
     279  real, dimension(klon) :: ps_tmp,p1lay_tmp
     280  INTEGER :: j
    260281!
    261282!IM ?? quelques variables pour netcdf
     
    295316!      call abort_gcm(modname,abort_message,1)
    296317!    endif
     318  endif
     319  first_call = .false.
     320 
     321! Initialisations diverses
     322!
     323!!$  cal=0.; beta=1.; dif_grnd=0.; capsol=0.
     324!!$  alb_new = 0.; z0_new = 0.; alb_neig = 0.0
     325!!$! PB
     326!!$  tsurf_new = 0.
    297327
    298328!IM cf JLD
    299329  ffonte(1:knon)=0.
    300330  fqcalving(1:knon)=0.
     331  fqfonte  (1:knon)=0.
     332
    301333
    302334  cal = 999999. ; beta = 999999. ; dif_grnd = 999999. ; capsol = 999999.
     
    368400     tmp_tslab(i)=tslab(i)
    369401    ENDDO
    370   endif
    371   first_call = .false.
    372  
    373 ! Initialisations diverses
    374 !
    375 !!$  cal=0.; beta=1.; dif_grnd=0.; capsol=0.
    376 !!$  alb_new = 0.; z0_new = 0.; alb_neig = 0.0
    377 !!$! PB
    378 !!$  tsurf_new = 0.
    379 
    380402!
    381403! Aiguillage vers les differents schemas de surface
     
    407429
    408430!!$PB
    409       ALLOCATE (tmp_rriv(iim,jjm+1), stat=error)
     431      ALLOCATE (tmp_rriv(iim,jjphy_nb), stat=error)
    410432      if (error /= 0) then
    411433        abort_message='Pb allocation tmp_rriv'
    412434        call abort_gcm(modname,abort_message,1)
    413435      endif
    414       ALLOCATE (tmp_rcoa(iim,jjm+1), stat=error)
     436      tmp_rriv=0.
     437      ALLOCATE (tmp_rcoa(iim,jjphy_nb), stat=error)
    415438      if (error /= 0) then
    416439        abort_message='Pb allocation tmp_rcoa'
    417440        call abort_gcm(modname,abort_message,1)
    418441      endif
    419       ALLOCATE (tmp_rlic(iim,jjm+1), stat=error)
     442      tmp_rcoa=0.
     443!ym      ALLOCATE (tmp_rlic(iim,jjm+1), stat=error)
     444      ALLOCATE (tmp_rlic(iim,jjphy_nb), stat=error)
    420445      if (error /= 0) then
    421446        abort_message='Pb allocation tmp_rlic'
    422447        call abort_gcm(modname,abort_message,1)
    423448      endif
    424       tmp_rriv = 0.0
    425       tmp_rcoa = 0.0
    426       tmp_rlic = 0.0
    427 
     449      tmp_rlic=0.
    428450!!$
    429451    else if (size(coastalflow) /= knon) then
     
    449471     & alb_new, z0_new)
    450472
    451 ! calcul snow et qsurf, hydrol adapté
    452 !
     473! calcul snow et qsurf, hydrol adapte !
    453474       CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd)
    454475
     
    474495     &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    475496     &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    476      &   fqcalving,ffonte, run_off_lic_0)
     497     &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    477498
    478499
     
    491512!
    492513#ifdef CPP_VEGET
    493       call interfsol(itime, klon, dtime, date0, nisurf, knon, &
     514      p1lay_tmp(1:knon)=p1lay(1:knon)/100.
     515      ps_tmp(1:knon)=ps(1:knon)/100.
     516 
     517       call interfsol(itime, klon, dtime, date0, nisurf, knon, &
    494518     &  knindex, rlon, rlat, cufi, cvfi, iim, jjm, pctsrf, &
    495519     &  debut, lafin, ok_veget, &
     
    497521     &  tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, &
    498522     &  precip_rain, precip_snow, sollwdown, swnet, swdown, &
    499      &  tsurf, p1lay/100., ps/100., radsol, &
     523     &  tsurf, p1lay_tmp, ps_tmp, radsol, &
    500524     &  evap, fluxsens, fluxlat, &             
    501525     &  tsol_rad, tsurf_new, alb_new, alblw, &
     
    779803             &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    780804             &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    781              &   fqcalving,ffonte, run_off_lic_0)
     805             &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    782806
    783807!     calcul albedo
     
    893917
    894918    if (.not. allocated(run_off_lic)) then
    895       allocate(run_off_lic(knon), stat = error)
     919      allocate(run_off_lic(klon), stat = error)
    896920      if (error /= 0) then
    897921        abort_message='Pb allocation run_off_lic'
     
    928952     &   petAcoef, peqAcoef, petBcoef, peqBcoef, &
    929953     &   tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    930      &   fqcalving,ffonte, run_off_lic_0)
     954     &   fqcalving,fqfonte,ffonte, run_off_lic_0)
    931955
    932956! passage du run-off des glaciers calcule dans fonte_neige au coupleur
     
    10101034
    10111035  USE intersurf
    1012 
     1036  USE dimphy, klon_x=>klon
     1037  IMPLICIT NONE
    10131038! Cette routine sert d'interface entre le modele atmospherique et le
    10141039! modele de sol continental. Appel a sechiba
     
    11281153! offset pour calculer les point voisins
    11291154  integer, dimension(8,3), save :: off_ini
    1130   integer, dimension(8), save :: offset
    1131 ! Identifieurs des fichiers restart et histoire
     1155 ! Identifieurs des fichiers restart et histoire
    11321156  integer, save          :: rest_id, hist_id
    11331157  integer, save          :: rest_id_stom, hist_id_stom
     
    11451169  integer, dimension(:), save, allocatable :: ig, jg
    11461170  integer :: indi, indj
    1147   integer, dimension(klon) :: ktindex
     1171  integer, save, allocatable,dimension(:) :: ktindex
    11481172  REAL, dimension(klon) :: bidule
    11491173! Essai cdrag
    11501174  real, dimension(klon) :: cdrag
    1151 
     1175  integer :: jjb,jje,ijb,ije
     1176  INTEGER,SAVE :: offset
     1177  REAL, dimension(klon2) :: rlon_g,rlat_g
     1178  INTEGER, SAVE          :: orch_comm
    11521179#include "temps.inc"
    11531180#include "YOMCST.inc"
     
    11571184  if (check) write(lunout,*)'ok_veget = ',ok_veget
    11581185
    1159   ktindex(:) = knindex(:) + iim - 1
    1160 
     1186
     1187 
    11611188! initialisation
     1189 
    11621190  if (debut) then
    1163 
     1191    ALLOCATE(ktindex(klon))
    11641192  IF ( .NOT. allocated(albedo_keep)) THEN
    11651193     ALLOCATE(albedo_keep(klon))
     
    11841212   ig(klon) = 1
    11851213   jg(klon) = jjm + 1
    1186 !
    1187 !  Initialisation des offset   
    1188 !
    1189 ! offset bord ouest
    1190    off_ini(1,1) = - iim  ; off_ini(2,1) = - iim + 1; off_ini(3,1) = 1
    1191    off_ini(4,1) = iim + 1; off_ini(5,1) = iim      ; off_ini(6,1) = 2 * iim - 1
    1192    off_ini(7,1) = iim -1 ; off_ini(8,1) = - 1
    1193 ! offset point normal
    1194    off_ini(1,2) = - iim  ; off_ini(2,2) = - iim + 1; off_ini(3,2) = 1
    1195    off_ini(4,2) = iim + 1; off_ini(5,2) = iim      ; off_ini(6,2) = iim - 1
    1196    off_ini(7,2) = -1     ; off_ini(8,2) = - iim - 1
    1197 ! offset bord   est
    1198    off_ini(1,3) = - iim; off_ini(2,3) = - 2 * iim + 1; off_ini(3,3) = - iim + 1
    1199    off_ini(4,3) =  1   ; off_ini(5,3) = iim          ; off_ini(6,3) = iim - 1
    1200    off_ini(7,3) = -1   ; off_ini(8,3) = - iim - 1
    1201 !
    1202 ! Initialisation des correspondances point -> indices i,j
    1203 !
    1204     if (( .not. allocated(correspond))) then
    1205       allocate(correspond(iim,jjm+1), stat = error)
    1206       if (error /= 0) then
    1207         abort_message='Pb allocation correspond'
    1208         call abort_gcm(modname,abort_message,1)
    1209       endif     
    1210     endif
    1211 !
    1212 ! Attention aux poles
    1213 !
    1214     do igrid = 1, knon
    1215       index = ktindex(igrid)
    1216           jj = int((index - 1)/iim) + 1
    1217           ij = index - (jj - 1) * iim
    1218       correspond(ij,jj) = igrid
    1219     enddo
    1220 
    1221 ! Allouer et initialiser le tableau de coordonnees du sol
    1222 !
     1214
    12231215    if ((.not. allocated(lalo))) then
    12241216      allocate(lalo(knon,2), stat = error)
     
    12481240      lalo(igrid,2) = rlon(index)
    12491241      lalo(igrid,1) = rlat(index)
    1250       ij = index - int((index-1)/iim)*iim - 1
    1251       jj = 2 + int((index-1)/iim)
    1252       if (mod(index,iim) == 1 ) then
    1253         jj = 1 + int((index-1)/iim)
    1254         ij = iim
    1255       endif
    1256 !      lon_scat(ij,jj) = rlon(index)
    1257 !      lat_scat(ij,jj) = rlat(index)
     1242
    12581243    enddo
    1259     index = 1
    1260     do jj = 2, jjm
    1261       do ij = 1, iim
    1262         index = index + 1
    1263         lon_scat(ij,jj) = rlon(index)
    1264         lat_scat(ij,jj) = rlat(index)
     1244   
     1245
     1246   
     1247    Call GatherField(rlon,rlon_g,1)
     1248    Call GatherField(rlat,rlat_g,1)
     1249
     1250    IF (phy_rank==0) THEN
     1251      index = 1
     1252      do jj = 2, jjm
     1253        do ij = 1, iim
     1254          index = index + 1
     1255          lon_scat(ij,jj) = rlon_g(index)
     1256          lat_scat(ij,jj) = rlat_g(index)
     1257        enddo
    12651258      enddo
    1266     enddo
    1267     lon_scat(:,1) = lon_scat(:,2)
    1268     lat_scat(:,1) = rlat(1)
    1269     lon_scat(:,jjm+1) = lon_scat(:,2)
    1270     lat_scat(:,jjm+1) = rlat(klon)
    1271 ! Pb de correspondances de grilles!
    1272 !    do igrid = 1, knon
    1273 !      index = ktindex(igrid)
    1274 !      ij = ig(index)
    1275 !      jj = jg(index)
    1276 !      lon_scat(ij,jj) = rlon(index)
    1277 !      lat_scat(ij,jj) = rlat(index)
    1278 !    enddo
     1259     lon_scat(:,1) = lon_scat(:,2)
     1260     lat_scat(:,1) = rlat_g(1)
     1261     lon_scat(:,jjm+1) = lon_scat(:,2)
     1262     lat_scat(:,jjm+1) = rlat_g(klon2)
     1263   ENDIF
     1264   
    12791265
    12801266!
     
    13021288    enddo
    13031289
    1304     do igrid = 1, knon
    1305       iglob = ktindex(igrid)
    1306       if (mod(iglob, iim) == 1) then
    1307         offset = off_ini(:,1)
    1308       else if(mod(iglob, iim) == 0) then
    1309         offset = off_ini(:,3)
    1310       else
    1311         offset = off_ini(:,2)
    1312       endif
    1313       do i = 1, 8
    1314         index = iglob + offset(i)
    1315         ireal = (min(max(1, index - iim + 1), klon))
    1316         if (pctsrf(ireal, is_ter) > EPSFRA) then
    1317           jj = int((index - 1)/iim) + 1
    1318           ij = index - (jj - 1) * iim
    1319             neighbours(igrid, i) = correspond(ij, jj)
    1320         endif
    1321       enddo
    1322     enddo
     1290
     1291   CALL Init_neighbours(iim,jjm,knon,neighbours,knindex,pctsrf(:,is_ter))
    13231292
    13241293!
     
    13361305      resolution(igrid,2) = cvfi(ij)
    13371306    enddo 
    1338 !IM tester la resolution que recoit Orchidee
    1339     IF((maxval(resolution(:,2)) == 0.).OR. &
    1340    &   (maxval(resolution(:,1)) == 0.)) THEN
    1341      abort_message='STOP interfsol : resolution recue par Orchidee = 0.'
    1342      call abort_gcm(modname,abort_message,1)
    1343     ENDIF
    13441307
    13451308  endif                          ! (fin debut)
     
    13741337! Init Orchidee
    13751338!
     1339!  if (pole_nord) then
     1340!    offset=0
     1341!    ktindex(:)=ktindex(:)+iim-1
     1342!  else
     1343!    offset = klon_begin-1+iim-1
     1344!    ktindex(:)=ktindex(:)+MOD(offset,iim)
     1345!    offset=offset-MOD(offset,iim)
     1346!  endif
     1347 
     1348  PRINT *,'ORCHIDEE ------> KNON : ',knon
     1349 
     1350   
    13761351  if (debut) then
    1377     call intersurf_main (itime+itau_phy-1, iim, jjm+1, knon, ktindex, dtime, &
    1378      & lrestart_read, lrestart_write, lalo, &
    1379      & contfrac, neighbours, resolution, date0, &
    1380      & zlev,  u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, &
    1381      & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, &
    1382      & precip_rain, precip_snow, lwdown, swnet, swdown, ps, &
    1383      & evap, fluxsens, fluxlat, coastalflow, riverflow, &
    1384      & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, &
    1385      & lon_scat, lat_scat)
    1386 
     1352    CALL Get_orchidee_communicator(knon,orch_comm)
     1353    IF (knon /=0) THEN
     1354      CALL Init_orchidee_index(iim,knon,orch_comm,knindex,offset,ktindex)
     1355   
     1356      call intersurf_main (itime+itau_phy-1, iim, jjm+1,offset, knon, ktindex, &
     1357       & orch_comm,dtime, lrestart_read, lrestart_write, lalo, &
     1358       & contfrac, neighbours, resolution, date0, &
     1359       & zlev,  u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, &
     1360       & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, &
     1361       & precip_rain, precip_snow, lwdown, swnet, swdown, ps, &
     1362       & evap, fluxsens, fluxlat, coastalflow, riverflow, &
     1363       & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, &
     1364       & lon_scat, lat_scat)
     1365
     1366     ENDIF
    13871367!IM cf. JP +++
    13881368    albedo_keep(1:knon) = (albedo_out(1:knon,1)+albedo_out(1:knon,2))/2.
     
    13921372
    13931373!IM cf. JP +++
    1394 !IM swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon))
    1395 !IM modification faite dans clmain
    1396     swdown_vrai(1:knon) = swdown(1:knon)
     1374!  swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon))
     1375  swdown_vrai(1:knon) = swdown(1:knon)
     1376
    13971377!IM cf. JP ---
    1398 
    1399   call intersurf_main (itime+itau_phy, iim, jjm+1, knon, ktindex, dtime, &
    1400      & lrestart_read, lrestart_write, lalo, &
    1401      & contfrac, neighbours, resolution, date0, &
    1402      & zlev,  u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, &
    1403      & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, &
    1404      & precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, &
    1405      & evap, fluxsens, fluxlat, coastalflow, riverflow, &
    1406      & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, &
    1407      & lon_scat, lat_scat)
    1408 
     1378    IF (knon /=0) THEN
     1379   
     1380      call intersurf_main (itime+itau_phy, iim, jjm+1,offset, knon, ktindex, &
     1381       & orch_comm,dtime, lrestart_read, lrestart_write, lalo, &
     1382       & contfrac, neighbours, resolution, date0, &
     1383       & zlev,  u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, &
     1384       & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, &
     1385       & precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, &
     1386       & evap, fluxsens, fluxlat, coastalflow, riverflow, &
     1387       & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, &
     1388       & lon_scat, lat_scat)
     1389
     1390    ENDIF
    14091391!IM cf. JP +++
    14101392    albedo_keep(1:knon) = (albedo_out(1:knon,1)+albedo_out(1:knon,2))/2.
     
    14131395    bidule=0.
    14141396    bidule(1:knon)=riverflow(1:knon)
    1415     call gath2cpl(bidule, tmp_rriv, klon, knon,iim,jjm,knindex)
     1397    call gath2cpl(bidule, tmp_rriv, klon, knon,iim,jjphy_nb,knindex)
    14161398    bidule=0.
    14171399    bidule(1:knon)=coastalflow(1:knon)
    1418     call gath2cpl(bidule, tmp_rcoa, klon, knon,iim,jjm,knindex)
     1400    call gath2cpl(bidule, tmp_rcoa, klon, knon,iim,jjphy_nb,knindex)
    14191401    alb_new(1:knon) = albedo_out(1:knon,1)
    14201402    alblw(1:knon) = albedo_out(1:knon,2)
     
    14301412
    14311413  END SUBROUTINE interfsol
     1414 
     1415  SUBROUTINE Init_orchidee_index(iim,knon,orch_comm,knindex,offset,ktindex)
     1416  USE dimphy
     1417  IMPLICIT NONE
     1418    INTEGER,INTENT(IN)  :: iim
     1419    INTEGER,INTENT(IN)  :: knon
     1420    INTEGER,INTENT(IN)  :: orch_comm
     1421    INTEGER,INTENT(IN)  :: knindex(knon)
     1422    INTEGER,INTENT(OUT) :: offset
     1423    INTEGER,INTENT(OUT) :: ktindex(knon)
     1424
     1425#ifdef CPP_PARA
     1426    INCLUDE 'mpif.h'
     1427    INTEGER :: status(MPI_STATUS_SIZE)
     1428#endif
     1429    INTEGER :: MyLastPoint
     1430    INTEGER :: LastPoint
     1431    INTEGER :: mpi_rank
     1432    INTEGER :: mpi_size
     1433    INTEGER :: ierr   
     1434   
     1435    MyLastPoint=klon_begin-1+knindex(knon)+iim-1
     1436
     1437    IF (.NOT. monocpu) THEN
     1438#ifdef CPP_PARA   
     1439      call MPI_COMM_SIZE(orch_comm,mpi_size,ierr)
     1440      call MPI_COMM_RANK(orch_comm,mpi_rank,ierr)
     1441#endif
     1442    ELSE
     1443      mpi_rank=0
     1444      mpi_size=1
     1445    ENDIF
     1446   
     1447    IF (.NOT. monocpu) THEN
     1448      IF (mpi_rank /= 0) then
     1449#ifdef CPP_PARA
     1450        CALL MPI_RECV(LastPoint,1,MPI_INTEGER,mpi_rank-1,1234,orch_comm,status,ierr)
     1451#endif
     1452      ENDIF
     1453       
     1454      IF (mpi_rank /= mpi_size-1) THEN
     1455#ifdef CPP_PARA
     1456        CALL MPI_SEND(MyLastPoint,1,MPI_INTEGER,mpi_rank+1,1234,orch_comm,ierr) 
     1457#endif
     1458      ENDIF
     1459    ENDIF
     1460   
     1461    IF (mpi_rank==0) THEN
     1462      offset=0
     1463    ELSE
     1464     offset=LastPoint-MOD(LastPoint,iim)
     1465    ENDIF
     1466     
     1467    ktindex(:)=knindex(:)+(klon_begin+iim-1)-offset-1   
     1468   
     1469
     1470   END SUBROUTINE  Init_orchidee_index
     1471
     1472 
     1473  SUBROUTINE Get_orchidee_communicator(knon,orch_comm)
     1474  USE dimphy, only : phy_rank
     1475#ifdef CPP_PARA
     1476  USE parallel, only : COMM_LMDZ
     1477#endif
     1478  IMPLICIT NONE
     1479#ifdef CPP_PARA
     1480    include 'mpif.h'
     1481#endif   
     1482    INTEGER,INTENT(IN)  :: knon
     1483    INTEGER,INTENT(OUT) :: orch_comm
     1484   
     1485    INTEGER :: color
     1486    INTEGER :: ierr
     1487   
     1488    IF (knon==0) THEN
     1489      color = 0
     1490    ELSE
     1491      color = 1
     1492    ENDIF
     1493
     1494#ifdef CPP_PARA   
     1495    CALL MPI_COMM_SPLIT(COMM_LMDZ,color,phy_rank,orch_comm,ierr)
     1496#endif
     1497   
     1498  END SUBROUTINE Get_orchidee_communicator
     1499   
     1500   
     1501  SUBROUTINE Init_neighbours(iim,jjm,knon,neighbours,ktindex,pctsrf)
     1502#ifdef CPP_PARA
     1503  USE parallel,only : COMM_LMDZ
     1504#endif
     1505  USE dimphy
     1506  IMPLICIT NONE
     1507#ifdef CPP_PARA
     1508  include 'mpif.h'
     1509#endif
     1510  INTEGER :: iim,jjm
     1511  INTEGER :: knon
     1512  INTEGER :: neighbours(knon,8)
     1513  INTEGER :: ktindex(knon)
     1514  REAL :: pctsrf(klon)
     1515 
     1516  INTEGER :: knon_nb(0:phy_size-1)
     1517  INTEGER,DIMENSION(0:phy_size-1) :: displs,sendcount
     1518  INTEGER,ALLOCATABLE :: ktindex_g(:)
     1519  REAL*8  :: pctsrf_g(klon2)
     1520  INTEGER,ALLOCATABLE ::neighbours_g(:,:)
     1521  INTEGER :: knon_g
     1522  REAL*8 :: correspond(iim,jjm+1)
     1523  INTEGER :: i,igrid,jj,ij,iglob,ierr,ireal,index
     1524  integer, dimension(8,3) :: off_ini
     1525  integer, dimension(8)   :: offset 
     1526  INTEGER :: ktindex_p(knon)
     1527
     1528  IF (monocpu) THEN
     1529    knon_nb(:)=knon
     1530  ELSE 
     1531
     1532#ifdef CPP_PARA 
     1533    CALL MPI_GATHER(knon,1,MPI_INTEGER,knon_nb,1,MPI_INTEGER,0,COMM_LMDZ,ierr)
     1534#endif
     1535 
     1536  ENDIF
     1537   
     1538  IF (phy_rank==0) THEN
     1539    knon_g=sum(knon_nb(:))
     1540    ALLOCATE(ktindex_g(knon_g))
     1541    ALLOCATE(neighbours_g(knon_g,8))
     1542    neighbours_g(:,:)=-1
     1543    displs(0)=0
     1544    DO i=1,phy_size-1
     1545      displs(i)=displs(i-1)+knon_nb(i-1)
     1546    ENDDO 
     1547  ENDIF
     1548 
     1549  ktindex_p(:)=ktindex(:)+klon_begin-1+iim-1
     1550
     1551  IF (monocpu) THEN
     1552    ktindex_g(:)=ktindex_p(:)
     1553  ELSE
     1554
     1555#ifdef CPP_PARA 
     1556    CALL MPI_GATHERV(ktindex_p,knon,MPI_INTEGER,ktindex_g,knon_nb,displs,MPI_INTEGER,0,COMM_LMDZ,ierr)
     1557#endif
     1558
     1559  ENDIF
     1560     
     1561  CALL GatherField(pctsrf,pctsrf_g,1)
     1562 
     1563  IF (phy_rank==0) THEN
     1564!  Initialisation des offset   
     1565!
     1566! offset bord ouest
     1567   off_ini(1,1) = - iim  ; off_ini(2,1) = - iim + 1; off_ini(3,1) = 1
     1568   off_ini(4,1) = iim + 1; off_ini(5,1) = iim      ; off_ini(6,1) = 2 * iim - 1
     1569   off_ini(7,1) = iim -1 ; off_ini(8,1) = - 1
     1570! offset point normal
     1571   off_ini(1,2) = - iim  ; off_ini(2,2) = - iim + 1; off_ini(3,2) = 1
     1572   off_ini(4,2) = iim + 1; off_ini(5,2) = iim      ; off_ini(6,2) = iim - 1
     1573   off_ini(7,2) = -1     ; off_ini(8,2) = - iim - 1
     1574! offset bord   est
     1575   off_ini(1,3) = - iim; off_ini(2,3) = - 2 * iim + 1; off_ini(3,3) = - iim + 1
     1576   off_ini(4,3) =  1   ; off_ini(5,3) = iim          ; off_ini(6,3) = iim - 1
     1577   off_ini(7,3) = -1   ; off_ini(8,3) = - iim - 1
     1578!
     1579!
     1580! Attention aux poles
     1581!
     1582    do igrid = 1, knon_g
     1583      index = ktindex_g(igrid)
     1584          jj = int((index - 1)/iim) + 1
     1585          ij = index - (jj - 1) * iim
     1586      correspond(ij,jj) = igrid
     1587    enddo
     1588
     1589    do igrid = 1, knon_g
     1590      iglob = ktindex_g(igrid)
     1591      if (mod(iglob, iim) == 1) then
     1592        offset = off_ini(:,1)
     1593      else if(mod(iglob, iim) == 0) then
     1594        offset = off_ini(:,3)
     1595      else
     1596        offset = off_ini(:,2)
     1597      endif
     1598      do i = 1, 8
     1599        index = iglob + offset(i)
     1600        ireal = (min(max(1, index - iim + 1), klon2))
     1601        if (pctsrf_g(ireal) > EPSFRA) then
     1602          jj = int((index - 1)/iim) + 1
     1603          ij = index - (jj - 1) * iim
     1604            neighbours_g(igrid, i) = correspond(ij, jj)
     1605        endif
     1606      enddo
     1607    enddo
     1608
     1609!    DO i=0,phy_size-1
     1610!      displs(i)=displs(i)*8
     1611!      sendcount(i)=knon_nb(i)*8
     1612!    ENDDO
     1613 
     1614  ENDIF
     1615 
     1616  DO i=1,8
     1617    IF (monocpu) THEN
     1618      neighbours(:,i)=neighbours_g(:,i)
     1619    ELSE
     1620#ifdef CPP_PARA
     1621    CALL MPI_SCATTERV(neighbours_g(:,i),knon_nb,displs,MPI_INTEGER,neighbours(:,i),knon,MPI_INTEGER,0,COMM_LMDZ,ierr)
     1622#endif
     1623    ENDIF
     1624  ENDDO
     1625 
     1626  END SUBROUTINE Init_neighbours
    14321627#endif
    14331628!
     
    14461641      & pctsrf_new)
    14471642
     1643   USE ioipsl
     1644   USE dimphy, only : jjphy_nb, iiphy_begin,iiphy_end,phy_rank,phy_size, monocpu
     1645   USE iophy
     1646#ifdef CPP_PARA
     1647   USE parallel, only: pole_nord,pole_sud,COMM_LMDZ
     1648#endif
     1649#ifdef CPP_PSMILE
     1650   USE oasis
     1651#endif
     1652   USE write_field_phy
     1653   implicit none
     1654#include "indicesol.inc"
     1655#include "YOMCST.inc"
    14481656! Cette routine sert d'interface entre le modele atmospherique et un
    14491657! coupleur avec un modele d'ocean 'complet' derriere
     
    15001708!   alb_ice      albedo de la glace
    15011709!
    1502 #ifdef CPP_PSMILE 
    1503   USE oasis
    1504   integer :: il_time_secs !time in seconds
    1505 #endif
     1710
    15061711
    15071712! Parametres d'entree
     
    15611766  REAL, ALLOCATABLE, DIMENSION(:,:,:),SAVE :: tmp_tauy
    15621767! variables a passer au coupleur
    1563   real, dimension(iim, jjm+1) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice
    1564   real, dimension(iim, jjm+1) :: wri_nsol_sea, wri_fder_ice, wri_evap_ice
    1565   REAL, DIMENSION(iim, jjm+1) :: wri_evap_sea, wri_rcoa, wri_rriv
    1566   REAL, DIMENSION(iim, jjm+1) :: wri_rain, wri_snow, wri_taux, wri_tauy
    1567 ! -- LOOP
    1568    REAL, DIMENSION(iim, jjm+1) :: wri_windsp
    1569 ! -- LOOP
    1570   REAL, DIMENSION(iim, jjm+1) :: wri_calv
    1571   REAL, DIMENSION(iim, jjm+1) :: wri_tauxx, wri_tauyy, wri_tauzz
    1572   REAL, DIMENSION(iim, jjm+1) :: tmp_lon, tmp_lat
     1768!ym  real, dimension(iim, jjm+1) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice
     1769!ym  real, dimension(iim, jjm+1) :: wri_nsol_sea, wri_fder_ice, wri_evap_ice
     1770!ym  REAL, DIMENSION(iim, jjm+1) :: wri_evap_sea, wri_rcoa, wri_rriv
     1771!ym  REAL, DIMENSION(iim, jjm+1) :: wri_rain, wri_snow, wri_taux, wri_tauy
     1772!ym  REAL, DIMENSION(iim, jjm+1) :: wri_calv
     1773!ym  REAL, DIMENSION(iim, jjm+1) :: wri_tauxx, wri_tauyy, wri_tauzz
     1774!ym  REAL, DIMENSION(iim, jjm+1) :: tmp_lon, tmp_lat
     1775
     1776  real, dimension(iim, jjphy_nb) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice
     1777  real, dimension(iim, jjphy_nb) :: wri_nsol_sea, wri_fder_ice, wri_evap_ice
     1778  REAL, DIMENSION(iim, jjphy_nb) :: wri_evap_sea, wri_rcoa, wri_rriv
     1779  REAL, DIMENSION(iim, jjphy_nb) :: wri_rain, wri_snow, wri_taux, wri_tauy
     1780  REAL, DIMENSION(iim, jjphy_nb) :: wri_calv
     1781  REAL, DIMENSION(iim, jjphy_nb) :: wri_tauxx, wri_tauyy, wri_tauzz
     1782  REAL, DIMENSION(iim, jjphy_nb) :: tmp_lon, tmp_lat
     1783  REAL, DIMENSION(iim, jjphy_nb) :: wri_windsp
     1784
    15731785! variables relues par le coupleur
    15741786! read_sic = fraction de glace
     
    15811793! l'avoir lu
    15821794  real, allocatable,dimension(:,:),save :: pctsrf_sav
    1583   real, dimension(iim, jjm+1, 2) :: tamp_srf
     1795  real, dimension(iim, jjphy_nb, 3) :: tamp_srf
    15841796  integer, allocatable, dimension(:), save :: tamp_ind
    15851797  real, allocatable, dimension(:,:),save :: tamp_zmasq
    1586   real, dimension(iim, jjm+1) :: deno
     1798  real, dimension(iim, jjphy_nb) :: deno
    15871799  integer                     :: idtime
    15881800  integer, allocatable,dimension(:),save :: unity
     
    16031815  integer :: nb_interf_cpl
    16041816! -- LOOP
     1817
     1818  real :: Up,Down
     1819  integer :: ierr
     1820  integer :: il_time_secs
     1821  real :: tmp_field(klon)
     1822 
    16051823#include "param_cou.h"
    16061824#include "inc_cpl.h"
    16071825#include "temps.inc"
    16081826#include "iniprint.h"
     1827
     1828#ifdef CPP_PARA
     1829  include 'mpif.h'
     1830  integer :: status(MPI_STATUS_SIZE)
     1831#endif
     1832
    16091833!
    16101834! Initialisation
     
    16431867! -- LOOP
    16441868    allocate(cpl_tauy(klon,2), stat = error); sum_error = sum_error + error
    1645     ALLOCATE(cpl_rriv(iim,jjm+1), stat=error); sum_error = sum_error + error
    1646     ALLOCATE(cpl_rcoa(iim,jjm+1), stat=error); sum_error = sum_error + error
    1647     ALLOCATE(cpl_rlic(iim,jjm+1), stat=error); sum_error = sum_error + error
     1869!ym    ALLOCATE(cpl_rriv(iim,jjm+1), stat=error); sum_error = sum_error + error
     1870!ym    ALLOCATE(cpl_rcoa(iim,jjm+1), stat=error); sum_error = sum_error + error
     1871!ym    ALLOCATE(cpl_rlic(iim,jjm+1), stat=error); sum_error = sum_error + error
     1872    ALLOCATE(cpl_rriv(iim,jjphy_nb), stat=error); sum_error = sum_error + error
     1873    ALLOCATE(cpl_rcoa(iim,jjphy_nb), stat=error); sum_error = sum_error + error
     1874    ALLOCATE(cpl_rlic(iim,jjphy_nb), stat=error); sum_error = sum_error + error
     1875
     1876
    16481877!!
    1649     allocate(read_sst(iim, jjm+1), stat = error); sum_error = sum_error + error
    1650     allocate(read_sic(iim, jjm+1), stat = error); sum_error = sum_error + error
    1651     allocate(read_sit(iim, jjm+1), stat = error); sum_error = sum_error + error
    1652     allocate(read_alb_sic(iim, jjm+1), stat = error); sum_error = sum_error + error
    1653 
     1878!ym    allocate(read_sst(iim, jjm+1), stat = error); sum_error = sum_error + error
     1879!ym    allocate(read_sic(iim, jjm+1), stat = error); sum_error = sum_error + error
     1880!ym    allocate(read_sit(iim, jjm+1), stat = error); sum_error = sum_error + error
     1881!ym    allocate(read_alb_sic(iim, jjm+1), stat = error); sum_error = sum_error + error
     1882    allocate(read_sst(iim, jjphy_nb), stat = error); sum_error = sum_error + error
     1883    allocate(read_sic(iim, jjphy_nb), stat = error); sum_error = sum_error + error
     1884    allocate(read_sit(iim, jjphy_nb), stat = error); sum_error = sum_error + error
     1885    allocate(read_alb_sic(iim, jjphy_nb), stat = error); sum_error = sum_error + error
     1886    read_sst=0.
     1887    read_sic=0.
     1888    read_sit=0.
     1889    read_alb_sic=0.
    16541890    if (sum_error /= 0) then
    16551891      abort_message='Pb allocation variables couplees'
     
    16651901    sum_error = 0
    16661902    allocate(tamp_ind(klon), stat = error); sum_error = sum_error + error
    1667     allocate(tamp_zmasq(iim, jjm+1), stat = error); sum_error = sum_error + error   
     1903!ym    allocate(tamp_zmasq(iim, jjm+1), stat = error); sum_error = sum_error + error   
     1904    allocate(tamp_zmasq(iim, jjphy_nb), stat = error); sum_error = sum_error + error   
     1905    tamp_zmasq=1.
     1906   
    16681907    do ig = 1, klon
    16691908      tamp_ind(ig) = ig
    16701909    enddo
    1671     call gath2cpl(zmasq, tamp_zmasq, klon, klon, iim, jjm, tamp_ind)
     1910    call gath2cpl(zmasq, tamp_zmasq, klon, klon, iim, jjphy_nb, tamp_ind)
    16721911!
    16731912! initialisation couplage
     
    16761915#ifdef CPP_COUPLE
    16771916#ifdef CPP_PSMILE
    1678     CALL inicma(iim, (jjm+1))
     1917   CALL inicma(iim, (jjm+1))
    16791918#else
     1919   if (.not. monocpu) then
     1920      abort_message='coupleur parallele uniquement avec PSMILE'
     1921      call abort_gcm(modname,abort_message,1)
     1922   endif
    16801923   call inicma(npas , nexca, idtime,(jjm+1)*iim)
    16811924#endif
     
    16841927! initialisation sorties netcdf
    16851928!
     1929 !ym  IO de check deconnecte pour le moment en //
     1930    IF (monocpu) THEN
    16861931    idayref = day_ini
    16871932    CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
     
    17221967    CALL histsync(nidcs)
    17231968
     1969    ENDIF    ! monocpu
     1970   
    17241971! pour simuler la fonte des glaciers antarctiques
    17251972!
    1726     surf_maille = (4. * rpi * ra**2) / (iim * (jjm +1))
    1727     ALLOCATE(coeff_iceberg(iim,jjm+1), stat=error)
    1728     if (error /= 0) then
    1729       abort_message='Pb allocation variable coeff_iceberg'
    1730       call abort_gcm(modname,abort_message,1)
    1731     endif
    1732     open (12,file='flux_iceberg',form='formatted',status='old')
    1733     read (12,*) coeff_iceberg
    1734     close (12)
    1735     num_antarctic = max(1, count(coeff_iceberg > 0))
     1973!ym => pour le moment, c'est en commentaire, donc je squizze
     1974
     1975!ym    surf_maille = (4. * rpi * ra**2) / (iim * (jjm +1))
     1976!ym    ALLOCATE(coeff_iceberg(iim,jjm+1), stat=error)
     1977!ym    if (error /= 0) then
     1978!ym      abort_message='Pb allocation variable coeff_iceberg'
     1979!ym      call abort_gcm(modname,abort_message,1)
     1980!ym    endif
     1981!ym    open (12,file='flux_iceberg',form='formatted',status='old')
     1982!ym    read (12,*) coeff_iceberg
     1983!ym    close (12)
     1984!ym    num_antarctic = max(1, count(coeff_iceberg > 0))
    17361985   
    17371986    first_appel = .false.
     
    18002049#ifdef CPP_PSMILE
    18012050      il_time_secs=(itime-1)*dtime
    1802       CALL fromcpl(il_time_secs, iim, (jjm+1),                           &
     2051      CALL fromcpl(il_time_secs, iim, jjphy_nb,                           &
    18032052     &        read_sst, read_sic, read_sit, read_alb_sic)
    18042053#else
     2054     if (.not. monocpu) then
     2055        abort_message='coupleur parallele uniquement avec PSMILE'
     2056        call abort_gcm(modname,abort_message,1)
     2057     endif
     2058
    18052059      call fromcpl(itime-1,(jjm+1)*iim,                                  &
    18062060     &        read_sst, read_sic, read_sit, read_alb_sic)
     
    18102064! sorties NETCDF des champs recus
    18112065!
    1812       ndexcs(:)=0
    1813       itau_w = itau_phy + itime
    1814       CALL histwrite(nidcs,cl_read(1),itau_w,read_sst,iim*(jjm+1),ndexcs)
    1815       CALL histwrite(nidcs,cl_read(2),itau_w,read_sic,iim*(jjm+1),ndexcs)
    1816       CALL histwrite(nidcs,cl_read(3),itau_w,read_alb_sic,iim*(jjm+1),ndexcs)
    1817       CALL histwrite(nidcs,cl_read(4),itau_w,read_sit,iim*(jjm+1),ndexcs)
    1818       CALL histsync(nidcs)
     2066     if (monocpu) THEN
     2067       ndexcs(:)=0
     2068       itau_w = itau_phy + itime
     2069       CALL histwrite(nidcs,cl_read(1),itau_w,read_sst,iim*(jjm+1),ndexcs)
     2070       CALL histwrite(nidcs,cl_read(2),itau_w,read_sic,iim*(jjm+1),ndexcs)
     2071       CALL histwrite(nidcs,cl_read(3),itau_w,read_alb_sic,iim*(jjm+1),ndexcs)
     2072       CALL histwrite(nidcs,cl_read(4),itau_w,read_sit,iim*(jjm+1),ndexcs)
     2073       CALL histsync(nidcs)
     2074     endif
    18192075! pas utile      IF (npas-itime.LT.nexca )CALL histclo(nidcs)
    18202076
    1821       do j = 1, jjm + 1
    1822         do ig = 1, iim
     2077!ym      do j = 1, jjm + 1
     2078       do j = 1, jjphy_nb
     2079         do ig = 1, iim
    18232080          if (abs(1. - read_sic(ig,j)) < 0.00001) then
    18242081            read_sst(ig,j) = RTT - 1.8
     
    18392096! transformer read_sic en pctsrf_sav
    18402097!
    1841       call cpl2gath(read_sic, tamp_sic , klon, klon,iim,jjm, unity)
     2098      call cpl2gath(read_sic, tamp_sic , klon, klon,iim,jjphy_nb, unity)
    18422099      do ig = 1, klon
    18432100        IF (pctsrf(ig,is_oce) > epsfra .OR.            &
     
    18822139    if (nisurf == is_oce .and. (.not. cumul) ) then
    18832140      sum_error = 0
    1884       allocate(tmp_sols(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1885       allocate(tmp_nsol(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1886       allocate(tmp_rain(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1887       allocate(tmp_snow(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1888       allocate(tmp_evap(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1889       allocate(tmp_tsol(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1890       allocate(tmp_fder(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1891       allocate(tmp_albe(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1892       allocate(tmp_taux(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1893       allocate(tmp_tauy(iim,jjm+1,2), stat=error); sum_error = sum_error + error
    1894 ! -- LOOP
    1895        allocate(tmp_windsp(iim,jjm+1,2), stat=error); sum_error = sum_error + error
     2141      allocate(tmp_sols(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2142      allocate(tmp_nsol(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2143      allocate(tmp_rain(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2144      allocate(tmp_snow(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2145      allocate(tmp_evap(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2146      allocate(tmp_tsol(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2147      allocate(tmp_fder(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2148      allocate(tmp_albe(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2149      allocate(tmp_taux(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2150      allocate(tmp_tauy(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
     2151! -- LOOP
     2152       allocate(tmp_windsp(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error
    18962153! -- LOOP
    18972154!!$      allocate(tmp_rriv(iim,jjm+1,2), stat=error); sum_error = sum_error + error
     
    19082165    cpl_index = 1
    19092166    if (nisurf == is_sic) cpl_index = 2
    1910     call gath2cpl(cpl_sols(1,cpl_index), tmp_sols(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1911     call gath2cpl(cpl_nsol(1,cpl_index), tmp_nsol(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1912     call gath2cpl(cpl_rain(1,cpl_index), tmp_rain(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1913     call gath2cpl(cpl_snow(1,cpl_index), tmp_snow(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1914     call gath2cpl(cpl_evap(1,cpl_index), tmp_evap(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1915     call gath2cpl(cpl_tsol(1,cpl_index), tmp_tsol(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1916     call gath2cpl(cpl_fder(1,cpl_index), tmp_fder(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1917     call gath2cpl(cpl_albe(1,cpl_index), tmp_albe(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1918     call gath2cpl(cpl_taux(1,cpl_index), tmp_taux(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
    1919 ! -- LOOP
    1920      call gath2cpl(cpl_windsp(1,cpl_index), tmp_windsp(1,1,cpl_index), klon, knon,iim,jjm,             knindex)
    1921 ! -- LOOP
    1922     call gath2cpl(cpl_tauy(1,cpl_index), tmp_tauy(1,1,cpl_index), klon, knon,iim,jjm,                  knindex)
     2167    call gath2cpl(cpl_sols(1,cpl_index), tmp_sols(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2168    call gath2cpl(cpl_nsol(1,cpl_index), tmp_nsol(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2169    call gath2cpl(cpl_rain(1,cpl_index), tmp_rain(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2170    call gath2cpl(cpl_snow(1,cpl_index), tmp_snow(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2171    call gath2cpl(cpl_evap(1,cpl_index), tmp_evap(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2172    call gath2cpl(cpl_tsol(1,cpl_index), tmp_tsol(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2173    call gath2cpl(cpl_fder(1,cpl_index), tmp_fder(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2174    call gath2cpl(cpl_albe(1,cpl_index), tmp_albe(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2175    call gath2cpl(cpl_taux(1,cpl_index), tmp_taux(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2176    call gath2cpl(cpl_tauy(1,cpl_index), tmp_tauy(1,1,cpl_index), klon, knon,iim,jjphy_nb,                  knindex)
     2177! -- LOOP
     2178     call gath2cpl(cpl_windsp(1,cpl_index), tmp_windsp(1,1,cpl_index), klon, knon,iim,jjphy_nb,            knindex)
     2179! -- LOOP
    19232180
    19242181!
     
    19312188       wri_windsp = 0.
    19322189! -- LOOP     
    1933       call gath2cpl(pctsrf(1,is_oce), tamp_srf(1,1,1), klon, klon, iim, jjm, tamp_ind)
    1934       call gath2cpl(pctsrf(1,is_sic), tamp_srf(1,1,2), klon, klon, iim, jjm, tamp_ind)
     2190      call gath2cpl(pctsrf(1,is_oce), tamp_srf(1,1,1), klon, klon, iim, jjphy_nb, tamp_ind)
     2191      call gath2cpl(pctsrf(1,is_sic), tamp_srf(1,1,2), klon, klon, iim, jjphy_nb, tamp_ind)
    19352192
    19362193      wri_sol_ice = tmp_sols(:,:,2)
     
    19482205      wri_rriv = cpl_rriv(:,:)
    19492206      wri_rcoa = cpl_rcoa(:,:)
    1950       DO j = 1, jjm + 1
    1951         wri_calv(:,j) = sum(cpl_rlic(:,j)) / iim
    1952       enddo
    1953 
     2207
     2208!ym  !! ATTENTION ICI
     2209     
     2210!ym      DO j = 1, jjm + 1
     2211!ym        wri_calv(:,j) = sum(cpl_rlic(:,j)) / iim
     2212!ym      enddo
     2213
     2214!Essai OM+JLD : ca marche !!!! (17 mars 2006)
     2215      tamp_srf(:,:,3)=0.
     2216      CALL gath2cpl( pctsrf(1,is_lic), tamp_srf(1,1,3), klon, klon, iim, jjphy_nb, tamp_ind)
     2217
     2218!YM pour retrouver resultat avant tamp_srf(:,3)=1.
     2219     
     2220      DO j = 1, jjphy_nb
     2221         wri_calv(:,j) = DOT_PRODUCT (cpl_rlic(1:iim,j), tamp_srf(1:iim,j,3)) / REAL(iim)
     2222      ENDDO
     2223
     2224!ym      wri_calv(:,:)=0.
     2225!ym      DO j = 1, jjphy_nb
     2226!ym        wri_calv(:,j) = sum(cpl_rlic(:,j))/iim
     2227!ym      enddo
     2228
     2229      IF (.NOT. monocpu) THEN
     2230        if (phy_rank /= 0) then
     2231#ifdef CPP_PARA
     2232          call MPI_RECV(Up,1,MPI_REAL8,phy_rank-1,1234,COMM_LMDZ,status,ierr)
     2233          call MPI_SEND(wri_calv(1,1),1,MPI_REAL8,phy_rank-1,1234,COMM_LMDZ,ierr)
     2234#endif
     2235        endif
     2236       
     2237        if (phy_rank /= phy_size-1) then
     2238#ifdef CPP_PARA
     2239          call MPI_SEND(wri_calv(1,jjphy_nb),1,MPI_REAL8,phy_rank+1,1234,COMM_LMDZ,ierr) 
     2240          call MPI_RECV(down,1,MPI_REAL8,phy_rank+1,1234,COMM_LMDZ,status,ierr)
     2241#endif
     2242        endif
     2243       
     2244        if (phy_rank /=0 .and. iiphy_begin /=1) then
     2245          Up=Up+wri_calv(iim,1)
     2246          wri_calv(:,1)=Up
     2247        endif
     2248     
     2249        if (phy_rank /=phy_size-1 .and. iiphy_end /= iim) then
     2250          Down=Down+wri_calv(1,jjphy_nb)
     2251          wri_calv(:,jjphy_nb)=Down     
     2252        endif
     2253      ENDIF
     2254     
    19542255      where (tamp_zmasq /= 1.)
    19552256        deno =  tamp_srf(:,:,1) + tamp_srf(:,:,2)
     
    19702271!      wri_calv = coeff_iceberg * cte_flux_iceberg / (num_antarctic * surf_maille)
    19712272!
    1972 ! on passe les coordonnées de la grille
    1973 !
    1974 
    1975       CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,tmp_lon)
    1976       CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,tmp_lat)
    1977 
    1978       DO i = 1, iim
    1979         tmp_lon(i,1) = rlon(i+1)
    1980         tmp_lon(i,jjm + 1) = rlon(i+1)
    1981       ENDDO
     2273! on passe les coordonnees de la grille
     2274!
     2275
     2276!ym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,tmp_lon)
     2277!ym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,tmp_lat)
     2278
     2279      CALL phy2dyn(rlon,tmp_lon,1)
     2280      CALL phy2dyn(rlat,tmp_lat,1)
     2281     
     2282!ym      DO i = 1, iim
     2283!ym        tmp_lon(i,1) = rlon(i+1)
     2284!ym        tmp_lon(i,jjm + 1) = rlon(i+1)
     2285!ym      ENDDO
     2286
    19822287!
    19832288! sortie netcdf des champs pour le changement de repere
    19842289!
    1985       ndexct(:)=0
    1986       CALL histwrite(nidct,'tauxe',itau_w,wri_taux,iim*(jjm+1),ndexct)
    1987       CALL histwrite(nidct,'tauyn',itau_w,wri_tauy,iim*(jjm+1),ndexct)
    1988       CALL histwrite(nidct,'tmp_lon',itau_w,tmp_lon,iim*(jjm+1),ndexct)
    1989       CALL histwrite(nidct,'tmp_lat',itau_w,tmp_lat,iim*(jjm+1),ndexct)
    1990 
    1991 !
    1992 ! calcul 3 coordonnées du vent
    1993 !
    1994       CALL atm2geo (iim , jjm + 1, wri_taux, wri_tauy, tmp_lon, tmp_lat, &
     2290      IF (monocpu) THEN
     2291        ndexct(:)=0
     2292        CALL histwrite(nidct,'tauxe',itau_w,wri_taux,iim*(jjm+1),ndexct)
     2293        CALL histwrite(nidct,'tauyn',itau_w,wri_tauy,iim*(jjm+1),ndexct)
     2294        CALL histwrite(nidct,'tmp_lon',itau_w,tmp_lon,iim*(jjm+1),ndexct)
     2295        CALL histwrite(nidct,'tmp_lat',itau_w,tmp_lat,iim*(jjm+1),ndexct)
     2296      ENDIF 
     2297!
     2298! calcul 3 coordonnees du vent
     2299!
     2300      CALL atm2geo (iim , jjphy_nb, wri_taux, wri_tauy, tmp_lon, tmp_lat, &
    19952301         & wri_tauxx, wri_tauyy, wri_tauzz )
    19962302!
     
    19982304! envoi au coupleur
    19992305!
     2306    IF (monocpu) THEN
    20002307      CALL histwrite(nidct,cl_writ(8),itau_w,wri_sol_ice,iim*(jjm+1),ndexct)
    20012308      CALL histwrite(nidct,cl_writ(9),itau_w,wri_sol_sea,iim*(jjm+1),ndexct)
     
    20202327! -- LOOP
    20212328      CALL histsync(nidct)
     2329    ENDIF
    20222330! pas utile      IF (lafin) CALL histclo(nidct)
    20232331#ifdef CPP_COUPLE
    20242332#ifdef CPP_PSMILE
    20252333      il_time_secs=(itime-1)*dtime
    2026 
     2334     
    20272335      CALL intocpl(il_time_secs, iim, jjm+1, wri_sol_ice, wri_sol_sea, wri_nsol_ice,&
    20282336      & wri_nsol_sea, wri_fder_ice, wri_evap_ice, wri_evap_sea, wri_rain, &
     
    20812389!
    20822390  if (nisurf == is_oce) then
    2083     call cpl2gath(read_sst, tsurf_new, klon, knon,iim,jjm, knindex)
     2391    call cpl2gath(read_sst, tsurf_new, klon, knon,iim,jjphy_nb, knindex)
    20842392  else if (nisurf == is_sic) then
    2085     call cpl2gath(read_sit, tsurf_new, klon, knon,iim,jjm, knindex)
    2086     call cpl2gath(read_alb_sic, alb_new, klon, knon,iim,jjm, knindex)
     2393    call cpl2gath(read_sit, tsurf_new, klon, knon,iim,jjphy_nb, knindex)
     2394    call cpl2gath(read_alb_sic, alb_new, klon, knon,iim,jjphy_nb, knindex)
    20872395  endif
    20882396  pctsrf_new(:,nisurf) = pctsrf_sav(:,nisurf)
    20892397 
     2398  if (mod(itime, nexca) == -1) then
     2399    tmp_field=0.
     2400    do i = 1, knon
     2401      ig = knindex(i)
     2402      tmp_field(ig) = 1.
     2403    enddo   
     2404!ym    call WriteField_phy('knindex',tmp_field,1)
     2405   
     2406    tmp_field=0.
     2407    do i = 1, knon
     2408      ig = knindex(i)
     2409      tmp_field(ig) = tsurf_new(i)
     2410    enddo   
     2411!ym    call WriteField_phy('tsurf_new',tmp_field,1)
     2412   
     2413    tmp_field=0.
     2414    do i = 1, knon
     2415      ig = knindex(i)
     2416      tmp_field(ig) = alb_new(i)
     2417    enddo   
     2418!ym    call WriteField_phy('alb_new',tmp_field,1)
     2419   
     2420!    tmp_field=0.
     2421!   do i = 1, knon
     2422!      ig = knindex(i)
     2423!      tmp_field(ig) = pctsrf_new(i,nisurf)
     2424 !   enddo   
     2425!ym    call WriteField_phy('pctsrf_new', pctsrf_new(:,nisurf),1)
     2426  endif
     2427!ym  do j=1,jjphy_nb
     2428!ym    do i=1,iim
     2429!ym      print *,phy_rank,'read_sst(',i,',',j,')=',read_sst(i,j)
     2430!ym    enddo
     2431!ym  enddo
     2432 
     2433!ym  do i=1,knon
     2434!ym    print *,phy_rank,'tsurf_new(',i,')=',tsurf_new(i)
     2435!ym  enddo
    20902436!  if (lafin) call quitcpl
    20912437
     
    21402486  REAL :: amn, amx
    21412487  INTEGER, save :: lmt_pas, julien, idayvrai
     2488!$OMP THREADPRIVATE(lmt_pas, julien, idayvrai)
    21422489  REAL, parameter :: unjour=86400.
    21432490  real, allocatable, dimension(:), save :: tmp_tslab, tmp_seaice
    21442491  REAL, allocatable, dimension(:), save :: slab_bils
    21452492  REAL, allocatable, dimension(:), save :: lmt_bils
     2493!$OMP THREADPRIVATE(tmp_tslab, tmp_seaice,slab_bils,lmt_bils)
    21462494  logical,save              :: check = .false.
     2495!$OMP THREADPRIVATE(check)
     2496
    21472497!
    21482498  REAL, parameter :: cyang=50.0 * 4.228e+06 ! capacite calorifique volumetrique de l'eau J/(m2 K)
     
    23172667!
    23182668  SUBROUTINE interfoce_lim(itime, dtime, jour, &
    2319      & klon, nisurf, knon, knindex, &
     2669     & klon_xx, nisurf, knon, knindex, &
    23202670     & debut,  &
    2321      & lmt_sst, pctsrf_new)
     2671     & lmt_sst_p, pctsrf_new_p)
     2672     
     2673     USE dimphy,klon=>klon2,klon2=>klon
     2674
     2675#include "indicesol.inc"
    23222676
    23232677! Cette routine sert d'interface entre le modele atmospherique et un fichier
     
    23462700  real   , intent(IN) :: dtime
    23472701  integer, intent(IN) :: jour
     2702  integer, intent(in) :: klon_xx
    23482703  integer, intent(IN) :: nisurf
    23492704  integer, intent(IN) :: knon
    2350   integer, intent(IN) :: klon
    2351   integer, dimension(klon), intent(in) :: knindex
     2705  integer, dimension(klon2), intent(in) :: knindex
    23522706  logical, intent(IN) :: debut
    23532707
    23542708! Parametres de sortie
    2355   real, intent(out), dimension(klon) :: lmt_sst
    2356   real, intent(out), dimension(klon,nbsrf) :: pctsrf_new
     2709  real, intent(out), dimension(klon2) :: lmt_sst_p
     2710  real, intent(out), dimension(klon2,nbsrf) :: pctsrf_new_p
     2711
     2712!  real, dimension(klon) :: lmt_sst
     2713  real, dimension(klon,nbsrf) :: pctsrf_new
    23572714
    23582715! Variables locales
     
    23602717  INTEGER,save :: lmt_pas     ! frequence de lecture des conditions limites
    23612718                             ! (en pas de physique)
     2719!$OMP THREADPRIVATE(lmt_pas)
    23622720  logical,save :: deja_lu    ! pour indiquer que le jour a lire a deja
    23632721                             ! lu pour une surface precedente
     2722!$OMP THREADPRIVATE(deja_lu)
    23642723  integer,save :: jour_lu
     2724!$OMP THREADPRIVATE(jour_lu)
    23652725  integer      :: ierr
    23662726  character (len = 20) :: modname = 'interfoce_lim'
    23672727  character (len = 80) :: abort_message
    23682728  character (len = 20),save :: fich ='limit.nc'
     2729!$OMP THREADPRIVATE(fich)
    23692730  logical, save     :: newlmt = .TRUE.
     2731!$OMP THREADPRIVATE(newlmt)
    23702732  logical, save     :: check = .FALSE.
     2733!$OMP THREADPRIVATE(check)
    23712734! Champs lus dans le fichier de CL
    2372   real, allocatable , save, dimension(:) :: sst_lu, rug_lu, nat_lu
    2373   real, allocatable , save, dimension(:,:) :: pct_tmp
     2735  real, allocatable , save, dimension(:) :: sst_lu_p
     2736!$OMP THREADPRIVATE(sst_lu_p)
     2737  real, allocatable , save, dimension(:) :: sst_lu_mpi
     2738
     2739  real, allocatable , save, dimension(:,:) :: pct_tmp_p
     2740!$OMP THREADPRIVATE(pct_tmp_p)
     2741  real, allocatable , save, dimension(:,:) :: pct_tmp_mpi
     2742  real, dimension(klon,nbsrf) :: pct_tmp
     2743  real, dimension(klon) :: sst_lu
     2744  real, dimension(klon) :: nat_lu
    23742745!
    23752746! quelques variables pour netcdf
     
    23792750  integer, dimension(2) :: start, epais
    23802751!
    2381 ! Fin déclaration
    2382 !
    2383    
    2384   if (debut .and. .not. allocated(sst_lu)) then
     2752! Fin declaration
     2753!
     2754 
     2755  if (debut .and. .not. allocated(sst_lu_p)) then
    23852756    lmt_pas = nint(86400./dtime * 1.0) ! pour une lecture une fois par jour
    23862757    jour_lu = jour - 1
    2387     allocate(sst_lu(klon))
    2388     allocate(nat_lu(klon))
    2389     allocate(pct_tmp(klon,nbsrf))
     2758    allocate(sst_lu_p(klon_omp))
     2759    allocate(pct_tmp_p(klon_omp,nbsrf))
    23902760  endif
    23912761
     
    24002770! Ouverture du fichier
    24012771!
     2772!$OMP MASTER
     2773    if (.not. allocated(sst_lu_mpi)) allocate(sst_lu_mpi(klon_mpi))
     2774    if (.not. allocated(pct_tmp_mpi)) allocate(pct_tmp_mpi(klon_mpi,nbsrf))
     2775   
     2776    if (phy_rank==0) then
     2777   
    24022778    fich = trim(fich)
    24032779    ierr = NF_OPEN (fich, NF_NOWRITE,nid)
     
    25392915!
    25402916    ierr = NF_CLOSE(nid)
    2541     deja_lu = .true.
    2542     jour_lu = jour
    2543   endif
     2917   endif ! phyrank
    25442918!
    25452919! Recopie des variables dans les champs de sortie
    25462920!
    2547   lmt_sst = 999999999.
     2921  call ScatterField(sst_lu,sst_lu_mpi,1)
     2922  call ScatterField(pct_tmp(:,is_oce),pct_tmp_mpi(:,is_oce),1)
     2923  call ScatterField(pct_tmp(:,is_sic),pct_tmp_mpi(:,is_sic),1)
     2924!$OMP END MASTER
     2925!$OMP BARRIER
     2926  call ScatterField_omp(sst_lu_mpi,sst_lu_p,1)
     2927  call ScatterField_omp(pct_tmp_mpi(:,is_oce),pct_tmp_p(:,is_oce),1)
     2928  call ScatterField_omp(pct_tmp_mpi(:,is_sic),pct_tmp_p(:,is_sic),1)
     2929   deja_lu = .true.
     2930   jour_lu = jour
     2931  endif   
     2932 
     2933  lmt_sst_p = 999999999.
     2934 
    25482935  do ii = 1, knon
    2549     lmt_sst(ii) = sst_lu(knindex(ii))
     2936    lmt_sst_p(ii) = sst_lu_p(knindex(ii))
    25502937  enddo
    25512938
    2552   pctsrf_new(:,is_oce) = pct_tmp(:,is_oce)
    2553   pctsrf_new(:,is_sic) = pct_tmp(:,is_sic)
     2939  do ii=1,klon2
     2940    pctsrf_new_p(ii,is_oce)=pct_tmp_p(ii,is_oce)
     2941    pctsrf_new_p(ii,is_sic)=pct_tmp_p(ii,is_sic)
     2942  enddo
     2943 
    25542944
    25552945  END SUBROUTINE interfoce_lim
     
    25592949!
    25602950  SUBROUTINE interfsur_lim(itime, dtime, jour, &
    2561      & klon, nisurf, knon, knindex, &
     2951     & klon_xx, nisurf, knon, knindex, &
    25622952     & debut,  &
    2563      & lmt_alb, lmt_rug)
     2953     & lmt_alb_p, lmt_rug_p)
     2954
     2955     USE dimphy,klon=>klon2,klon2=>klon
    25642956
    25652957! Cette routine sert d'interface entre le modele atmospherique et un fichier
     
    25812973!   lmt_sst      SST lues dans le fichier de CL
    25822974!   lmt_alb      Albedo lu
    2583 !   lmt_rug      longueur de rugosité lue
     2975!   lmt_rug      longueur de rugosite lue
    25842976!   pctsrf_new   sous-maille fractionnelle
    25852977!
     
    25922984  integer, intent(IN) :: nisurf
    25932985  integer, intent(IN) :: knon
    2594   integer, intent(IN) :: klon
    2595   integer, dimension(klon), intent(in) :: knindex
     2986  integer, intent(IN) :: klon_xx
     2987  integer, dimension(klon2), intent(in) :: knindex
    25962988  logical, intent(IN) :: debut
    25972989
    25982990! Parametres de sortie
    2599   real, intent(out), dimension(klon) :: lmt_alb
    2600   real, intent(out), dimension(klon) :: lmt_rug
     2991  real, intent(out), dimension(klon2) :: lmt_alb_p
     2992  real, intent(out), dimension(klon2) :: lmt_rug_p
     2993
     2994!  real,  dimension(klon) :: lmt_alb
     2995!  real,  dimension(klon) :: lmt_rug
    26012996
    26022997! Variables locales
     
    26042999  integer,save :: lmt_pas     ! frequence de lecture des conditions limites
    26053000                             ! (en pas de physique)
     3001!$OMP THREADPRIVATE(lmt_pas)
    26063002  logical,save :: deja_lu_sur! pour indiquer que le jour a lire a deja
    26073003                             ! lu pour une surface precedente
     3004!$OMP THREADPRIVATE(deja_lu_sur)
    26083005  integer,save :: jour_lu_sur
     3006!$OMP THREADPRIVATE(jour_lu_sur)
    26093007  integer      :: ierr
    26103008  character (len = 20) :: modname = 'interfsur_lim'
    26113009  character (len = 80) :: abort_message
    26123010  character (len = 20),save :: fich ='limit.nc'
     3011!$OMP THREADPRIVATE(fich)
    26133012  logical,save     :: newlmt = .false.
     3013!$OMP THREADPRIVATE(newlmt)
    26143014  logical,save     :: check = .false.
     3015!$OMP THREADPRIVATE(check)
    26153016! Champs lus dans le fichier de CL
    2616   real, allocatable , save, dimension(:) :: alb_lu, rug_lu
     3017  real, allocatable , save, dimension(:) :: alb_lu_p, rug_lu_p
     3018!$OMP THREADPRIVATE(alb_lu_p, rug_lu_p)
     3019  real, allocatable , save, dimension(:) :: alb_lu_mpi, rug_lu_mpi
     3020  real, dimension(klon) :: alb_lu, rug_lu
    26173021!
    26183022! quelques variables pour netcdf
     
    26203024#include "netcdf.inc"
    26213025  integer ,save             :: nid, nvarid
     3026!$OMP THREADPRIVATE(nid, nvarid)
    26223027  integer, dimension(2),save :: start, epais
    2623 !
    2624 ! Fin déclaration
    2625 !
    2626    
     3028!$OMP THREADPRIVATE(start, epais)
     3029!
     3030! Fin declaration
     3031!
     3032 
    26273033  if (debut) then
    26283034    lmt_pas = nint(86400./dtime * 1.0) ! pour une lecture une fois par jour
    26293035    jour_lu_sur = jour - 1
    2630     allocate(alb_lu(klon))
    2631     allocate(rug_lu(klon))
     3036    allocate(alb_lu_p(klon_omp))
     3037    allocate(rug_lu_p(klon_omp))
    26323038  endif
    26333039
     
    26403046! Tester d'abord si c'est le moment de lire le fichier
    26413047  if (mod(itime-1, lmt_pas) == 0 .and. .not. deja_lu_sur) then
     3048
     3049!$OMP MASTER
     3050    if (.not. allocated(alb_lu_mpi)) allocate(alb_lu_mpi(klon_mpi))
     3051    if (.not. allocated(rug_lu_mpi)) allocate(rug_lu_mpi(klon_mpi)) 
     3052  if (phy_rank==0) then
    26423053!
    26433054! Ouverture du fichier
     
    26763087    endif
    26773088!
    2678 ! Lecture rugosité
    2679 !
     3089! Lecture rugosite !
    26803090    ierr = NF_INQ_VARID(nid, 'RUG', nvarid)
    26813091    if (ierr /= NF_NOERR) then
     
    26973107!
    26983108    ierr = NF_CLOSE(nid)
     3109
     3110
     3111  endif  !! phyrank
     3112
     3113    call ScatterField(alb_lu,alb_lu_mpi,1)
     3114    call ScatterField(rug_lu,rug_lu_mpi,1)
     3115!$OMP END MASTER
     3116!$OMP BARRIER
     3117
     3118    call ScatterField_omp(alb_lu_mpi,alb_lu_p,1)
     3119    call ScatterField_omp(rug_lu_mpi,rug_lu_p,1)
     3120   
    26993121    deja_lu_sur = .true.
    27003122    jour_lu_sur = jour
     3123
     3124
    27013125  endif
     3126 
    27023127!
    27033128! Recopie des variables dans les champs de sortie
     
    27053130!!$  lmt_alb(:) = 0.0
    27063131!!$  lmt_rug(:) = 0.0
    2707   lmt_alb(:) = 999999.
    2708   lmt_rug(:) = 999999.
     3132 
     3133  lmt_alb_p(:) = 999999.
     3134  lmt_rug_p(:) = 999999.
    27093135  DO ii = 1, knon
    2710     lmt_alb(ii) = alb_lu(knindex(ii))
    2711     lmt_rug(ii) = rug_lu(knindex(ii))
     3136    lmt_alb_p(ii) = alb_lu_p(knindex(ii))
     3137    lmt_rug_p(ii) = rug_lu_p(knindex(ii))
    27123138  enddo
     3139
    27133140
    27143141  END SUBROUTINE interfsur_lim
     
    27243151     & petAcoef, peqAcoef, petBcoef, peqBcoef, &
    27253152     & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l)
    2726 
     3153     USE dimphy,only : omp_rank
    27273154! Cette routine calcule les fluxs en h et q a l'interface et eventuellement
    27283155! une temperature de surface (au cas ou ok_veget = false)
     
    27623189#include "FCTTRE.inc"
    27633190#include "indicesol.inc"
     3191#include "YOMCST.inc"
    27643192
    27653193! Parametres d'entree
     
    27953223!
    27963224  logical, save         :: check = .false.
     3225!$OMP THREADPRIVATE(check)
    27973226  character (len = 20)  :: modname = 'calcul_fluxs'
    27983227  logical, save         :: fonte_neige = .false.
     3228!$OMP THREADPRIVATE(fonte_neige)
    27993229  real, save            :: max_eau_sol = 150.0
     3230!$OMP THREADPRIVATE(max_eau_sol)
    28003231  character (len = 80) :: abort_message
    28013232  logical,save         :: first = .true.,second=.false.
     3233!$OMP THREADPRIVATE(first,second)
    28023234
    28033235  if (check) write(*,*)'Entree ', modname,' surface = ',nisurf
     
    29523384!#########################################################################
    29533385!
    2954   SUBROUTINE gath2cpl(champ_in, champ_out, klon, knon, iim, jjm, knindex)
    2955 
     3386  SUBROUTINE gath2cpl(champ_in, champ_out, klon, knon, iim, jmp1, knindex)
     3387  use dimphy, only: liste_i,liste_j,jjphy_begin,jjphy_nb,phy_rank,phy_size
     3388  implicit none
     3389 
    29563390! Cette routine ecrit un champ 'gathered' sur la grille 2D pour le passer
    29573391! au coupleur.
     
    29693403!
    29703404! input
    2971   integer                   :: klon, knon, iim, jjm
     3405  integer                   :: klon, knon, iim, jmp1
    29723406  real, dimension(klon)     :: champ_in
    29733407  integer, dimension(klon)  :: knindex
    29743408! output
    2975   real, dimension(iim,jjm+1)  :: champ_out
     3409  real, dimension(iim,jmp1)  :: champ_out
    29763410! local
    29773411  integer                   :: i, ig, j
     
    29833417    tamp(ig) = champ_in(i)
    29843418  enddo   
    2985   ig = 1
    2986   champ_out(:,1) = tamp(ig)
    2987   do j = 2, jjm
    2988     do i = 1, iim
    2989       ig = ig + 1
    2990       champ_out(i,j) = tamp(ig)
    2991     enddo
     3419
     3420!ym  ig = 1
     3421!ym  champ_out(:,1) = tamp(ig)
     3422!ym  do j = 2, jjm
     3423!ym    do i = 1, iim
     3424!ym      ig = ig + 1
     3425!ym      champ_out(i,j) = tamp(ig)
     3426!ym    enddo
     3427!ym  enddo
     3428!ym  ig = ig + 1
     3429!ym  champ_out(:,jjm+1) = tamp(ig)
     3430
     3431  do ig=1,klon
     3432    i=liste_i(ig)
     3433    j=liste_j(ig)-jjphy_begin+1
     3434    champ_out(i,j)=tamp(ig)
    29923435  enddo
    2993   ig = ig + 1
    2994   champ_out(:,jjm+1) = tamp(ig)
     3436 
     3437  if (phy_rank==0) champ_out(:,1)=tamp(1)
     3438  if (phy_rank==phy_size-1) champ_out(:,jjphy_nb)=tamp(klon)
    29953439
    29963440  END SUBROUTINE gath2cpl
     
    29983442!#########################################################################
    29993443!
    3000   SUBROUTINE cpl2gath(champ_in, champ_out, klon, knon, iim, jjm, knindex)
    3001 
     3444  SUBROUTINE cpl2gath(champ_in, champ_out, klon, knon, iim, jmp1, knindex)
     3445  use dimphy, only : liste_i, liste_j, jjphy_begin
     3446  implicit none
    30023447! Cette routine ecrit un champ 'gathered' sur la grille 2D pour le passer
    30033448! au coupleur.
     
    30153460!
    30163461! input
    3017   integer                   :: klon, knon, iim, jjm
    3018   real, dimension(iim,jjm+1)     :: champ_in
     3462  integer                   :: klon, knon, iim, jmp1
     3463  real, dimension(iim,jmp1)     :: champ_in
    30193464  integer, dimension(klon)  :: knindex
    30203465! output
     
    30243469  real, dimension(klon)     :: tamp
    30253470  logical ,save                  :: check = .false.
    3026 
    3027   ig = 1
    3028   tamp(ig) = champ_in(1,1)
    3029   do j = 2, jjm
    3030     do i = 1, iim
    3031       ig = ig + 1
    3032       tamp(ig) = champ_in(i,j)
    3033     enddo
     3471!$OMP THREADPRIVATE(check)
     3472
     3473!ym  ig = 1
     3474!ym  tamp(ig) = champ_in(1,1)
     3475!ym  do j = 2, jjm
     3476!ym    do i = 1, iim
     3477!ym      ig = ig + 1
     3478!ym      tamp(ig) = champ_in(i,j)
     3479!ym    enddo
     3480!ym  enddo
     3481!ym  ig = ig + 1
     3482!ym  tamp(ig) = champ_in(1,jjm+1)
     3483
     3484  do ig=1,klon
     3485   i=liste_i(ig)
     3486   j=liste_j(ig)-jjphy_begin+1
     3487   tamp(ig)=champ_in(i,j)
    30343488  enddo
    3035   ig = ig + 1
    3036   tamp(ig) = champ_in(1,jjm+1)
    3037 
     3489 
    30383490  do i = 1, knon
    30393491    ig = knindex(i)
     
    30573509 
    30583510  REAL, DIMENSION(nvm),SAVE :: init, decay
     3511!$OMP THREADPRIVATE(init, decay)
    30593512  REAL :: as
    30603513  DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./
     
    30923545     & petAcoef, peqAcoef, petBcoef, peqBcoef, &
    30933546     & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, &
    3094      & fqcalving,ffonte,run_off_lic_0)
     3547     & fqcalving,fqfonte,ffonte,run_off_lic_0)
    30953548
    30963549! Routine de traitement de la fonte de la neige dans le cas du traitement
    3097 ! de sol simplifié
    3098 !
     3550! de sol simplifie !
    30993551! LF 03/2001
    31003552! input:
     
    31263578!   dflux_l      derivee du flux de chaleur latente  / Ts
    31273579! in/out:
    3128 !   run_off_lic_0 run off glacier du pas de temps précedent
     3580!   run_off_lic_0 run off glacier du pas de temps precedent
    31293581!
    31303582
     
    31523604! Flux thermique utiliser pour fondre la neige
    31533605  real, dimension(klon), intent(INOUT):: ffonte
    3154 ! Flux d'eau "perdue" par la surface et necessaire pour que limiter la
    3155 ! hauteur de neige, en kg/m2/s
    3156   real, dimension(klon), intent(INOUT):: fqcalving
     3606! Flux d'eau "perdu" par la surface et necessaire pour que limiter la
     3607! hauteur de neige, en kg/m2/s. Et flux d'eau de fonte de la calotte.
     3608  REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte
    31573609  real, dimension(klon), intent(INOUT):: run_off_lic_0
    31583610! Variables locales
     
    31813633!
    31823634  logical, save         :: check = .FALSE.
     3635!$OMP THREADPRIVATE(check)
    31833636  character (len = 20)  :: modname = 'fonte_neige'
    31843637  logical, save         :: neige_fond = .false.
     3638!$OMP THREADPRIVATE(neige_fond)
    31853639  real, save            :: max_eau_sol = 150.0
     3640!$OMP THREADPRIVATE(max_eau_sol)
    31863641  character (len = 80) :: abort_message
    31873642  logical,save         :: first = .true.,second=.false.
     3643!$OMP THREADPRIVATE(first,second)
    31883644  real                 :: coeff_rel
    31893645#include "FCTTRE.inc"
     
    32753731      fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i))
    32763732      ffonte(i) = fq_fonte * RLMLT/dtime
     3733      fqfonte(i) = fq_fonte/dtime
    32773734      snow(i) = max(0., snow(i) - fq_fonte)
    32783735      bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     
    32833740        fq_fonte = MAX((tsurf_new(i)-RTT )/chaice,0.0)
    32843741        ffonte(i) = ffonte(i) + fq_fonte * RLMLT/dtime
    3285         bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     3742        IF ( ok_lic_melt ) THEN
     3743           fqfonte(i) = fqfonte(i) + fq_fonte/dtime
     3744           bil_eau_s(i) = bil_eau_s(i) + fq_fonte
     3745        ENDIF
    32863746        tsurf_new(i) = RTT
    32873747      ENDIF
     
    33013761 &                        (1. - coeff_rel) * run_off_lic_0(i)
    33023762      run_off_lic_0(i) = run_off_lic(i)
    3303       run_off_lic(i) = run_off_lic(i) + bil_eau_s(i)/dtime
     3763      run_off_lic(i) = run_off_lic(i) + fqfonte(i)/dtime
    33043764    endif
    33053765  enddo
  • LMDZ4/trunk/libf/phylmd/iophy.F90

    r629 r766  
    77  REAL,private,allocatable,dimension(:),save :: io_lat
    88  REAL,private,allocatable,dimension(:),save :: io_lon
     9  INTEGER, save :: phys_domain_id
    910 
    1011  INTERFACE histwrite_phy
    1112    MODULE PROCEDURE histwrite2d_phy,histwrite3d_phy
    1213  END INTERFACE
     14 
     15  REAL,private,allocatable,save,dimension(:,:) :: buffer_omp
    1316
    1417contains
     
    1619  subroutine init_iophy(lat,lon)
    1720  use dimphy
     21  use ioipsl
    1822  implicit none
    1923  include 'dimensions90.h'   
    2024    real,dimension(iim),intent(in) :: lon
    2125    real,dimension(jjm+1),intent(in) :: lat
    22  
     26
     27    INTEGER,DIMENSION(2) :: ddid
     28    INTEGER,DIMENSION(2) :: dsg
     29    INTEGER,DIMENSION(2) :: dsl
     30    INTEGER,DIMENSION(2) :: dpf
     31    INTEGER,DIMENSION(2) :: dpl
     32    INTEGER,DIMENSION(2) :: dhs
     33    INTEGER,DIMENSION(2) :: dhe
     34
     35!$OMP MASTER 
    2336    allocate(io_lat(jjm+1))
    2437    io_lat(:)=lat(:)
     
    3144    ndex2d(:)=0
    3245    ndex3d(:)=0
     46    allocate(buffer_omp(klon_mpi,klev))
     47   
     48    ddid=(/ 1,2 /)
     49    dsg=(/ iim, jjm+1 /)
     50    dsl=(/ iim, jjphy_nb /)
     51    dpf=(/ 1,jjphy_begin /)
     52    dpl=(/ iim, jjphy_end /)
     53    dhs=(/ iiphy_begin-1,0 /)
     54    if (phy_rank==phy_size-1) then
     55      dhe=(/0,0/)
     56    else
     57      dhe=(/ iim-iiphy_end,0 /) 
     58    endif
     59   
     60    call flio_dom_set(phy_size,phy_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe, &
     61                      'APPLE',phys_domain_id)
    3362
     63!$OMP END MASTER
     64!$OMP FLUSH(buffer_omp)
     65     
    3466  end subroutine init_iophy
    3567 
     
    4779    integer,intent(out) :: nhori
    4880    integer,intent(out) :: nid_day
    49    
     81
     82!$OMP MASTER   
    5083    if (monocpu) then
    5184      call histbeg(name,iim,io_lon, jjphy_nb,io_lat(jjphy_begin:jjphy_end), &
    5285                   1,iim,1,jjphy_nb,itau0, zjulian, dtime, nhori, nid_day)
    5386    else
    54       call histbeg(name//'_'//trim(int2str(phy_rank)),iim,io_lon, jjphy_nb,io_lat(jjphy_begin:jjphy_end), &
    55                    1,iim,1,jjphy_nb,itau0, zjulian, dtime, nhori, nid_day)
     87      call histbeg(name,iim,io_lon, jjphy_nb,io_lat(jjphy_begin:jjphy_end), &
     88                   1,iim,1,jjphy_nb,itau0, zjulian, dtime, nhori, nid_day,phys_domain_id)
    5689    endif
     90!$OMP END MASTER
    5791 
    5892  end subroutine histbeg_phy
     
    68102    integer, intent(in) :: itau
    69103    real,dimension(klon),intent(in) :: field
    70    
    71     CALL phy2dyn(field,tmp_tab2d,1)
     104
     105    CALL GatherField_omp(field,buffer_omp,1)   
     106!$OMP MASTER
     107    CALL phy2dyn(buffer_omp,tmp_tab2d,1)
    72108    CALL histwrite(nid,name,itau,tmp_tab2d,iim*jjphy_nb,ndex2d)
    73    
     109!$OMP END MASTER   
    74110  end subroutine histwrite2d_phy
    75111 
     
    85121    real,dimension(klon,klev),intent(in) :: field
    86122   
    87     CALL phy2dyn(field,tmp_tab3d,klev)
     123    CALL GatherField_omp(field,buffer_omp,klev)
     124!$OMP MASTER
     125    CALL phy2dyn(buffer_omp,tmp_tab3d,klev)
    88126    CALL histwrite(nid,name,itau,tmp_tab3d,iim*jjphy_nb*klev,ndex3d)
    89    
     127!$OMP END MASTER   
    90128  end subroutine histwrite3d_phy
    91129 
     
    96134  include 'dimensions90.h'
    97135 
    98     real,dimension(klon,nlev),intent(in) :: field_phy
     136    real,dimension(klon_mpi,nlev),intent(in) :: field_phy
    99137    real,dimension(iim,jjphy_nb,nlev),intent(out) :: field_dyn
    100138    integer,intent(in) :: nlev
     
    107145        if (jjphy_begin==jjphy_end) then
    108146          field_dyn(:,1,l)=0.
    109           field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon,l)
     147          field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon_mpi,l)
    110148        else
    111149       
     
    115153         else
    116154           field_dyn(:,1,l)=0.
    117            next=iim-iiphy_begin+1
     155           next=iim-iiphy_begin+2
    118156           field_dyn(iiphy_begin:iim,1,l)=field_phy(1:next-1,l)   
    119157         endif
     
    125163         
    126164          if (jjphy_end==jjm+1) then
    127              field_dyn(:,jjphy_nb,l)=field_phy(klon,l)
     165             field_dyn(:,jjphy_nb,l)=field_phy(klon_mpi,l)
    128166          else
    129167           field_dyn(:,jjphy_nb,l)=0.
  • LMDZ4/trunk/libf/phylmd/minmaxqfi.F

    r524 r766  
    33!
    44      SUBROUTINE minmaxqfi(zq,qmin,qmax,comment)
     5      USE dimphy
    56      IMPLICIT none
    67
    7 #include "dimensions.h"
    8 #include "dimphy.h"
     8cym#include "dimensions.h"
     9cym#include "dimphy.h"
    910
    1011      CHARACTER*(*) comment
  • LMDZ4/trunk/libf/phylmd/moy_undefSTD.F

    r684 r766  
    22     $           dtime,ecrit_day,ecrit_mth,ecrit_hf2mth,
    33     $           tnondef,tsumSTD)
     4      USE dimphy
    45      IMPLICIT none
    56c
     
    2021c NB: mettre "inst(X)" dans le write_histXXX.h !
    2122c====================================================================
    22 #include "dimensions.h"
    23       integer jjmp1
    24       parameter (jjmp1=jjm+1-1/jjm)
    25 #include "dimphy.h"
     23cym#include "dimensions.h"
     24cym      integer jjmp1
     25cym      parameter (jjmp1=jjm+1-1/jjm)
     26cym#include "dimphy.h"
    2627c
    2728c variables Input
  • LMDZ4/trunk/libf/phylmd/moyglo_aire.F

    r644 r766  
    22     .            ok_msk, msk, moyglo)
    33c
     4       USE dimphy
    45       IMPLICIT none
    56c
     
    1415c
    1516#include "dimensions.h"
    16 #include "dimphy.h"
     17cym#include "dimphy.h"
    1718       INTEGER i, nhori
    1819       REAL champ(klon), aire(klon), msk(klon)
     
    6162       SUBROUTINE moyglo_pondaima(nhori, nvert, champ,
    6263     . aire, pbord, moyglo)
     64       USE dimphy
    6365       IMPLICIT none
    6466c ==================================================================
     
    7274c ==================================================================
    7375#include "dimensions.h"
    74 #include "dimphy.h"
     76cym#include "dimphy.h"
    7577#include "YOMCST.h"
    7678       INTEGER i, k, nhori, nvert
     
    107109       SUBROUTINE moyglo_pondmass(nhori, nvert, champ,
    108110     . aire, pbord, moyglo)
     111       USE dimphy
    109112       IMPLICIT none
    110113c ==================================================================
     
    118121c ==================================================================
    119122#include "dimensions.h"
    120 #include "dimphy.h"
     123cym#include "dimphy.h"
    121124#include "YOMCST.h"
    122125       INTEGER i, k, nhori, nvert
  • LMDZ4/trunk/libf/phylmd/mpiclim.h

    r524 r766  
    2121C
    2222      common/CLIM_mpiclim/mpi_totproc, mpi_nproc, cmpi_modnam
     23c$OMP THREADPRIVATE(/CLIM_mpiclim/)
    2324C
    2425C     -----------------------------------------------------------------
  • LMDZ4/trunk/libf/phylmd/newmicro.F

    r685 r766  
    1010     e                  bl95_b0, bl95_b1,
    1111     s                  cldtaupi, re, fl)
     12      USE dimphy
    1213      IMPLICIT none
    1314c======================================================================
     
    3940#include "YOMCST.h"
    4041c
    41 #include "dimensions.h"
    42 #include "dimphy.h"
     42cym#include "dimensions.h"
     43cym#include "dimphy.h"
    4344#include "nuage.h"
    4445cIM cf. CR: include pour NOVLP et ZEPSEC
     
    116117       xflwp(i)=0.
    117118       xfiwp(i)=0.
     119cccccccccccc!CDIR NOVECTOR
    118120      DO k = 1, klev
    119121c
  • LMDZ4/trunk/libf/phylmd/nflxtr.F

    r524 r766  
    44      SUBROUTINE nflxtr(pdtime,pmfu,pmfd,pen_u,pde_u,pen_d,pde_d,
    55     .                 pplay,paprs,x,dx)
     6      USE dimphy
    67      IMPLICIT NONE
    78c=====================================================================
     
    2122c=====================================================================
    2223c
    23 #include "dimensions.h"
    24 #include "dimphy.h"
     24cym#include "dimensions.h"
     25cym#include "dimphy.h"
    2526#include "YOMCST.h"
    2627#include "YOECUMF.h"
  • LMDZ4/trunk/libf/phylmd/nuage.F

    r524 r766  
    99     e                  bl95_b0, bl95_b1,
    1010     s                  cldtaupi, re, fl)
     11      USE dimphy
    1112      IMPLICIT none
    1213c======================================================================
     
    3839#include "YOMCST.h"
    3940c
    40 #include "dimensions.h"
    41 #include "dimphy.h"
     41cym#include "dimensions.h"
     42cym#include "dimphy.h"
    4243      REAL paprs(klon,klev+1), pplay(klon,klev)
    4344      REAL t(klon,klev)
     
    229230      SUBROUTINE diagcld1(paprs,pplay,rain,snow,kbot,ktop,
    230231     .                   diafra,dialiq)
     232      use dimphy
    231233      IMPLICIT none
    232234c
     
    238240c ces nuages. Je dois avouer que c'est une frustration.
    239241c
    240 #include "dimensions.h"
    241 #include "dimphy.h"
     242cym#include "dimensions.h"
     243cym#include "dimphy.h"
    242244#include "YOMCST.h"
    243245c
     
    313315      END
    314316      SUBROUTINE diagcld2(paprs,pplay,t,q, diafra,dialiq)
     317      use dimphy
    315318      IMPLICIT none
    316319c
    317 #include "dimensions.h"
    318 #include "dimphy.h"
     320cym#include "dimensions.h"
     321cym#include "dimphy.h"
    319322#include "YOMCST.h"
    320323c
  • LMDZ4/trunk/libf/phylmd/nuage.h

    r524 r766  
    55
    66      common /nuagecom/ rad_froid,rad_chau1, rad_chau2
     7!$OMP THREADPRIVATE(/nuagecom/)
  • LMDZ4/trunk/libf/phylmd/oasis.dummy

    r675 r766  
    9595      cl_writ(18)='CORIVFLU'
    9696      cl_writ(19)='COCALVIN'
    97 c$$$      cl_writ(13)='COZOTAUX'
    98 c$$$      cl_writ(14)='COZOTAUV'
    99 c$$$      cl_writ(15)='COMETAUY'
    100 c$$$      cl_writ(16)='COMETAUU'
     97cxxx      cl_writ(13)='COZOTAUX'
     98cxxx      cl_writ(14)='COZOTAUV'
     99cxxx      cl_writ(15)='COMETAUY'
     100cxxx      cl_writ(16)='COMETAUU'
    101101      cl_writ(1)='COTAUXXU'
    102102      cl_writ(2)='COTAUYYU'
     
    365365      REAL rivrunoff(imjm)
    366366      REAL calving(imjm)
    367 c$$$      REAL tauxu(imjm)
    368 c$$$      REAL tauxv(imjm)
    369 c$$$      REAL tauyu(imjm)
    370 c$$$      REAL tauyv(imjm)
     367cxxx      REAL tauxu(imjm)
     368cxxx      REAL tauxv(imjm)
     369cxxx      REAL tauyu(imjm)
     370cxxx      REAL tauyv(imjm)
    371371      REAL tauxx_u(imjm)
    372372      REAL tauxx_v(imjm)
     
    496496     $          CALL locwrite(cl_writ(jf),calving, imjm,
    497497     $          file_unit_field(jf), ierror)
    498 c$$$            IF (jf.eq.13)
    499 c$$$     $          CALL locwrite(cl_writ(jf),tauxu, imjm,
    500 c$$$     $          file_unit_field(jf),ierror)
    501 c$$$            IF (jf.eq.1')
    502 c$$$     $          CALL locwrite(cl_writ(jf),tauxv, imjm,
    503 c$$$     $          file_unit_field(jf),ierror)
    504 c$$$            IF (jf.eq.15)
    505 c$$$     $          CALL locwrite(cl_writ(jf),tauyv, imjm,
    506 c$$$     $          file_unit_field(jf),ierror)
    507 c$$$            IF (jf.eq.16)
    508 c$$$     $          CALL locwrite(cl_writ(jf),tauyu, imjm,
    509 c$$$     $          file_unit_field(jf), ierror)
     498cxxx            IF (jf.eq.13)
     499cxxx     $          CALL locwrite(cl_writ(jf),tauxu, imjm,
     500cxxx     $          file_unit_field(jf),ierror)
     501cxxx            IF (jf.eq.1')
     502cxxx     $          CALL locwrite(cl_writ(jf),tauxv, imjm,
     503cxxx     $          file_unit_field(jf),ierror)
     504cxxx            IF (jf.eq.15)
     505cxxx     $          CALL locwrite(cl_writ(jf),tauyv, imjm,
     506cxxx     $          file_unit_field(jf),ierror)
     507cxxx            IF (jf.eq.16)
     508cxxx     $          CALL locwrite(cl_writ(jf),tauyu, imjm,
     509cxxx     $          file_unit_field(jf), ierror)
    510510            IF (jf.eq.1)
    511511     $          CALL locwrite(cl_writ(jf),tauxx_u, imjm,
     
    574574          IF (jn.eq.18) CALL CLIM_Export(cl_writ(jn),kt,rivrunoff,info)
    575575          IF (jn.eq.19) CALL CLIM_Export(cl_writ(jn),kt,calving,info)
    576 c$$$          IF (jn.eq.13) CALL CLIM_Export(cl_writ(jn), kt, tauxu, info)
    577 c$$$          IF (jn.eq.14) CALL CLIM_Export(cl_writ(jn), kt, tauxv, info)
    578 c$$$          IF (jn.eq.15) CALL CLIM_Export(cl_writ(jn), kt, tauyv, info)
    579 c$$$          IF (jn.eq.16) CALL CLIM_Export(cl_writ(jn), kt, tauyu, info)
     576cxxx          IF (jn.eq.13) CALL CLIM_Export(cl_writ(jn), kt, tauxu, info)
     577cxxx          IF (jn.eq.14) CALL CLIM_Export(cl_writ(jn), kt, tauxv, info)
     578cxxx          IF (jn.eq.15) CALL CLIM_Export(cl_writ(jn), kt, tauyv, info)
     579cxxx          IF (jn.eq.16) CALL CLIM_Export(cl_writ(jn), kt, tauyu, info)
    580580          IF (jn.eq.1) CALL CLIM_Export(cl_writ(jn), kt, tauxx_u, info)
    581581          IF (jn.eq.2) CALL CLIM_Export(cl_writ(jn), kt, tauyy_u, info)
  • LMDZ4/trunk/libf/phylmd/oasis.psmile

    r626 r766  
    4545   use mod_prism_proto
    4646   use mod_prism_def_partition_proto
    47 
     47   use dimphy
    4848   implicit none
    4949
     
    9494! Here we go: psmile initialisation
    9595!
    96    call prism_init_comp_proto (comp_id, clmodnam, ierror)
    97 
    98    IF (ierror .ne. PRISM_Ok) THEN
    99       abort_message=' Probleme init dans prism_init_comp '
    100       call abort_gcm(modname,abort_message,1)
    101    ELSE
    102       WRITE(nuout,*) 'inicma : init psmile ok '
    103    ENDIF
    104 
    105 ! PSMILe attribution of local communicator
    106 !
    107    call prism_get_localcomm_proto (il_commlocal, ierror)
     96    IF (monocpu) THEN
     97      call prism_init_comp_proto (comp_id, clmodnam, ierror)
     98
     99      IF (ierror .ne. PRISM_Ok) THEN
     100         abort_message=' Probleme init dans prism_init_comp '
     101         call abort_gcm(modname,abort_message,1)
     102      ELSE
     103         WRITE(nuout,*) 'inicma : init psmile ok '
     104      ENDIF
     105    ENDIF
     106
     107      call prism_get_localcomm_proto (il_commlocal, ierror)
    108108!
    109109! and domain decomposition
     
    111111! monoproc case
    112112!
    113    allocate(ig_paral(5))
    114    ig_paral (1) = 2
    115    ig_paral (2) = 0
    116    ig_paral (3) = im
    117    ig_paral (4) = jm
    118    ig_paral (5) = im
    119 
     113   allocate(ig_paral(3))
     114!ym   ig_paral(1) = 0
     115!ym   ig_paral(2) = 0
     116!ym   ig_paral(3) = im * jm
     117   ig_paral(1) = 1    ! apple partition for //
     118   ig_paral(2) = (jjphy_begin-1)*im+iiphy_begin-1
     119   ig_paral(3) = (jjphy_end*im+iiphy_end)-(jjphy_begin*im+iiphy_begin)+1
     120   if (phy_rank==phy_size-1) ig_paral(3)=ig_paral(3)+im-1
     121   print *,phy_rank,'ig_paral--->',ig_paral(2),ig_paral(3)
     122   
     123   ierror=PRISM_Ok
    120124   call prism_def_partition_proto (il_part_id, ig_paral, ierror)
    121125   deallocate(ig_paral)
     
    140144      cl_writ(5)='COTAUYYV'
    141145      cl_writ(6)='COTAUZZV'
    142 c -- LOOP
     146! -- LOOP
    143147      cl_writ(7)='COWINDSP'
    144 c -- LOOP
     148! -- LOOP
    145149      cl_writ(8)='COSHFICE'
    146150      cl_writ(9)='COSHFOCE'
     
    218222   use mod_prism_proto
    219223   use mod_prism_get_proto
    220 
     224   use dimphy
    221225   IMPLICIT none
    222226
     
    225229!
    226230   integer                 :: im, jm, kt
    227    real, dimension(im, jm)   :: sst            ! sea-surface-temperature
    228    real, dimension(im, jm)   :: gla     ! sea-ice
    229    real, dimension(im, jm)   :: tice    ! temp glace
    230    real, dimension(im, jm)   :: albedo  ! albedo glace
     231   real, dimension(im*jm)   :: sst            ! sea-surface-temperature
     232   real, dimension(im*jm)   :: gla     ! sea-ice
     233   real, dimension(im*jm)   :: tice    ! temp glace
     234   real, dimension(im*jm)   :: albedo  ! albedo glace
    231235!
    232236! local variables
     
    236240   character (len = 20),save  :: modname = 'fromcpl'
    237241   character (len = 80)       :: abort_message
     242   integer :: istart,iend
    238243!
    239244#include "param_cou.h"
     
    245250   CALL flush (nuout)
    246251
    247    call prism_get_proto(in_var_id(1), kt, sst, ierror)
     252   istart=iiphy_begin
     253   if (phy_rank==phy_size-1) then
     254    iend=(jjphy_end-jjphy_begin)*im+im
     255   else
     256    iend=(jjphy_end-jjphy_begin)*im+iiphy_end
     257   endif
     258   
     259   call prism_get_proto(in_var_id(1), kt, sst(istart:iend), ierror)
    248260   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. &
    249261 &     ierror.ne.PRISM_FromRest &
     
    254266     call abort_gcm(modname,abort_message,1)
    255267   endif
    256    call prism_get_proto(in_var_id(2), kt, gla, ierror)
     268   call prism_get_proto(in_var_id(2), kt, gla(istart:iend), ierror)
    257269   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. &
    258270 &     ierror.ne.PRISM_FromRest &
     
    263275     call abort_gcm(modname,abort_message,1)
    264276   endif
    265    call prism_get_proto(in_var_id(3), kt, albedo, ierror)
     277   call prism_get_proto(in_var_id(3), kt, albedo(istart:iend), ierror)
    266278   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. &
    267279 &     ierror.ne.PRISM_FromRest &
     
    272284     call abort_gcm(modname,abort_message,1)
    273285   endif
    274    call prism_get_proto(in_var_id(4), kt, tice, ierror)
     286   call prism_get_proto(in_var_id(4), kt, tice(istart:iend), ierror)
    275287   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. &
    276288 &     ierror.ne.PRISM_FromRest &
     
    288300   SUBROUTINE intocpl(kt, im, jm, fsolice, fsolwat, fnsolice, fnsolwat, &
    289301 &    fnsicedt, evice, evwat, lpre, spre, dirunoff, rivrunoff, &
    290  &    calving, tauxx_u, tauyy_u, tauzz_u, tauxx_v, tauyy_v, tauzz_v &
    291 c -- LOOP
    292      $    windsp,
    293 c -- LOOP
    294  &    , last)
     302 &    calving, tauxx_u, tauyy_u, tauzz_u, tauxx_v, tauyy_v, tauzz_v, &
     303! -- LOOP
     304 &    windsp,                                                       &
     305! -- LOOP
     306 &    last)
    295307! ======================================================================
    296308! L. Fairhead (09/2003) adapted From L.Z.X Li: this subroutine provides the
     
    301313   use mod_prism_proto
    302314   use mod_prism_put_proto
    303 
     315   use dimphy
     316   use write_field_phy
    304317   IMPLICIT NONE
    305318
     
    308321!
    309322   integer               :: kt, im, jm
    310    real, dimension(im, jm) :: fsolice, fsolwat, fnsolwat, fnsolice
    311    real, dimension(im, jm) :: fnsicedt, evice, evwat, lpre, spre
    312    real, dimension(im, jm) :: dirunoff, rivrunoff, calving
    313    real, dimension(im, jm) :: tauxx_u, tauxx_v, tauyy_u
    314    real, dimension(im, jm) :: tauyy_v, tauzz_u, tauzz_v
    315    real, dimension(im, jm) :: windsp
     323   real, dimension(im* jm) :: fsolice, fsolwat, fnsolwat, fnsolice
     324   real, dimension(im* jm) :: fnsicedt, evice, evwat, lpre, spre
     325   real, dimension(im* jm) :: dirunoff, rivrunoff, calving
     326   real, dimension(im* jm) :: tauxx_u, tauxx_v, tauyy_u
     327   real, dimension(im* jm) :: tauyy_v, tauzz_u, tauzz_v
     328   real, dimension(im*jm) :: windsp
    316329   logical               :: last
     330   logical :: checkout=.FALSE.
     331   integer :: istart,iend
     332   integer :: wstart,wend
    317333!
    318334! local
     
    329345      WRITE(nuout,*)
    330346
    331    call prism_put_proto(il_out_var_id(8), kt, fsolice, ierror)
     347   istart=iiphy_begin
     348   if (phy_rank==phy_size-1) then
     349    iend=(jjphy_end-jjphy_begin)*im+im
     350   else
     351    iend=(jjphy_end-jjphy_begin)*im+iiphy_end
     352   endif
     353
     354   IF (checkout) THEN   
     355     wstart=istart
     356     wend=iend
     357     IF (phy_rank==0) wstart=istart+im-1
     358     IF (phy_rank==phy_size-1) wend=iend-im+1
     359   
     360     CALL writeField_phy("fsolice",fsolice(wstart:wend),1)
     361     CALL writeField_phy("fsolwat",fsolwat(wstart:wend),1)
     362     CALL writeField_phy("fnsolice",fnsolice(wstart:wend),1)
     363     CALL writeField_phy("fnsolwat",fnsolwat(wstart:wend),1)
     364     CALL writeField_phy("fnsicedt",fnsicedt(wstart:wend),1)
     365     CALL writeField_phy("evice",evice(wstart:wend),1)
     366     CALL writeField_phy("evwat",evwat(wstart:wend),1)
     367     CALL writeField_phy("lpre",lpre(wstart:wend),1)
     368     CALL writeField_phy("spre",spre(wstart:wend),1)
     369     CALL writeField_phy("dirunoff",dirunoff(wstart:wend),1)
     370     CALL writeField_phy("rivrunoff",rivrunoff(wstart:wend),1)
     371     CALL writeField_phy("calving",calving(wstart:wend),1)
     372     CALL writeField_phy("tauxx_u",tauxx_u(wstart:wend),1)
     373     CALL writeField_phy("tauyy_u",tauyy_u(wstart:wend),1)
     374     CALL writeField_phy("tauzz_u",tauzz_u(wstart:wend),1)
     375     CALL writeField_phy("tauxx_v",tauxx_v(wstart:wend),1)
     376     CALL writeField_phy("tauyy_v",tauyy_v(wstart:wend),1)
     377     CALL writeField_phy("tauzz_v",tauzz_v(wstart:wend),1)
     378     CALL writeField_phy("windsp",windsp(wstart:wend),1)
     379   ENDIF
     380   
     381   call prism_put_proto(il_out_var_id(8), kt, fsolice(istart:iend), ierror)
    332382   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    333383 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    337387     call abort_gcm(modname,abort_message,1)
    338388   endif
    339    call prism_put_proto(il_out_var_id(9), kt, fsolwat, ierror)
     389   call prism_put_proto(il_out_var_id(9), kt, fsolwat(istart:iend), ierror)
    340390   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    341391 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    345395     call abort_gcm(modname,abort_message,1)
    346396   endif
    347    call prism_put_proto(il_out_var_id(10), kt, fnsolice, ierror)
     397   call prism_put_proto(il_out_var_id(10), kt, fnsolice(istart:iend), ierror)
    348398   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    349399 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    353403     call abort_gcm(modname,abort_message,1)
    354404   endif
    355    call prism_put_proto(il_out_var_id(11), kt, fnsolwat, ierror)
     405   call prism_put_proto(il_out_var_id(11), kt, fnsolwat(istart:iend), ierror)
    356406   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    357407 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    361411     call abort_gcm(modname,abort_message,1)
    362412   endif
    363    call prism_put_proto(il_out_var_id(12), kt, fnsicedt, ierror)
     413   call prism_put_proto(il_out_var_id(12), kt, fnsicedt(istart:iend), ierror)
    364414   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    365415 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    369419     call abort_gcm(modname,abort_message,1)
    370420   endif
    371    call prism_put_proto(il_out_var_id(13), kt, evice, ierror)
     421   call prism_put_proto(il_out_var_id(13), kt, evice(istart:iend), ierror)
    372422   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    373423 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    377427     call abort_gcm(modname,abort_message,1)
    378428   endif
    379    call prism_put_proto(il_out_var_id(14), kt, evwat, ierror)
     429   call prism_put_proto(il_out_var_id(14), kt, evwat(istart:iend), ierror)
    380430   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    381431 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    385435     call abort_gcm(modname,abort_message,1)
    386436   endif
    387    call prism_put_proto(il_out_var_id(15), kt, lpre, ierror)
     437   call prism_put_proto(il_out_var_id(15), kt, lpre(istart:iend), ierror)
    388438   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    389439 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    393443     call abort_gcm(modname,abort_message,1)
    394444   endif
    395    call prism_put_proto(il_out_var_id(16), kt, spre, ierror)
     445   call prism_put_proto(il_out_var_id(16), kt, spre(istart:iend), ierror)
    396446   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    397447 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    401451     call abort_gcm(modname,abort_message,1)
    402452   endif
    403    call prism_put_proto(il_out_var_id(17), kt, dirunoff, ierror)
     453   call prism_put_proto(il_out_var_id(17), kt, dirunoff(istart:iend), ierror)
    404454   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    405455 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    409459     call abort_gcm(modname,abort_message,1)
    410460   endif
    411    call prism_put_proto(il_out_var_id(18), kt, rivrunoff, ierror)
     461   call prism_put_proto(il_out_var_id(18), kt, rivrunoff(istart:iend), ierror)
    412462   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    413463 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    417467     call abort_gcm(modname,abort_message,1)
    418468   endif
    419    call prism_put_proto(il_out_var_id(19), kt, calving, ierror)
     469   call prism_put_proto(il_out_var_id(19), kt, calving(istart:iend), ierror)
    420470   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    421471 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    425475     call abort_gcm(modname,abort_message,1)
    426476   endif
    427    call prism_put_proto(il_out_var_id(1), kt, tauxx_u, ierror)
     477   call prism_put_proto(il_out_var_id(1), kt, tauxx_u(istart:iend), ierror)
    428478   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    429479 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    433483     call abort_gcm(modname,abort_message,1)
    434484   endif
    435    call prism_put_proto(il_out_var_id(2), kt, tauyy_u, ierror)
     485   call prism_put_proto(il_out_var_id(2), kt, tauyy_u(istart:iend), ierror)
    436486   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    437487 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    441491     call abort_gcm(modname,abort_message,1)
    442492   endif
    443    call prism_put_proto(il_out_var_id(3), kt, tauzz_u, ierror)
     493   call prism_put_proto(il_out_var_id(3), kt, tauzz_u(istart:iend), ierror)
    444494   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    445495 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    449499     call abort_gcm(modname,abort_message,1)
    450500   endif
    451    call prism_put_proto(il_out_var_id(4), kt, tauxx_v, ierror)
     501   call prism_put_proto(il_out_var_id(4), kt, tauxx_v(istart:iend), ierror)
    452502   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    453503 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    457507     call abort_gcm(modname,abort_message,1)
    458508   endif
    459    call prism_put_proto(il_out_var_id(5), kt, tauyy_v, ierror)
     509   call prism_put_proto(il_out_var_id(5), kt, tauyy_v(istart:iend), ierror)
    460510   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    461511 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    465515     call abort_gcm(modname,abort_message,1)
    466516   endif
    467    call prism_put_proto(il_out_var_id(6), kt, tauzz_v, ierror)
     517   call prism_put_proto(il_out_var_id(6), kt, tauzz_v(istart:iend), ierror)
    468518   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    469519 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    473523     call abort_gcm(modname,abort_message,1)
    474524   endif
    475    call prism_put_proto(il_out_var_id(7), kt, windsp, ierror)
     525   call prism_put_proto(il_out_var_id(7), kt, windsp(istart:iend), ierror)
    476526   IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest &
    477527 &     .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. &
     
    483533
    484534   if (last) then
    485      call prism_terminate_proto(ierror)
    486      IF (ierror .ne. PRISM_Ok) THEN
    487        abort_message=' Probleme dans prism_terminate_proto '
    488        call abort_gcm(modname,abort_message,1)
    489      endif
     535     IF (monocpu) THEN
     536       call prism_terminate_proto(ierror)
     537         IF (ierror .ne. PRISM_Ok) THEN
     538         abort_message=' Probleme dans prism_terminate_proto '
     539         call abort_gcm(modname,abort_message,1)
     540       endif
     541     ENDIF
    490542   endif
    491543
  • LMDZ4/trunk/libf/phylmd/orbite.F

    r524 r766  
    4949c======================================================================
    5050      SUBROUTINE angle(longi, lati, frac, muzero)
     51      USE dimphy
    5152      IMPLICIT none
    5253c======================================================================
     
    6465c                   la journee (0 a 1)
    6566c======================================================================
    66 #include "dimensions.h"
    67 #include "dimphy.h"
     67cym#include "dimensions.h"
     68cym#include "dimphy.h"
    6869      REAL longi
    6970      REAL lati(klon), frac(klon), muzero(klon)
     
    108109      SUBROUTINE zenang(longi,gmtime,pdtrad,lat,long,
    109110     s                  pmu0,frac)
     111      USE dimphy
    110112      IMPLICIT none
    111113c=============================================================
     
    131133c frac-----OUTPUT: ensoleillement moyen entre gmtime et gmtime+pdtrad
    132134c================================================================
    133 #include "dimensions.h"
    134 #include "dimphy.h"
     135cym#include "dimensions.h"
     136cym#include "dimphy.h"
    135137#include "YOMCST.h"
    136138c================================================================
     
    261263      SUBROUTINE zenith (longi, gmtime, lat, long,
    262264     s                   pmu0, fract)
     265      USE dimphy
    263266      IMPLICIT none
    264267c
     
    278281c
    279282c====================================================================
    280 #include "dimensions.h"
    281 #include "dimphy.h"
     283cym#include "dimensions.h"
     284cym#include "dimphy.h"
    282285#include "YOMCST.h"
    283286c====================================================================
  • LMDZ4/trunk/libf/phylmd/orografi.F

    r675 r766  
    99     s                   d_t, d_u, d_v)
    1010c
     11      USE dimphy
    1112      IMPLICIT none
    1213c======================================================================
     
    2627c d_v-----output-R-increment de la vitesse v
    2728c======================================================================
    28 #include "dimensions.h"
    29 #include "dimphy.h"
     29cym#include "dimensions.h"
     30cym#include "dimphy.h"
    3031#include "YOMCST.h"
    3132c
     
    132133     r                 , pvom,pvol,pte )
    133134
     135      USE dimphy
    134136      implicit none
    135137
     
    181183c
    182184c
    183 #include "dimensions.h"
    184 #include "dimphy.h"
     185cym#include "dimensions.h"
     186cym#include "dimphy.h"
    185187#include "YOMCST.h"
    186188#include "YOEGWD.h"
     
    191193c
    192194c
    193       integer nlon, nlev, klevm1
     195cym      integer nlon, nlev, klevm1
     196      integer nlon, nlev
    194197      integer kgwd, jl, ilevp1, jk, ji
    195198      real zdelp, ztemp, zforc, ztend
     
    259262c     ztmst=twodt
    260263c     if(nstep.eq.nstart) ztmst=0.5*twodt
    261       klevm1=klev-1
     264cym      klevm1=klev-1
    262265      ztmst=ptsphy
    263266      zrtmst=1./ztmst
     
    466469c
    467470c-----------------------------------------------------------------------
     471      USE dimphy
    468472      implicit none
    469473c
    470474
    471 #include "dimensions.h"
    472 #include "dimphy.h"
     475cym#include "dimensions.h"
     476cym#include "dimphy.h"
    473477#include "YOMCST.h"
    474478#include "YOEGWD.h"
     
    934938c
    935939c-----------------------------------------------------------------------
     940      USE dimphy
    936941      implicit none
    937 #include "dimensions.h"
    938 #include "dimphy.h"
     942cym#include "dimensions.h"
     943cym#include "dimphy.h"
    939944#include "YOMCST.h"
    940945#include "YOEGWD.h"
     
    10681073C     PASSAGE OF THE NEW GWDRAG TO I.F.S. (F. LOTT, 22/11/93)
    10691074C-----------------------------------------------------------------------
     1075      USE dimphy
    10701076      implicit none
    10711077C
     
    10731079C
    10741080
    1075 #include "dimensions.h"
    1076 #include "dimphy.h"
     1081cym#include "dimensions.h"
     1082cym#include "dimphy.h"
    10771083#include "YOMCST.h"
    10781084#include "YOEGWD.h"
     
    12991305     s                   d_t, d_u, d_v)
    13001306c
     1307      USE dimphy
    13011308      IMPLICIT none
    13021309c======================================================================
     
    13161323c d_v-----output-R-increment de la vitesse v
    13171324c======================================================================
    1318 #include "dimensions.h"
    1319 #include "dimphy.h"
     1325cym#include "dimensions.h"
     1326cym#include "dimphy.h"
    13201327#include "YOMCST.h"
    13211328c
     
    14391446C     F.LOTT  LMD 22/11/95
    14401447C
     1448      USE dimphy
    14411449      implicit none
    14421450C
    14431451C
    1444 #include "dimensions.h"
    1445 #include "dimphy.h"
     1452cym#include "dimensions.h"
     1453cym#include "dimphy.h"
    14461454#include "YOMCST.h"
    14471455#include "YOEGWD.h"
     
    14731481C*       0.2   LOCAL ARRAYS
    14741482C              ------------
    1475       logical lifthigh
    1476       integer klevm1, jl, ilevh, jk
     1483      logical lifthigh, ll1
     1484cym      integer klevm1, jl, ilevh, jk
     1485      integer  jl, ilevh, jk
    14771486      real zcons1, ztmst, zrtmst,zpi, zhgeo
    14781487      real zdelp, zslow, zsqua, zscav, zbet
     
    14971506      IF(NLON.NE.KLON.OR.NLEV.NE.KLEV)STOP
    14981507      ZCONS1=1./RD
    1499       KLEVM1=KLEV-1
     1508cym      KLEVM1=KLEV-1
    15001509      ZTMST=PTSPHY
    15011510      ZRTMST=1./ZTMST
     
    16981707      RETURN
    16991708      END
     1709
     1710
    17001711      SUBROUTINE SUGWD(NLON,NLEV,paprs,pplay)
     1712      USE dimphy
     1713c      USE parallel
    17011714C
    17021715C**** *SUGWD* INITIALIZE COMMON YOEGWD CONTROLLING GRAVITY WAVE DRAG
     
    17511764      REAL pplay(nlon,nlev)
    17521765      real zpr,zstra,zsigt,zpm1r
     1766      REAL,SAVE,ALLOCATABLE :: pplay_mpi(:,:)
     1767      REAL,SAVE,ALLOCATABLE :: paprs_mpi(:,:)
     1768      REAL,SAVE,ALLOCATABLE :: pplay_glo(:,:)
     1769      REAL,SAVE,ALLOCATABLE :: paprs_glo(:,:)
     1770
    17531771C
    17541772C*       1.    SET THE VALUES OF THE PARAMETERS
     
    17661784cold  ZSIGT=0.85
    17671785C
     1786c$OMP MASTER
     1787      ALLOCATE(pplay_mpi(klon_mpi,nlev))
     1788      ALLOCATE(paprs_mpi(klon_mpi,nlev+1))
     1789      ALLOCATE(pplay_glo(klon2,nlev))
     1790      ALLOCATE(paprs_glo(klon2,nlev+1))
     1791c$OMP END MASTER
     1792c$OMP BARRIER
     1793
     1794      CALL GatherField_omp(pplay,pplay_mpi,nlev)     
     1795      CALL GatherField_omp(paprs,paprs_mpi,nlev+1)
     1796
     1797c$OMP MASTER     
     1798      CALL  AllGatherField(pplay_mpi,pplay_glo,nlev)
     1799      CALL  AllGatherField(paprs_mpi,paprs_glo,nlev+1)
     1800c$OMP END MASTER
     1801c$OMP BARRIER
     1802     
    17681803      DO 110 JK=1,NLEV
    1769       ZPM1R=pplay(nlon/2,jk)/paprs(nlon/2,1)
     1804      ZPM1R=pplay_glo(klon2/2,jk)/paprs_glo(klon2/2,1)
    17701805      IF(ZPM1R.GE.ZSIGT)THEN
    17711806         nktopg=JK
    17721807      ENDIF
    1773       ZPM1R=pplay(nlon/2,jk)/paprs(nlon/2,1)
     1808      ZPM1R=pplay_glo(klon2/2,jk)/paprs_glo(klon2/2,1)
    17741809      IF(ZPM1R.GE.ZSTRA)THEN
    17751810         NSTRA=JK
    17761811      ENDIF
    17771812  110 CONTINUE
     1813
     1814c$OMP BARRIER
     1815c$OMP MASTER
     1816      DEALLOCATE(pplay_mpi)
     1817      DEALLOCATE(paprs_mpi)
     1818      DEALLOCATE(pplay_glo)
     1819      DEALLOCATE(paprs_glo)
     1820c$OMP END MASTER
     1821c$OMP BARRIER
     1822
    17781823c
    17791824c  inversion car dans orodrag on compte les niveaux a l'envers
  • LMDZ4/trunk/libf/phylmd/ozonecm.F

    r699 r766  
    33!
    44      SUBROUTINE ozonecm(rjour, rlat, paprs, o3)
     5      USE dimphy
    56      IMPLICIT none
    67C
     
    1920C
    2021
    21 #include "dimensions.h"
    22 #include "dimphy.h"
     22cym#include "dimensions.h"
     23cym#include "dimphy.h"
    2324#include "clesphys.h"
    2425#include "YOMCST.h"
     
    3334      REAL an, unit, zo3q3
    3435      SAVE an, unit, zo3q3
     36c$OMP THREADPRIVATE(an, unit, zo3q3)
    3537      REAL mu,gms, zslat, zsint, zcost, z, ppm, qpm, a
    3638      REAL asec, bsec, aprim, zo3a3
  • LMDZ4/trunk/libf/phylmd/phyetat0.F

    r689 r766  
    55c
    66      SUBROUTINE phyetat0 (fichnom,dtime,co2_ppm_etat0,solaire_etat0,
    7      .            rlat,rlon, pctsrf, tsol,tsoil,
     7     .            rlat_p,rlon_p, pctsrf_p, tsol_p,tsoil_p,
    88cIM "slab" ocean
    9      .           ocean, tslab,seaice,
    10      .           qsurf,qsol,snow,
    11      .           albe, alblw, evap, rain_fall, snow_fall, solsw, sollw,
    12      .           fder,radsol,frugs,agesno,clesphy0,
    13      .           zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,tabcntr0,
    14      .           t_ancien,q_ancien,ancien_ok, rnebcon, ratqs,clwcon,
    15      .           run_off_lic_0)
     9     .           ocean, tslab_p,seaice_p,
     10     .           qsurf_p,qsol_p,snow_p,albe_p, alblw_p, evap_p,
     11     .           rain_fall_p, snow_fall_p,solsw_p, sollw_p,
     12     .           fder_p,radsol_p,frugs_p,agesno_p,clesphy0,
     13     .           zmea_p,zstd_p,zsig_p,zgam_p,zthe_p,zpic_p,zval_p,
     14     .           rugsrel_p,tabcntr0,
     15     .           t_ancien_p,q_ancien_p,ancien_ok_p, rnebcon_p, ratqs_p,
     16     .           clwcon_p,run_off_lic_0_p)
     17      USE dimphy,klon=>klon2,klon2=>klon,zmasq_p=>zmasq
     18      USE iophy
    1619      IMPLICIT none
    1720c======================================================================
     
    2023c======================================================================
    2124#include "dimensions.h"
    22 #include "dimphy.h"
     25cym#include "dimphy.h"
    2326#include "netcdf.inc"
    2427#include "indicesol.h"
     
    3033      REAL dtime
    3134      INTEGER radpas
    32       REAL rlat(klon), rlon(klon)
     35      REAL rlat_p(klon2), rlon_p(klon2)
    3336      REAL co2_ppm_etat0
    3437      REAL solaire_etat0
     38      REAL tsol_p(klon2,nbsrf)
     39      REAL tsoil_p(klon2,nsoilmx,nbsrf)
     40      REAL tslab_p(klon2), seaice_p(klon2)
     41      REAL qsurf_p(klon2,nbsrf)
     42      REAL qsol_p(klon2)
     43      REAL snow_p(klon2,nbsrf)
     44      REAL albe_p(klon2,nbsrf)
     45cIM BEG alblw
     46      REAL alblw_p(klon2,nbsrf)
     47cIM END alblw
     48      REAL evap_p(klon2,nbsrf)
     49      REAL radsol_p(klon2)
     50      REAL rain_fall_p(klon2)
     51      REAL snow_fall_p(klon2)
     52      REAL sollw_p(klon2)
     53      real solsw_p(klon2)
     54      real fder_p(klon2)
     55      REAL frugs_p(klon2,nbsrf)
     56      REAL agesno_p(klon2,nbsrf)
     57      REAL zmea_p(klon2)
     58      REAL zstd_p(klon2)
     59      REAL zsig_p(klon2)
     60      REAL zgam_p(klon2)
     61      REAL zthe_p(klon2)
     62      REAL zpic_p(klon2)
     63      REAL zval_p(klon2)
     64      REAL rugsrel_p(klon2)
     65      REAL pctsrf_p(klon2, nbsrf)
     66      REAL run_off_lic_0_p(klon2)
     67     
     68      REAL t_ancien_p(klon2,klev), q_ancien_p(klon2,klev)
     69      real rnebcon_p(klon2,klev),clwcon_p(klon2,klev)
     70      real ratqs_p(klon2,klev)
     71      LOGICAL,SAVE ::  ancien_ok
     72      LOGICAL ::  ancien_ok_p
     73     
     74      REAL zmasq(klon)
     75      REAL rlat(klon), rlon(klon)
    3576      REAL tsol(klon,nbsrf)
    3677      REAL tsoil(klon,nsoilmx,nbsrf)
     
    62103      REAL fractint(klon)
    63104      REAL run_off_lic_0(klon)
    64 
    65       REAL t_ancien(klon,klev), q_ancien(klon,klev)
    66       real rnebcon(klon,klev),clwcon(klon,klev),ratqs(klon,klev)
    67       LOGICAL ancien_ok
     105      REAL t_ancien(klon,klev)
     106      REAL q_ancien(klon,klev)
     107      real rnebcon(klon,klev)
     108      real clwcon(klon,klev)
     109      real ratqs(klon,klev)
     110
     111      REAL,ALLOCATABLE,SAVE :: zmasq_mpi(:)
     112      REAL,ALLOCATABLE,SAVE :: rlat_mpi(:), rlon_mpi(:)
     113      REAL,ALLOCATABLE,SAVE :: tsol_mpi(:,:)
     114      REAL,ALLOCATABLE,SAVE :: tsoil_mpi(:,:,:)
     115      REAL,ALLOCATABLE,SAVE :: tslab_mpi(:)
     116      REAL,ALLOCATABLE,SAVE :: seaice_mpi(:)
     117      REAL,ALLOCATABLE,SAVE :: qsurf_mpi(:,:)
     118      REAL,ALLOCATABLE,SAVE :: qsol_mpi(:)
     119      REAL,ALLOCATABLE,SAVE :: snow_mpi(:,:)
     120      REAL,ALLOCATABLE,SAVE :: albe_mpi(:,:)
     121      REAL,ALLOCATABLE,SAVE :: alblw_mpi(:,:)
     122      REAL,ALLOCATABLE,SAVE :: evap_mpi(:,:)
     123      REAL,ALLOCATABLE,SAVE :: radsol_mpi(:)
     124      REAL,ALLOCATABLE,SAVE :: rain_fall_mpi(:)
     125      REAL,ALLOCATABLE,SAVE :: snow_fall_mpi(:)
     126      REAL,ALLOCATABLE,SAVE :: sollw_mpi(:)
     127      real,ALLOCATABLE,SAVE :: solsw_mpi(:)
     128      real,ALLOCATABLE,SAVE :: fder_mpi(:)
     129      REAL,ALLOCATABLE,SAVE :: frugs_mpi(:,:)
     130      REAL,ALLOCATABLE,SAVE :: agesno_mpi(:,:)
     131      REAL,ALLOCATABLE,SAVE :: zmea_mpi(:)
     132      REAL,ALLOCATABLE,SAVE :: zstd_mpi(:)
     133      REAL,ALLOCATABLE,SAVE :: zsig_mpi(:)
     134      REAL,ALLOCATABLE,SAVE :: zgam_mpi(:)
     135      REAL,ALLOCATABLE,SAVE :: zthe_mpi(:)
     136      REAL,ALLOCATABLE,SAVE :: zpic_mpi(:)
     137      REAL,ALLOCATABLE,SAVE :: zval_mpi(:)
     138      REAL,ALLOCATABLE,SAVE :: rugsrel_mpi(:)
     139      REAL,ALLOCATABLE,SAVE :: pctsrf_mpi(:, :)
     140      REAL,ALLOCATABLE,SAVE :: run_off_lic_0_mpi(:)
     141      REAL,ALLOCATABLE,SAVE :: t_ancien_mpi(:,:)
     142      REAL,ALLOCATABLE,SAVE :: q_ancien_mpi(:,:)
     143      real,ALLOCATABLE,SAVE :: rnebcon_mpi(:,:)
     144      real,ALLOCATABLE,SAVE :: clwcon_mpi(:,:)
     145      real,ALLOCATABLE,SAVE :: ratqs_mpi(:,:)
     146           
    68147
    69148      CHARACTER*6 ocean
     
    80159      PARAMETER (length=100)
    81160      REAL tab_cntrl(length), tabcntr0(length)
     161      REAL,SAVE :: tab_cntrl_omp(length)
    82162      CHARACTER*7 str7
    83163      CHARACTER*2 str2
     164      real iolat(jjm+1)
    84165c
    85166c Ouvrir le fichier contenant l'etat initial:
    86167c
    87       print*,'fichnom',fichnom
     168
     169c$OMP MASTER
     170      print *,'MASTER -x , omp_rank=',omp_rank
     171c$OMP END MASTER
     172
     173c$OMP MASTER
     174      print*,'fichnom ',fichnom
    88175      ierr = NF_OPEN (fichnom, NF_NOWRITE,nid)
    89176      IF (ierr.NE.NF_NOERR) THEN
     
    92179        CALL ABORT
    93180      ENDIF
     181c$OMP END MASTER
    94182c
    95183c Lecture des parametres de controle:
    96184c
     185c$OMP MASTER
    97186      ierr = NF_INQ_VARID (nid, "controle", nvarid)
    98187      IF (ierr.NE.NF_NOERR) THEN
     
    101190      ENDIF
    102191#ifdef NC_DOUBLE
    103       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl)
    104 #else
    105       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
     192      ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl_omp)
     193#else
     194      ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl_omp)
    106195#endif
    107196      IF (ierr.NE.NF_NOERR) THEN
    108197         PRINT*, 'phyetat0: Lecture echouee pour <controle>'
    109198         CALL abort
    110       ELSE
    111 c
     199      ENDIF
     200c$OMP END MASTER
     201c$OMP BARRIER
     202       
     203       DO i = 1, length
     204         tab_cntrl( i ) = tab_cntrl_omp( i )
     205       ENDDO
     206       
     207c
     208       
    112209         DO i = 1, length
    113210           tabcntr0( i ) = tab_cntrl( i )
     
    177274         IF( tab_cntrl(12) .EQ. 1. )     ok_limitvrai = .TRUE.
    178275
    179       ENDIF
    180276
    181277      itau_phy = tab_cntrl(15)
     
    184280c Lecture des latitudes (coordonnees):
    185281c
     282c$OMP MASTER
    186283      ierr = NF_INQ_VARID (nid, "latitude", nvarid)
    187284      IF (ierr.NE.NF_NOERR) THEN
     
    198295         CALL abort
    199296      ENDIF
     297
    200298c
    201299c Lecture des longitudes (coordonnees):
     
    219317C Lecture du masque terre mer
    220318C
     319
    221320      ierr = NF_INQ_VARID (nid, "masque", nvarid)
    222321      IF (ierr .EQ.  NF_NOERR) THEN
     
    235334C      CALL abort
    236335      ENDIF
     336
     337       
    237338C Lecture des fractions pour chaque sous-surface
    238339C
     
    243344C fraction de terre
    244345C
     346
    245347      ierr = NF_INQ_VARID (nid, "FTER", nvarid)
    246348      IF (ierr .EQ.  NF_NOERR) THEN
     
    256358      else
    257359          PRINT*, 'phyetat0: Le champ <FTER> est absent'
    258 c$$$         CALL abort
    259       ENDIF
     360c@$$         CALL abort
     361      ENDIF
     362
    260363C
    261364C fraction de glace de terre
     
    274377      else
    275378          PRINT*, 'phyetat0: Le champ <FLIC> est absent'
    276 c$$$         CALL abort
     379c@$$         CALL abort
    277380      ENDIF
    278381C
     
    292395      else
    293396          PRINT*, 'phyetat0: Le champ <FOCE> est absent'
    294 c$$$         CALL abort
    295       ENDIF
     397c@$$         CALL abort
     398      ENDIF
     399
    296400C
    297401C fraction glace de mer
     
    310414      else
    311415          PRINT*, 'phyetat0: Le champ <FSIC> est absent'
    312 c$$$         CALL abort
    313       ENDIF
     416c@$$         CALL abort
     417      ENDIF
     418
    314419C
    315420C  Verification de l'adequation entre le masque et les sous-surfaces
     
    333438        ENDIF
    334439      END DO
     440
    335441C
    336442c Lecture des temperatures du sol:
    337443c
     444
    338445      ierr = NF_INQ_VARID (nid, "TS", nvarid)
    339446      IF (ierr.NE.NF_NOERR) THEN
     
    360467             CALL abort
    361468           ENDIF
     469
    362470           xmin = 1.0E+20
    363471           xmax = -1.0E+20
     
    393501         ENDDO
    394502      ENDIF
     503
    395504c
    396505c Lecture des temperatures du sol profond:
     
    557666          PRINT*, '          Valeur par defaut nulle'
    558667          qsol(:)=0.
    559 c$$$         CALL abort
     668c@$$         CALL abort
    560669      ENDIF
    561670      xmin = 1.0E+20
     
    886995      PRINT*,'Rayonnement IF au sol sollw:', xmin, xmax
    887996
     997c$OMP END MASTER
     998
     999
     1000c$OMP MASTER
     1001
    8881002c
    8891003c Lecture derive des flux:
     
    12801394      ENDIF
    12811395c
     1396      clwcon=0.
    12821397      ierr = NF_INQ_VARID (nid, "CLWCON", nvarid)
    12831398      IF (ierr.NE.NF_NOERR) THEN
     
    13021417      PRINT*,'Eau liquide convective (ecart-type) clwcon:', xmin, xmax
    13031418c
     1419      rnebcon=0.
    13041420      ierr = NF_INQ_VARID (nid, "RNEBCON", nvarid)
    13051421      IF (ierr.NE.NF_NOERR) THEN
     
    13441460c Lecture ratqs
    13451461c
     1462       ratqs=0.
    13461463      ierr = NF_INQ_VARID (nid, "RATQS", nvarid)
    13471464      IF (ierr.NE.NF_NOERR) THEN
     
    13941511      ierr = NF_CLOSE(nid)
    13951512c
     1513c$OMP END MASTER
     1514
     1515c$OMP MASTER
     1516cym  en attendant mieux
     1517        iolat(1)=rlat(1)
     1518        iolat(jjm+1)=rlat(klon)
     1519        do i=2,jjm
     1520          iolat(i)=rlat(2+(i-2)*iim)
     1521        enddo
     1522       
     1523        call init_iophy(iolat,rlon(2:iim+1))
     1524       
     1525      print *,'Allocated ??',allocated(zmasq_mpi)
     1526      print *,'klon_mpi',klon_mpi
     1527      print *,'omp_rank',omp_rank
     1528      ALLOCATE( zmasq_mpi(klon_mpi))
     1529      ALLOCATE( rlat_mpi(klon_mpi), rlon_mpi(klon_mpi))
     1530      ALLOCATE( tsol_mpi(klon_mpi,nbsrf))
     1531      ALLOCATE( tsoil_mpi(klon_mpi,nsoilmx,nbsrf))
     1532      ALLOCATE( tslab_mpi(klon_mpi))
     1533      ALLOCATE( seaice_mpi(klon_mpi))
     1534      ALLOCATE( qsurf_mpi(klon_mpi,nbsrf))
     1535      ALLOCATE( qsol_mpi(klon_mpi))
     1536      ALLOCATE( snow_mpi(klon_mpi,nbsrf))
     1537      ALLOCATE( albe_mpi(klon_mpi,nbsrf))
     1538      ALLOCATE( alblw_mpi(klon_mpi,nbsrf))
     1539      ALLOCATE( evap_mpi(klon_mpi,nbsrf))
     1540      ALLOCATE( radsol_mpi(klon_mpi))
     1541      ALLOCATE( rain_fall_mpi(klon_mpi))
     1542      ALLOCATE( snow_fall_mpi(klon_mpi))
     1543      ALLOCATE( sollw_mpi(klon_mpi))
     1544      ALLOCATE( solsw_mpi(klon_mpi))
     1545      ALLOCATE( fder_mpi(klon_mpi))
     1546      ALLOCATE( frugs_mpi(klon_mpi,nbsrf))
     1547      ALLOCATE( agesno_mpi(klon_mpi,nbsrf))
     1548      ALLOCATE( zmea_mpi(klon_mpi))
     1549      ALLOCATE( zstd_mpi(klon_mpi))
     1550      ALLOCATE( zsig_mpi(klon_mpi))
     1551      ALLOCATE( zgam_mpi(klon_mpi))
     1552      ALLOCATE( zthe_mpi(klon_mpi))
     1553      ALLOCATE( zpic_mpi(klon_mpi))
     1554      ALLOCATE( zval_mpi(klon_mpi))
     1555      ALLOCATE( rugsrel_mpi(klon_mpi))
     1556      ALLOCATE( pctsrf_mpi(klon_mpi, nbsrf))
     1557      ALLOCATE( run_off_lic_0_mpi(klon_mpi))
     1558      ALLOCATE( t_ancien_mpi(klon_mpi,klev))
     1559      ALLOCATE( q_ancien_mpi(klon_mpi,klev))
     1560      ALLOCATE( rnebcon_mpi(klon_mpi,klev))
     1561      ALLOCATE( clwcon_mpi(klon_mpi,klev))
     1562      ALLOCATE( ratqs_mpi(klon_mpi,klev))
     1563       
     1564      call ScatterField( rlat,rlat_mpi,1)
     1565      call ScatterField( rlon,rlon_mpi,1)
     1566      call ScatterField( tsol,tsol_mpi,nbsrf)
     1567      call ScatterField( tsoil,tsoil_mpi,nsoilmx*nbsrf)
     1568      call ScatterField( tslab,tslab_mpi,1)
     1569      call ScatterField( seaice,seaice_mpi,1)
     1570      call ScatterField( qsurf,qsurf_mpi,nbsrf)
     1571      call ScatterField( qsol,qsol_mpi,1)
     1572      call ScatterField( snow,snow_mpi,nbsrf)
     1573      call ScatterField( albe,albe_mpi,nbsrf)
     1574      call ScatterField( alblw,alblw_mpi,nbsrf)
     1575      call ScatterField( evap,evap_mpi,nbsrf)
     1576      call ScatterField( radsol,radsol_mpi,1)
     1577      call ScatterField( rain_fall,rain_fall_mpi,1)
     1578      call ScatterField( snow_fall,snow_fall_mpi,1)
     1579      call ScatterField( sollw,sollw_mpi,1)
     1580      call ScatterField( solsw,solsw_mpi,1)
     1581      call ScatterField( fder,fder_mpi,1)
     1582      call ScatterField( frugs,frugs_mpi,nbsrf)
     1583      call ScatterField( agesno,agesno_mpi,nbsrf)
     1584      call ScatterField( zmea,zmea_mpi,1)
     1585      call ScatterField( zstd,zstd_mpi,1)
     1586      call ScatterField( zsig,zsig_mpi,1)
     1587      call ScatterField( zgam,zgam_mpi,1)
     1588      call ScatterField( zthe,zthe_mpi,1)
     1589      call ScatterField( zpic,zpic_mpi,1)
     1590      call ScatterField( zval,zval_mpi,1)
     1591      call ScatterField( rugsrel,rugsrel_mpi,1)
     1592      call ScatterField( pctsrf,pctsrf_mpi, nbsrf)
     1593      call ScatterField( run_off_lic_0,run_off_lic_0_mpi,1)
     1594      call ScatterField( t_ancien,t_ancien_mpi,klev)
     1595      call ScatterField( q_ancien,q_ancien_mpi,klev)
     1596      call ScatterField( rnebcon,rnebcon_mpi,klev)
     1597      call ScatterField( clwcon,clwcon_mpi,klev)
     1598      call ScatterField( ratqs,ratqs_mpi,klev)
     1599      call ScatterField( zmasq,zmasq_mpi,1)
     1600c$OMP END MASTER
     1601c$OMP BARRIER
     1602      call ScatterField_omp( rlat_mpi,rlat_p,1)
     1603      call ScatterField_omp( rlon_mpi,rlon_p,1)
     1604      call ScatterField_omp( tsol_mpi,tsol_p,nbsrf)
     1605      call ScatterField_omp( tsoil_mpi,tsoil_p,nsoilmx*nbsrf)
     1606      call ScatterField_omp( tslab_mpi,tslab_p,1)
     1607      call ScatterField_omp( seaice_mpi,seaice_p,1)
     1608      call ScatterField_omp( qsurf_mpi,qsurf_p,nbsrf)
     1609      call ScatterField_omp( qsol_mpi,qsol_p,1)
     1610      call ScatterField_omp( snow_mpi,snow_p,nbsrf)
     1611      call ScatterField_omp( albe_mpi,albe_p,nbsrf)
     1612      call ScatterField_omp( alblw_mpi,alblw_p,nbsrf)
     1613      call ScatterField_omp( evap_mpi,evap_p,nbsrf)
     1614      call ScatterField_omp( radsol_mpi,radsol_p,1)
     1615      call ScatterField_omp( rain_fall_mpi,rain_fall_p,1)
     1616      call ScatterField_omp( snow_fall_mpi,snow_fall_p,1)
     1617      call ScatterField_omp( sollw_mpi,sollw_p,1)
     1618      call ScatterField_omp( solsw_mpi,solsw_p,1)
     1619      call ScatterField_omp( fder_mpi,fder_p,1)
     1620      call ScatterField_omp( frugs_mpi,frugs_p,nbsrf)
     1621      call ScatterField_omp( agesno_mpi,agesno_p,nbsrf)
     1622      call ScatterField_omp( zmea_mpi,zmea_p,1)
     1623      call ScatterField_omp( zstd_mpi,zstd_p,1)
     1624      call ScatterField_omp( zsig_mpi,zsig_p,1)
     1625      call ScatterField_omp( zgam_mpi,zgam_p,1)
     1626      call ScatterField_omp( zthe_mpi,zthe_p,1)
     1627      call ScatterField_omp( zpic_mpi,zpic_p,1)
     1628      call ScatterField_omp( zval_mpi,zval_p,1)
     1629      call ScatterField_omp( rugsrel_mpi,rugsrel_p,1)
     1630      call ScatterField_omp( pctsrf_mpi,pctsrf_p, nbsrf)
     1631      call ScatterField_omp( run_off_lic_0_mpi,run_off_lic_0_p,1)
     1632      call ScatterField_omp( t_ancien_mpi,t_ancien_p,klev)
     1633      call ScatterField_omp( q_ancien_mpi,q_ancien_p,klev)
     1634      call ScatterField_omp( rnebcon_mpi,rnebcon_p,klev)
     1635      call ScatterField_omp( clwcon_mpi,clwcon_p,klev)
     1636      call ScatterField_omp( ratqs_mpi,ratqs_p,klev)
     1637      call ScatterField_omp( zmasq_mpi,zmasq_p,1)
     1638      ancien_ok_p=ancien_ok
     1639
     1640c$OMP MASTER
     1641      DEALLOCATE( zmasq_mpi)
     1642      DEALLOCATE( rlat_mpi, rlon_mpi)
     1643      DEALLOCATE( tsol_mpi)
     1644      DEALLOCATE( tsoil_mpi)
     1645      DEALLOCATE( tslab_mpi)
     1646      DEALLOCATE( seaice_mpi)
     1647      DEALLOCATE( qsurf_mpi)
     1648      DEALLOCATE( qsol_mpi)
     1649      DEALLOCATE( snow_mpi)
     1650      DEALLOCATE( albe_mpi)
     1651      DEALLOCATE( alblw_mpi)
     1652      DEALLOCATE( evap_mpi)
     1653      DEALLOCATE( radsol_mpi)
     1654      DEALLOCATE( rain_fall_mpi)
     1655      DEALLOCATE( snow_fall_mpi)
     1656      DEALLOCATE( sollw_mpi)
     1657      DEALLOCATE( solsw_mpi)
     1658      DEALLOCATE( fder_mpi)
     1659      DEALLOCATE( frugs_mpi)
     1660      DEALLOCATE( agesno_mpi)
     1661      DEALLOCATE( zmea_mpi)
     1662      DEALLOCATE( zstd_mpi)
     1663      DEALLOCATE( zsig_mpi)
     1664      DEALLOCATE( zgam_mpi)
     1665      DEALLOCATE( zthe_mpi)
     1666      DEALLOCATE( zpic_mpi)
     1667      DEALLOCATE( zval_mpi)
     1668      DEALLOCATE( rugsrel_mpi)
     1669      DEALLOCATE( pctsrf_mpi)
     1670      DEALLOCATE( run_off_lic_0_mpi)
     1671      DEALLOCATE( t_ancien_mpi)
     1672      DEALLOCATE( q_ancien_mpi)
     1673      DEALLOCATE( rnebcon_mpi)
     1674      DEALLOCATE( clwcon_mpi)   
     1675
     1676c$OMP END MASTER
     1677c$OMP BARRIER
     1678
    13961679      RETURN
    13971680      END
  • LMDZ4/trunk/libf/phylmd/phyredem.F

    r644 r766  
    44c
    55      SUBROUTINE phyredem (fichnom,dtime,radpas,
    6      .           rlat,rlon, pctsrf,tsol,tsoil,
     6     .           rlat_p,rlon_p, pctsrf_p,tsol_p,tsoil_p,
    77cIM "slab" ocean
    88     .           tslab,seaice,
    9      .           qsurf,qsol,snow,
    10      .           albedo, alblw, evap, rain_fall, snow_fall,
    11      .           solsw, sollw,fder,
    12      .           radsol,frugs,agesno,
    13      .           zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,
    14      .           t_ancien, q_ancien, rnebcon, ratqs, clwcon,
    15      .           run_off_lic_0)
     9     .           qsurf_p,qsol_p,snow_p,albedo_p, alblw_p, evap_p,
     10     .           rain_fall_p, snow_fall_p,solsw_p, sollw_p,fder_p,
     11     .           radsol_p,frugs_p,agesno_p,zmea_p,zstd_p,zsig_p,
     12     .           zgam_p,zthe_p,zpic_p,zval_p,rugsrel_p,
     13     .           t_ancien_p, q_ancien_p, rnebcon_p, ratqs_p, clwcon_p,
     14     .           run_off_lic_0_p)
     15      USE dimphy
    1616      IMPLICIT none
    1717c======================================================================
     
    1919c Objet: Ecriture de l'etat de redemarrage pour la physique
    2020c======================================================================
    21 #include "dimensions.h"
    22 #include "dimphy.h"
     21cym#include "dimensions.h"
     22cym#include "dimphy.h"
    2323#include "netcdf.inc"
    2424#include "indicesol.h"
     
    3131      REAL dtime
    3232      INTEGER radpas
    33       REAL rlat(klon), rlon(klon)
    34       REAL tsol(klon,nbsrf)
    35       REAL tsoil(klon,nsoilmx,nbsrf)
     33      REAL rlat_p(klon), rlon_p(klon)
     34      REAL tsol_p(klon,nbsrf)
     35      REAL tsoil_p(klon,nsoilmx,nbsrf)
    3636cIM "slab" ocean
    37       REAL tslab(klon), seaice(klon)
    38       REAL qsurf(klon,nbsrf)
    39       REAL qsol(klon)
    40       REAL snow(klon,nbsrf)
    41       REAL albedo(klon,nbsrf)
     37      REAL tslab_p(klon), seaice_p(klon)
     38      REAL qsurf_p(klon,nbsrf)
     39      REAL qsol_p(klon)
     40      REAL snow_p(klon,nbsrf)
     41      REAL albedo_p(klon,nbsrf)
    4242cIM BEG
    43       REAL alblw(klon,nbsrf)
     43      REAL alblw_p(klon,nbsrf)
    4444cIM END
    45       REAL evap(klon,nbsrf)
    46       REAL rain_fall(klon)
    47       REAL snow_fall(klon)
    48       real solsw(klon)
    49       real sollw(klon)
    50       real fder(klon)
    51       REAL radsol(klon)
    52       REAL frugs(klon,nbsrf)
    53       REAL agesno(klon,nbsrf)
    54       REAL zmea(klon)
    55       REAL zstd(klon)
    56       REAL zsig(klon)
    57       REAL zgam(klon)
    58       REAL zthe(klon)
    59       REAL zpic(klon)
    60       REAL zval(klon)
    61       REAL rugsrel(klon)
    62       REAL pctsrf(klon, nbsrf)
    63       REAL t_ancien(klon,klev), q_ancien(klon,klev)
    64       real clwcon(klon,klev),rnebcon(klon,klev),ratqs(klon,klev)
    65       REAL run_off_lic_0(klon)
     45      REAL evap_p(klon,nbsrf)
     46      REAL rain_fall_p(klon)
     47      REAL snow_fall_p(klon)
     48      real solsw_p(klon)
     49      real sollw_p(klon)
     50      real fder_p(klon)
     51      REAL radsol_p(klon)
     52      REAL frugs_p(klon,nbsrf)
     53      REAL agesno_p(klon,nbsrf)
     54      REAL zmea_p(klon)
     55      REAL zstd_p(klon)
     56      REAL zsig_p(klon)
     57      REAL zgam_p(klon)
     58      REAL zthe_p(klon)
     59      REAL zpic_p(klon)
     60      REAL zval_p(klon)
     61      REAL rugsrel_p(klon)
     62      REAL pctsrf_p(klon, nbsrf)
     63      REAL t_ancien_p(klon,klev), q_ancien_p(klon,klev)
     64      real clwcon_p(klon,klev),rnebcon_p(klon,klev),ratqs_p(klon,klev)
     65      REAL run_off_lic_0_p(klon)
     66     
     67      REAL rlat(klon2), rlon(klon2)
     68      REAL tsol(klon2,nbsrf)
     69      REAL tsoil(klon2,nsoilmx,nbsrf)
     70      REAL tslab(klon2), seaice(klon2)
     71      REAL qsurf(klon2,nbsrf)
     72      REAL qsol(klon2)
     73      REAL snow(klon2,nbsrf)
     74      REAL albedo(klon2,nbsrf)
     75      REAL alblw(klon2,nbsrf)
     76      REAL evap(klon2,nbsrf)
     77      REAL rain_fall(klon2)
     78      REAL snow_fall(klon2)
     79      real solsw(klon2)
     80      real sollw(klon2)
     81      real fder(klon2)
     82      REAL radsol(klon2)
     83      REAL frugs(klon2,nbsrf)
     84      REAL agesno(klon2,nbsrf)
     85      REAL zmea(klon2)
     86      REAL zstd(klon2)
     87      REAL zsig(klon2)
     88      REAL zgam(klon2)
     89      REAL zthe(klon2)
     90      REAL zpic(klon2)
     91      REAL zval(klon2)
     92      REAL rugsrel(klon2)
     93      REAL pctsrf(klon2, nbsrf)
     94      REAL t_ancien(klon2,klev), q_ancien(klon2,klev)
     95      real clwcon(klon2,klev),rnebcon(klon2,klev),ratqs(klon2,klev)
     96      REAL run_off_lic_0(klon2)
     97      REAL masq(klon2)
    6698c
    6799      INTEGER nid, nvarid, idim1, idim2, idim3
     
    75107      CHARACTER*2 str2
    76108c
     109      REAL,SAVE,ALLOCATABLE :: rlat_mpi(:), rlon_mpi(:)
     110      REAL,SAVE,ALLOCATABLE :: tsol_mpi(:,:)
     111      REAL,SAVE,ALLOCATABLE :: tsoil_mpi(:,:,:)
     112      REAL,SAVE,ALLOCATABLE :: tslab_mpi(:)
     113      REAL,SAVE,ALLOCATABLE :: seaice_mpi(:)
     114      REAL,SAVE,ALLOCATABLE :: qsurf_mpi(:,:)
     115      REAL,SAVE,ALLOCATABLE :: qsol_mpi(:)
     116      REAL,SAVE,ALLOCATABLE :: snow_mpi(:,:)
     117      REAL,SAVE,ALLOCATABLE :: albedo_mpi(:,:)
     118      REAL,SAVE,ALLOCATABLE :: alblw_mpi(:,:)
     119      REAL,SAVE,ALLOCATABLE :: evap_mpi(:,:)
     120      REAL,SAVE,ALLOCATABLE :: rain_fall_mpi(:)
     121      REAL,SAVE,ALLOCATABLE :: snow_fall_mpi(:)
     122      REAL,SAVE,ALLOCATABLE :: solsw_mpi(:)
     123      REAL,SAVE,ALLOCATABLE :: sollw_mpi(:)
     124      REAL,SAVE,ALLOCATABLE :: fder_mpi(:)
     125      REAL,SAVE,ALLOCATABLE :: radsol_mpi(:)
     126      REAL,SAVE,ALLOCATABLE :: frugs_mpi(:,:)
     127      REAL,SAVE,ALLOCATABLE :: agesno_mpi(:,:)
     128      REAL,SAVE,ALLOCATABLE :: zmea_mpi(:)
     129      REAL,SAVE,ALLOCATABLE :: zstd_mpi(:)
     130      REAL,SAVE,ALLOCATABLE :: zsig_mpi(:)
     131      REAL,SAVE,ALLOCATABLE :: zgam_mpi(:)
     132      REAL,SAVE,ALLOCATABLE :: zthe_mpi(:)
     133      REAL,SAVE,ALLOCATABLE :: zpic_mpi(:)
     134      REAL,SAVE,ALLOCATABLE :: zval_mpi(:)
     135      REAL,SAVE,ALLOCATABLE :: rugsrel_mpi(:)
     136      REAL,SAVE,ALLOCATABLE :: pctsrf_mpi(:, :)
     137      REAL,SAVE,ALLOCATABLE :: t_ancien_mpi(:,:), q_ancien_mpi(:,:)
     138      REAL,SAVE,ALLOCATABLE :: clwcon_mpi(:,:),rnebcon_mpi(:,:)
     139      REAL,SAVE,ALLOCATABLE :: ratqs_mpi(:,:)
     140      REAL,SAVE,ALLOCATABLE :: run_off_lic_0_mpi(:)
     141      REAL,SAVE,ALLOCATABLE :: masq_mpi(:)
     142     
     143c$OMP MASTER
     144      ALLOCATE( rlat_mpi(klon_mpi), rlon_mpi(klon_mpi))
     145      ALLOCATE( tsol_mpi(klon_mpi,nbsrf))
     146      ALLOCATE( tsoil_mpi(klon_mpi,nsoilmx,nbsrf))
     147      ALLOCATE( tslab_mpi(klon_mpi))
     148      ALLOCATE( seaice_mpi(klon_mpi))
     149      ALLOCATE( qsurf_mpi(klon_mpi,nbsrf))
     150      ALLOCATE( qsol_mpi(klon_mpi))
     151      ALLOCATE( snow_mpi(klon_mpi,nbsrf))
     152      ALLOCATE( albedo_mpi(klon_mpi,nbsrf))
     153      ALLOCATE( alblw_mpi(klon_mpi,nbsrf))
     154      ALLOCATE( evap_mpi(klon_mpi,nbsrf))
     155      ALLOCATE( rain_fall_mpi(klon_mpi))
     156      ALLOCATE( snow_fall_mpi(klon_mpi))
     157      ALLOCATE( solsw_mpi(klon_mpi))
     158      ALLOCATE( sollw_mpi(klon_mpi))
     159      ALLOCATE( fder_mpi(klon_mpi))
     160      ALLOCATE( radsol_mpi(klon_mpi))
     161      ALLOCATE( frugs_mpi(klon_mpi,nbsrf))
     162      ALLOCATE( agesno_mpi(klon_mpi,nbsrf))
     163      ALLOCATE( zmea_mpi(klon_mpi))
     164      ALLOCATE( zstd_mpi(klon_mpi))
     165      ALLOCATE( zsig_mpi(klon_mpi))
     166      ALLOCATE( zgam_mpi(klon_mpi))
     167      ALLOCATE( zthe_mpi(klon_mpi))
     168      ALLOCATE( zpic_mpi(klon_mpi))
     169      ALLOCATE( zval_mpi(klon_mpi))
     170      ALLOCATE( rugsrel_mpi(klon_mpi))
     171      ALLOCATE( pctsrf_mpi(klon_mpi, nbsrf))
     172      ALLOCATE( t_ancien_mpi(klon_mpi,klev))
     173      ALLOCATE( q_ancien_mpi(klon_mpi,klev))
     174      ALLOCATE( clwcon_mpi(klon_mpi,klev),rnebcon_mpi(klon_mpi,klev))
     175      ALLOCATE( ratqs_mpi(klon_mpi,klev))
     176      ALLOCATE( run_off_lic_0_mpi(klon_mpi))
     177      ALLOCATE( masq_mpi(klon_mpi))
     178c$OMP END MASTER
     179c$OMP BARRIER     
     180
     181      call GatherField_omp( rlat_p,rlat_mpi,1)
     182      call GatherField_omp( rlon_p,rlon_mpi,1)
     183      call GatherField_omp( tsol_p,tsol_mpi,nbsrf)
     184      call GatherField_omp( tsoil_p,tsoil_mpi,nsoilmx*nbsrf)
     185      call GatherField_omp( tslab_p,tslab_mpi,1)
     186      call GatherField_omp( seaice_p,seaice_mpi,1)
     187      call GatherField_omp( qsurf_p,qsurf_mpi,nbsrf)
     188      call GatherField_omp( qsol_p,qsol_mpi,1)
     189      call GatherField_omp( snow_p,snow_mpi,nbsrf)
     190      call GatherField_omp( albedo_p,albedo_mpi,nbsrf)
     191      call GatherField_omp( alblw_p,alblw_mpi,nbsrf)
     192      call GatherField_omp( evap_p,evap_mpi,nbsrf)
     193      call GatherField_omp( radsol_p,radsol_mpi,1)
     194      call GatherField_omp( rain_fall_p,rain_fall_mpi,1)
     195      call GatherField_omp( snow_fall_p,snow_fall_mpi,1)
     196      call GatherField_omp( sollw_p,sollw_mpi,1)
     197      call GatherField_omp( solsw_p,solsw_mpi,1)
     198      call GatherField_omp( fder_p,fder_mpi,1)
     199      call GatherField_omp( frugs_p,frugs_mpi,nbsrf)
     200      call GatherField_omp( agesno_p,agesno_mpi,nbsrf)
     201      call GatherField_omp( zmea_p,zmea_mpi,1)
     202      call GatherField_omp( zstd_p,zstd_mpi,1)
     203      call GatherField_omp( zsig_p,zsig_mpi,1)
     204      call GatherField_omp( zgam_p,zgam_mpi,1)
     205      call GatherField_omp( zthe_p,zthe_mpi,1)
     206      call GatherField_omp( zpic_p,zpic_mpi,1)
     207      call GatherField_omp( zval_p,zval_mpi,1)
     208      call GatherField_omp( rugsrel_p,rugsrel_mpi,1)
     209      call GatherField_omp( pctsrf_p,pctsrf_mpi, nbsrf)
     210      call GatherField_omp( run_off_lic_0_p,run_off_lic_0_mpi,1)
     211      call GatherField_omp( t_ancien_p,t_ancien_mpi,klev)
     212      call GatherField_omp( q_ancien_p,q_ancien_mpi,klev)
     213      call GatherField_omp( rnebcon_p,rnebcon_mpi,klev)
     214      call GatherField_omp( clwcon_p,clwcon_mpi,klev)
     215      call GatherField_omp( ratqs_p,ratqs_mpi,klev)
     216      call GatherField_omp( zmasq,masq_mpi,1)
     217
     218c$OMP MASTER     
     219      call GatherField( rlat_mpi,rlat,1)
     220      call GatherField( rlon_mpi,rlon,1)
     221      call GatherField( tsol_mpi,tsol,nbsrf)
     222      call GatherField( tsoil_mpi,tsoil,nsoilmx*nbsrf)
     223      call GatherField( tslab_mpi,tslab,1)
     224      call GatherField( seaice_mpi,seaice,1)
     225      call GatherField( qsurf_mpi,qsurf,nbsrf)
     226      call GatherField( qsol_mpi,qsol,1)
     227      call GatherField( snow_mpi,snow,nbsrf)
     228      call GatherField( albedo_mpi,albedo,nbsrf)
     229      call GatherField( alblw_mpi,alblw,nbsrf)
     230      call GatherField( evap_mpi,evap,nbsrf)
     231      call GatherField( radsol_mpi,radsol,1)
     232      call GatherField( rain_fall_mpi,rain_fall,1)
     233      call GatherField( snow_fall_mpi,snow_fall,1)
     234      call GatherField( sollw_mpi,sollw,1)
     235      call GatherField( solsw_mpi,solsw,1)
     236      call GatherField( fder_mpi,fder,1)
     237      call GatherField( frugs_mpi,frugs,nbsrf)
     238      call GatherField( agesno_mpi,agesno,nbsrf)
     239      call GatherField( zmea_mpi,zmea,1)
     240      call GatherField( zstd_mpi,zstd,1)
     241      call GatherField( zsig_mpi,zsig,1)
     242      call GatherField( zgam_mpi,zgam,1)
     243      call GatherField( zthe_mpi,zthe,1)
     244      call GatherField( zpic_mpi,zpic,1)
     245      call GatherField( zval_mpi,zval,1)
     246      call GatherField( rugsrel_mpi,rugsrel,1)
     247      call GatherField( pctsrf_mpi,pctsrf, nbsrf)
     248      call GatherField( run_off_lic_0_mpi,run_off_lic_0,1)
     249      call GatherField( t_ancien_mpi,t_ancien,klev)
     250      call GatherField( q_ancien_mpi,q_ancien,klev)
     251      call GatherField( rnebcon_mpi,rnebcon,klev)
     252      call GatherField( clwcon_mpi,clwcon,klev)
     253      call GatherField( ratqs_mpi,ratqs,klev)
     254      call GatherField( masq_mpi,masq,1)
     255     
     256      DEALLOCATE( rlat_mpi, rlon_mpi)
     257      DEALLOCATE( tsol_mpi)
     258      DEALLOCATE( tsoil_mpi)
     259      DEALLOCATE( tslab_mpi)
     260      DEALLOCATE( seaice_mpi)
     261      DEALLOCATE( qsurf_mpi)
     262      DEALLOCATE( qsol_mpi)
     263      DEALLOCATE( snow_mpi)
     264      DEALLOCATE( albedo_mpi)
     265      DEALLOCATE( alblw_mpi)
     266      DEALLOCATE( evap_mpi)
     267      DEALLOCATE( rain_fall_mpi)
     268      DEALLOCATE( snow_fall_mpi)
     269      DEALLOCATE( solsw_mpi)
     270      DEALLOCATE( sollw_mpi)
     271      DEALLOCATE( fder_mpi)
     272      DEALLOCATE( radsol_mpi)
     273      DEALLOCATE( frugs_mpi)
     274      DEALLOCATE( agesno_mpi)
     275      DEALLOCATE( zmea_mpi)
     276      DEALLOCATE( zstd_mpi)
     277      DEALLOCATE( zsig_mpi)
     278      DEALLOCATE( zgam_mpi)
     279      DEALLOCATE( zthe_mpi)
     280      DEALLOCATE( zpic_mpi)
     281      DEALLOCATE( zval_mpi)
     282      DEALLOCATE( rugsrel_mpi)
     283      DEALLOCATE( pctsrf_mpi)
     284      DEALLOCATE( t_ancien_mpi)
     285      DEALLOCATE( q_ancien_mpi)
     286      DEALLOCATE( clwcon_mpi,rnebcon_mpi)
     287      DEALLOCATE( ratqs_mpi)
     288      DEALLOCATE( run_off_lic_0_mpi)
     289      DEALLOCATE( masq_mpi)
     290
     291      if (phy_rank==0) then
     292     
    77293      ierr = NF_CREATE(fichnom, NF_CLOBBER, nid)
    78294      IF (ierr.NE.NF_NOERR) THEN
     
    86302c
    87303      ierr = NF_DEF_DIM (nid, "index", length, idim1)
    88       ierr = NF_DEF_DIM (nid, "points_physiques", klon, idim2)
    89       ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)
     304      ierr = NF_DEF_DIM (nid, "points_physiques", klon2, idim2)
     305      ierr = NF_DEF_DIM (nid, "horizon_vertical", klon2*klev, idim3)
    90306c
    91307      ierr = NF_ENDDEF(nid)
     
    168384      ierr = NF_ENDDEF(nid)
    169385#ifdef NC_DOUBLE
    170       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmasq)
    171 #else
    172       ierr = NF_PUT_VAR_REAL (nid,nvarid,zmasq)
     386      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,masq)
     387#else
     388      ierr = NF_PUT_VAR_REAL (nid,nvarid,masq)
    173389#endif     
    174390c BP ajout des fraction de chaque sous-surface
     
    186402      ierr = NF_ENDDEF(nid)
    187403#ifdef NC_DOUBLE
    188       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_ter))
    189 #else
    190       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_ter))
     404      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_ter))
     405#else
     406      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_ter))
    191407#endif
    192408C
     
    203419      ierr = NF_ENDDEF(nid)
    204420#ifdef NC_DOUBLE
    205       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon,is_lic))
    206 #else
    207       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_lic))
     421      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2,is_lic))
     422#else
     423      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_lic))
    208424#endif
    209425C
     
    220436      ierr = NF_ENDDEF(nid)
    221437#ifdef NC_DOUBLE
    222       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_oce))
    223 #else
    224       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_oce))
     438      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_oce))
     439#else
     440      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_oce))
    225441#endif
    226442C
     
    237453      ierr = NF_ENDDEF(nid)
    238454#ifdef NC_DOUBLE
    239       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_sic))
    240 #else
    241       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_sic))
     455      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_sic))
     456#else
     457      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_sic))
    242458#endif
    243459C
     
    547763#endif
    548764c
     765       endif
     766c$OMP END MASTER
     767cc ----> necessaire pour eviter bug openMP sur SX6
     768c$OMP MASTER
     769      if (phy_rank==0) then
    549770      DO nsrf = 1, nbsrf
    550771        IF (nsrf.LE.99) THEN
     
    7991020      ierr = NF_CLOSE(nid)
    8001021c
     1022      endif   ! phy_rank==0
     1023c$OMP END MASTER
    8011024      RETURN
    8021025      END
  • LMDZ4/trunk/libf/phylmd/physiq.F

    r719 r766  
    33!
    44c
     5c#define IO_DEBUG
     6
    57      SUBROUTINE physiq (nlon,nlev,nqmax,
    68     .            debut,lafin,rjourvrai,gmtime,pdtphys,
     
    1618
    1719      USE ioipsl
    18       USE histcom
    19 #ifdef INCA
    20       USE chemshut
    21       USE species_names
    22 #ifdef INCA_CH4
    23 !      USE obs_pos
    24 #endif
    25 #endif
     20      USE comgeomphy
     21      USE write_field_phy
     22      USE dimphy
     23      USE iophy
     24      USE misc_mod, mydebug=>debug
     25      USE vampir
    2626      IMPLICIT none
    2727c======================================================================
     
    3737c   CLEFS CPP POUR LES IO
    3838c   =====================
    39 #define histins
    40 #define histhf
    41 #define histday
     39c#define histhf
     40c#define histday
    4241#define histmth
    43 #define histmthNMC
    44 #define histISCCP
     42c#define histins
     43c#define histmthNMC
     44c#define histISCCP
    4545c======================================================================
    4646c    modif   ( P. Le Van ,  12/10/98 )
     
    8080      integer jjmp1
    8181      parameter (jjmp1=jjm+1-1/jjm)
    82 #include "dimphy.h"
     82      integer iip1
     83      parameter (iip1=iim+1)
     84cym#include "dimphy.h"
    8385#include "regdim.h"
    8486#include "indicesol.h"
     
    8890#include "logic.h"
    8991#include "temps.h"
    90 #include "comgeomphy.h"
     92cym#include "comgeomphy.h"
    9193#include "advtrac.h"
    9294#include "iniprint.h"
     
    106108#include "oasis.h"
    107109      INTEGER,SAVE :: npas, nexca
     110c$OMP THREADPRIVATE(npas, nexca)
    108111      logical rnpb
    109112#ifdef INCA
     
    115118      character*6 ocean
    116119      SAVE ocean
    117 
     120c$OMP THREADPRIVATE(ocean)
    118121c      parameter (ocean = 'force ')
    119122c     parameter (ocean = 'couple')
    120123      logical ok_ocean
    121124      SAVE ok_ocean
     125c$OMP THREADPRIVATE(ok_ocean)
    122126c
    123127cIM "slab" ocean
     
    137141      logical ok_veget
    138142      save ok_veget
     143c$OMP THREADPRIVATE(ok_veget)
    139144c     parameter (ok_veget = .true.)
    140145c      parameter (ok_veget = .false.)
     
    156161      LOGICAL ok_journe ! sortir le fichier journalier
    157162      save ok_journe
     163c$OMP THREADPRIVATE(ok_journe)
    158164c      PARAMETER (ok_journe=.true.)
    159165c
    160166      LOGICAL ok_mensuel ! sortir le fichier mensuel
    161167      save ok_mensuel
     168c$OMP THREADPRIVATE(ok_mensuel)
    162169c      PARAMETER (ok_mensuel=.true.)
    163170c
    164171      LOGICAL ok_instan ! sortir le fichier instantane
    165172      save ok_instan
     173c$OMP THREADPRIVATE(ok_instan)
    166174c      PARAMETER (ok_instan=.true.)
    167175c
     
    172180      REAL fm_therm(klon,klev+1)
    173181      REAL entr_therm(klon,klev)
    174       real q2(klon,klev+1,nbsrf)
    175       save q2
     182      real,allocatable,save :: q2(:,:,:)
     183c$OMP THREADPRIVATE(q2)
     184cym      save q2
    176185c======================================================================
    177186c
     
    207216      REAL qx(klon,klev,nqmax)
    208217
    209       REAL t_ancien(klon,klev), q_ancien(klon,klev)
    210       SAVE t_ancien, q_ancien
     218      REAL,allocatable,save :: t_ancien(:,:), q_ancien(:,:)
     219c$OMP THREADPRIVATE(t_ancien, q_ancien)
     220cym      SAVE t_ancien, q_ancien
    211221      LOGICAL ancien_ok
    212222      SAVE ancien_ok
    213 
     223c$OMP THREADPRIVATE(ancien_ok)
    214224      REAL d_t_dyn(klon,klev)
    215225      REAL d_q_dyn(klon,klev)
     
    233243      CHARACTER*3 ctetaSTD(nbteta)
    234244      DATA ctetaSTD/'350','380','405'/
     245      SAVE ctetaSTD
     246c$OMP THREADPRIVATE(ctetaSTD)
    235247      REAL rtetaSTD(nbteta)
    236248      DATA rtetaSTD/350., 380., 405./
     249      SAVE rtetaSTD
     250c$OMP THREADPRIVATE(rtetaSTD)     
    237251c
    238252      REAL PVteta(klon,nbteta)
     
    241255cMI Amip2 PV a theta constante
    242256
    243       INTEGER klevp1, klevm1
    244       PARAMETER(klevp1=klev+1,klevm1=klev-1)
    245 #include "raddim.h"
    246 c
    247       REAL swdn0(klon,klevp1), swdn(klon,klevp1)
    248       REAL swup0(klon,klevp1), swup(klon,klevp1)
    249       SAVE swdn0 , swdn, swup0, swup
    250 c
    251       REAL SWdn200clr(klon), SWdn200(klon)
    252       REAL SWup200clr(klon), SWup200(klon)
    253       SAVE SWdn200clr, SWdn200, SWup200clr, SWup200
    254 c
    255       REAL lwdn0(klon,klevp1), lwdn(klon,klevp1)
    256       REAL lwup0(klon,klevp1), lwup(klon,klevp1)
    257       SAVE lwdn0 , lwdn, lwup0, lwup
    258 c
    259       REAL LWdn200clr(klon), LWdn200(klon)
    260       REAL LWup200clr(klon), LWup200(klon)
    261       SAVE LWdn200clr, LWdn200, LWup200clr, LWup200
    262 c
    263       REAL LWdnTOA(klon), LWdnTOAclr(klon)
    264       SAVE LWdnTOA, LWdnTOAclr
     257cym      INTEGER klevp1, klevm1
     258cym      PARAMETER(klevp1=klev+1,klevm1=klev-1)
     259cym#include "raddim.h"
     260c
     261
     262      REAL,allocatable,save :: swdn0(:,:), swdn(:,:)
     263      REAL,allocatable,save :: swup0(:,:), swup(:,:)
     264c$OMP THREADPRIVATE(swdn0 , swdn, swup0, swup)
     265cym      SAVE swdn0 , swdn, swup0, swup
     266c
     267      REAL,allocatable,save :: SWdn200clr(:), SWdn200(:)
     268      REAL,allocatable,save :: SWup200clr(:), SWup200(:)
     269c$OMP THREADPRIVATE(SWdn200clr, SWdn200, SWup200clr, SWup200)
     270cym      SAVE SWdn200clr, SWdn200, SWup200clr, SWup200
     271c
     272      REAL,allocatable,save :: lwdn0(:,:), lwdn(:,:)
     273      REAL,allocatable,save :: lwup0(:,:), lwup(:,:)
     274c$OMP THREADPRIVATE(lwdn0 , lwdn, lwup0, lwup)
     275cym      SAVE lwdn0 , lwdn, lwup0, lwup
     276c
     277      REAL,allocatable,save :: LWdn200clr(:), LWdn200(:)
     278      REAL,allocatable,save :: LWup200clr(:), LWup200(:)
     279c$OMP THREADPRIVATE(LWdn200clr, LWdn200, LWup200clr, LWup200)
     280cym      SAVE LWdn200clr, LWdn200, LWup200clr, LWup200
     281c
     282      REAL,allocatable,save :: LWdnTOA(:), LWdnTOAclr(:)
     283c$OMP THREADPRIVATE(LWdnTOA, LWdnTOAclr)
     284cym      SAVE LWdnTOA, LWdnTOAclr
    265285c
    266286cIM Amip2
     
    273293     .60000., 50000., 40000., 30000., 25000., 20000.,
    274294     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
     295      SAVE rlevstd
     296c$OMP THREADPRIVATE(rlevSTD)
    275297      CHARACTER*4 clevSTD(nlevSTD)
    276298      DATA clevSTD/'1000','925 ','850 ','700 ','600 ',
    277299     .'500 ','400 ','300 ','250 ','200 ','150 ','100 ',
    278300     .'70  ','50  ','30  ','20  ','10  '/
     301      SAVE clevSTD
     302c$OMP THREADPRIVATE(clevSTD)
    279303c
    280304      CHARACTER*3 bb2
     
    290314      PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
    291315c
    292       REAL tsumSTD(klon,nlevSTD,nout)
    293       REAL usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout)
    294       REAL wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout)
    295       REAL qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout)
    296 c
    297       SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD,
    298      .     qsumSTD, rhsumSTD
     316      REAL,SAVE,ALLOCATABLE :: tsumSTD(:,:,:)
     317      REAL,SAVE,ALLOCATABLE :: usumSTD(:,:,:), vsumSTD(:,:,:)
     318      REAL,SAVE,ALLOCATABLE :: wsumSTD(:,:,:), phisumSTD(:,:,:)
     319      REAL,SAVE,ALLOCATABLE :: qsumSTD(:,:,:), rhsumSTD(:,:,:)
     320c
     321cym      SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD,
     322cym     .     qsumSTD, rhsumSTD
     323c$OMP THREADPRIVATE(tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD)
     324c$OMP THREADPRIVATE(qsumSTD, rhsumSTD)
    299325c
    300326      logical oknondef(klon,nlevSTD,nout)
    301       real tnondef(klon,nlevSTD,nout)
    302       save tnondef
     327      real,SAVE,ALLOCATABLE :: tnondef(:,:,:)
     328c$OMP THREADPRIVATE(tnondef)
     329cym      save tnondef
    303330c
    304331c les produits uvSTD, vqSTD, .., T2STD sont calcules
     
    311338      real wqSTD(klon,nlevSTD)
    312339c
    313       real uvsumSTD(klon,nlevSTD,nout)
    314       real vqsumSTD(klon,nlevSTD,nout)
    315       real vTsumSTD(klon,nlevSTD,nout)
    316       real wqsumSTD(klon,nlevSTD,nout)
     340      real,save,allocatable :: uvsumSTD(:,:,:)
     341      real,save,allocatable :: vqsumSTD(:,:,:)
     342      real,save,allocatable :: vTsumSTD(:,:,:)
     343      real,save,allocatable :: wqsumSTD(:,:,:)
    317344c
    318345      real vphiSTD(klon,nlevSTD)
     
    322349      real T2STD(klon,nlevSTD)
    323350c
    324       real vphisumSTD(klon,nlevSTD,nout)
    325       real wTsumSTD(klon,nlevSTD,nout)
    326       real u2sumSTD(klon,nlevSTD,nout)
    327       real v2sumSTD(klon,nlevSTD,nout)
    328       real T2sumSTD(klon,nlevSTD,nout)
    329 c
    330       SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD
    331       SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD
     351      real,save,allocatable :: vphisumSTD(:,:,:)
     352      real,save,allocatable :: wTsumSTD(:,:,:)
     353      real,save,allocatable :: u2sumSTD(:,:,:)
     354      real,save,allocatable :: v2sumSTD(:,:,:)
     355      real,save,allocatable :: T2sumSTD(:,:,:)
     356c
     357cym      SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD
     358cym      SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD
     359c$OMP THREADPRIVATE(uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD)
     360c$OMP THREADPRIVATE(vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD)
     361
    332362cMI Amip2
    333363c
     
    347377      REAL cldt_s(klon),cldq_s(klon) !nuage total, eau liquide integree
    348378
    349       INTEGER kp1
     379      INTEGER linv, kp1
    350380c flwp, fiwp = Liquid Water Path & Ice Water Path (kg/m2)
    351381c flwc, fiwc = Liquid Water Content & Ice Water Content (kg/kg)
     
    361391cv3.4
    362392      INTEGER debug, debugcol
    363       INTEGER npoints
    364       PARAMETER(npoints=klon)
     393cym      INTEGER npoints
     394cym      PARAMETER(npoints=klon)
    365395c
    366396      INTEGER sunlit(klon) !sunlit=1 if day; sunlit=0 if night
     
    382412      DATA ifreq_isccp/3/
    383413      SAVE ifreq_isccp
     414c$OMP THREADPRIVATE(ifreq_isccp)
    384415      CHARACTER*5 typinout(napisccp)
    385416      DATA typinout/'i3od'/
     417      SAVE typinout
     418c$OMP THREADPRIVATE(typinout)
    386419cIM verif boxptop BEG
    387420      CHARACTER*1 verticaxe(napisccp)
    388421      DATA verticaxe/'1'/
     422      SAVE verticaxe
     423c$OMP THREADPRIVATE(verticaxe)
    389424cIM verif boxptop END
    390425      INTEGER nvlev(napisccp)
     
    392427      REAL t1, aa
    393428      REAL seed_re(klon,napisccp)
    394       INTEGER seed_old(klon,napisccp)
    395       SAVE seed_old
    396       INTEGER iphy(iim,jjmp1)
     429      INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:)
     430cym      SAVE seed_old
     431c$OMP THREADPRIVATE(seed_old)
     432cym !!!! A voir plus tard
     433cym      INTEGER iphy(iim,jjmp1)
    397434cIM parametres ISCCP END
    398435c
    399436c ncol = nb. de sous-colonnes pour chaque maille du GCM
    400437c ncolmx = No. max. de sous-colonnes pour chaque maille du GCM
    401       INTEGER ncol(napisccp), ncolmx, seed(klon,napisccp)
     438c      INTEGER ncol(napisccp), ncolmx, seed(klon,napisccp)
     439      INTEGER,SAVE :: ncol(napisccp)
     440      INTEGER ncolmx, seed(klon,napisccp)
    402441      REAL nbsunlit(nregISCtot,klon,napisccp)  !nbsunlit : moyenne de sunlit
    403442      PARAMETER(ncolmx=1500)
     
    407446cIM verif boxptop END
    408447c
    409       REAL tautab(0:255)
    410       INTEGER invtau(-20:45000)
     448      REAL,SAVE :: tautab_omp(0:255),tautab(0:255)
     449      INTEGER,SAVE :: invtau_omp(-20:45000),invtau(-20:45000)
     450c$OMP THREADPRIVATE(tautab,invtau)
    411451      REAL emsfc_lw
    412452      PARAMETER(emsfc_lw=0.99)
     
    456496      INTEGER iw, iwmax
    457497      REAL wmin, pas_w
     498c     PARAMETER(wmin=-100.,pas_w=10.,iwmax=30)
     499cIM 051005     PARAMETER(wmin=-200.,pas_w=10.,iwmax=40)
    458500      PARAMETER(wmin=-100.,pas_w=10.,iwmax=20)
    459501      REAL o500(klon)
     
    465507
    466508      INTEGER linv
    467       INTEGER pct_ocean(klon,nbregdyn)
    468       SAVE pct_ocean
     509      INTEGER,ALLOCATABLE,SAVE :: pct_ocean(:,:)
     510c$OMP THREADPRIVATE(pct_ocean)
     511cym      SAVE pct_ocean
    469512 
    470513c sorties ISCCP
     
    472515      integer nid_isccp
    473516      save nid_isccp       
     517c$OMP THREADPRIVATE(nid_isccp)
     518
     519c     data ok_isccp,ecrit_isccp/.true.,0.125/     
     520c     data ok_isccp,ecrit_isccp/.true.,1./     
     521cIM 190504     data ok_isccp/.true./     
     522cIM 190504 #else
     523cIM 190504     data ok_isccp/.false./
     524cIM 190504 #endif
    474525
    475526      REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax)
    476527      DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./
     528      SAVE zx_tau
     529cIM bad 151205     DATA zx_pc/50., 180., 310., 440., 560., 680., 800./
    477530      DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./
    478 
     531      SAVE zx_pc
     532c$OMP THREADPRIVATE(zx_tau,zx_pc)
    479533c cldtopres pression au sommet des nuages
    480534      REAL cldtopres(lmaxm1), cldtopres3(lmax3)
    481535      DATA cldtopres/180., 310., 440., 560., 680., 800., 1000./
    482536      DATA cldtopres3/440., 680., 1000./
     537      SAVE cldtopres,cldtopres3
     538c$OMP THREADPRIVATE(cldtopres,cldtopres3)
     539cIM 051005 BEG
    483540      REAL tmp_his1_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)
    484541      REAL tmp_his2_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp)
     
    492549      CHARACTER *3 pclev(lmaxm1)
    493550      DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/
     551      SAVE taulev,pclev
     552c$OMP THREADPRIVATE(taulev,pclev)
    494553c
    495554c cnameisccp
     
    545604     .                'pc= 680-800hPa, tau> 60.',
    546605     .                'pc= 800-1000hPa, tau> 60.'/
     606       SAVE cnameisccp
     607c$OMP THREADPRIVATE(cnameisccp)
    547608c
    548609c     REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7)
     
    558619      integer nid_hf, nid_hf3d
    559620      save ok_hf, nid_hf, nid_hf3d
    560 
     621c$OMP THREADPRIVATE(ok_hf, nid_hf, nid_hf3d)
    561622c  QUESTION : noms de variables ?
    562623
     
    566627      data ok_hf/.false./
    567628#endif
    568 
    569629      INTEGER        longcles
    570630      PARAMETER    ( longcles = 20 )
     
    575635      REAL xjour
    576636      SAVE xjour
     637c$OMP THREADPRIVATE(xjour)
    577638c
    578639c
     
    581642      REAL dtime
    582643      SAVE dtime                  ! pas temporel de la physique
     644c$OMP THREADPRIVATE(dtime)
    583645c
    584646      INTEGER radpas
    585647      SAVE radpas                 ! frequence d'appel rayonnement
    586 c
    587       REAL radsol(klon)
    588       SAVE radsol               ! bilan radiatif au sol calcule par code radiatif
    589 c
    590       REAL rlat(klon)
    591       SAVE rlat                   ! latitude pour chaque point
    592 c
    593       REAL rlon(klon)
    594       SAVE rlon                   ! longitude pour chaque point
    595 c
    596       REAL rlonPOS(klon)
    597       SAVE rlonPOS                ! longitudes > 0. pour chaque point
     648c$OMP THREADPRIVATE(radpas)
     649c
     650      REAL,allocatable,save :: radsol(:)
     651c$OMP THREADPRIVATE(radsol)
     652cym      SAVE radsol               ! bilan radiatif au sol calcule par code radiatif
     653c
     654      REAL,allocatable,save :: rlat(:)
     655c$OMP THREADPRIVATE(rlat)
     656cym      SAVE rlat                   ! latitude pour chaque point
     657c
     658      REAL,allocatable,save :: rlon(:)
     659c$OMP THREADPRIVATE(rlon)
     660cym      SAVE rlon                   ! longitude pour chaque point
     661
     662      REAL,SAVE,ALLOCATABLE :: rlonPOS(:)
     663c$OMP THREADPRIVATE(rlonPOS)   
     664cym      SAVE rlonPOS                ! longitudes > 0. pour chaque point
    598665c
    599666cc      INTEGER iflag_con
     
    602669      INTEGER itap
    603670      SAVE itap                   ! compteur pour la physique
     671c$OMP THREADPRIVATE(itap)
    604672c
    605673      REAL co2_ppm_etat0
     
    609677      real slp(klon) ! sea level pressure
    610678
    611       REAL ftsol(klon,nbsrf)
    612       SAVE ftsol                  ! temperature du sol
     679      REAL,allocatable,save :: ftsol(:,:)
     680c$OMP THREADPRIVATE(ftsol)
     681cym      SAVE ftsol                  ! temperature du sol
     682
    613683cIM
    614       REAL newsst(klon) !temperature de l'ocean
    615       SAVE newsst
    616 c
    617       REAL ftsoil(klon,nsoilmx,nbsrf)
    618       SAVE ftsoil                 ! temperature dans le sol
    619 c
    620       REAL fevap(klon,nbsrf)
    621       SAVE fevap                 ! evaporation
    622       REAL fluxlat(klon,nbsrf)
    623       SAVE fluxlat
    624 c
    625       REAL deltat(klon)
    626       SAVE deltat                 ! ecart avec la SST de reference
    627 c
    628       REAL fqsurf(klon,nbsrf)
    629       SAVE fqsurf                 ! humidite de l'air au contact de la surface
    630 c
    631       REAL qsol(klon)
    632       SAVE qsol                  ! hauteur d'eau dans le sol
    633 c
    634       REAL fsnow(klon,nbsrf)
    635       SAVE fsnow                  ! epaisseur neigeuse
    636 c
    637       REAL falbe(klon,nbsrf)
    638       SAVE falbe                  ! albedo par type de surface
    639       REAL falblw(klon,nbsrf)
    640       SAVE falblw                 ! albedo par type de surface
     684      REAL,SAVE,ALLOCATABLE :: newsst(:) !temperature de l'ocean
     685c$OMP THREADPRIVATE(newsst)
     686cym     SAVE newsst
     687c
     688      REAL,allocatable,save :: ftsoil(:,:,:)
     689c$OMP THREADPRIVATE(ftsoil)
     690cym      SAVE ftsoil                 ! temperature dans le sol
     691c
     692      REAL,allocatable,save :: fevap(:,:)
     693c$OMP THREADPRIVATE(fevap)
     694cym      SAVE fevap                 ! evaporation
     695      REAL,allocatable,save :: fluxlat(:,:)
     696c$OMP THREADPRIVATE(fluxlat)
     697cym      SAVE fluxlat
     698c
     699      REAL,allocatable,save :: deltat(:)
     700c$OMP THREADPRIVATE(deltat)
     701cym      SAVE deltat                 ! ecart avec la SST de reference
     702c
     703      REAL,allocatable,save :: fqsurf(:,:)
     704c$OMP THREADPRIVATE(fqsurf)
     705cym      SAVE fqsurf                 ! humidite de l'air au contact de la surface
     706c
     707      REAL,allocatable,save :: qsol(:)
     708c$OMP THREADPRIVATE(qsol)
     709cym      SAVE qsol                  ! hauteur d'eau dans le sol
     710c
     711      REAL,allocatable,save :: fsnow(:,:)
     712c$OMP THREADPRIVATE(fsnow)
     713cym      SAVE fsnow                  ! epaisseur neigeuse
     714c
     715      REAL,allocatable,save :: falbe(:,:)
     716c$OMP THREADPRIVATE(falbe)
     717cym      SAVE falbe                  ! albedo par type de surface
     718      REAL,allocatable,save :: falblw(:,:)
     719c$OMP THREADPRIVATE(falblw)     
     720cym      SAVE falblw                 ! albedo par type de surface
    641721
    642722c
     
    644724c  Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
    645725c
    646       REAL zmea(klon)
    647       SAVE zmea                   ! orographie moyenne
    648 c
    649       REAL zstd(klon)
    650       SAVE zstd                   ! deviation standard de l'OESM
    651 c
    652       REAL zsig(klon)
    653       SAVE zsig                   ! pente de l'OESM
    654 c
    655       REAL zgam(klon)
    656       save zgam                   ! anisotropie de l'OESM
    657 c
    658       REAL zthe(klon)
    659       SAVE zthe                   ! orientation de l'OESM
    660 c
    661       REAL zpic(klon)
    662       SAVE zpic                   ! Maximum de l'OESM
    663 c
    664       REAL zval(klon)
    665       SAVE zval                   ! Minimum de l'OESM
    666 c
    667       REAL rugoro(klon)
    668       SAVE rugoro                 ! longueur de rugosite de l'OESM
     726      REAL,allocatable,save :: zmea(:)
     727c$OMP THREADPRIVATE(zmea)
     728cym      SAVE zmea                   ! orographie moyenne
     729c
     730      REAL,allocatable,save :: zstd(:)
     731c$OMP THREADPRIVATE(zstd)
     732cym      SAVE zstd                   ! deviation standard de l'OESM
     733c
     734      REAL,allocatable,save :: zsig(:)
     735c$OMP THREADPRIVATE(zsig)
     736cym      SAVE zsig                   ! pente de l'OESM
     737c
     738      REAL,allocatable,save :: zgam(:)
     739c$OMP THREADPRIVATE(zgam)
     740cym      save zgam                   ! anisotropie de l'OESM
     741c
     742      REAL,allocatable,save :: zthe(:)
     743c$OMP THREADPRIVATE(zthe)     
     744cym      SAVE zthe                   ! orientation de l'OESM
     745c
     746      REAL,allocatable,save :: zpic(:)
     747c$OMP THREADPRIVATE(zpic)
     748cym      SAVE zpic                   ! Maximum de l'OESM
     749c
     750      REAL,allocatable,save :: zval(:)
     751c$OMP THREADPRIVATE(zval)
     752cym      SAVE zval                   ! Minimum de l'OESM
     753c
     754      REAL,allocatable,save :: rugoro(:)
     755c$OMP THREADPRIVATE(rugoro)
     756cym      SAVE rugoro                 ! longueur de rugosite de l'OESM
    669757c
    670758cIM 141004     REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon)
    671759      REAL zulow(klon),zvlow(klon)
    672760c
    673       REAL zuthe(klon),zvthe(klon)
    674       SAVE zuthe
    675       SAVE zvthe
     761      REAL,allocatable,save :: zuthe(:),zvthe(:)
     762c$OMP THREADPRIVATE(zuthe,zvthe)
     763cym      SAVE zuthe
     764cym      SAVE zvthe
    676765      INTEGER igwd,idx(klon),itest(klon)
    677766c
    678       REAL agesno(klon,nbsrf)
    679       SAVE agesno                 ! age de la neige
    680 c
    681       REAL alb_neig(klon)
    682       SAVE alb_neig               ! albedo de la neige
    683 c
    684       REAL run_off_lic_0(klon)
    685       SAVE run_off_lic_0
     767      REAL,allocatable,save :: agesno(:,:)
     768c$OMP THREADPRIVATE(agesno)
     769cym      SAVE agesno                 ! age de la neige
     770c
     771      REAL,allocatable,save :: alb_neig(:)
     772c$OMP THREADPRIVATE(alb_neig)
     773cym      SAVE alb_neig               ! albedo de la neige
     774c
     775      REAL,allocatable,save :: run_off_lic_0(:)
     776c$OMP THREADPRIVATE(run_off_lic_0)
     777cym      SAVE run_off_lic_0
    686778cKE43
    687779c Variables liees a la convection de K. Emanuel (sb):
    688780c
    689       REAL ema_workcbmf(klon)   ! cloud base mass flux
    690       SAVE ema_workcbmf
    691 
    692       REAL ema_cbmf(klon)       ! cloud base mass flux
    693       SAVE ema_cbmf
    694 
    695       REAL ema_pcb(klon)        ! cloud base pressure
    696       SAVE ema_pcb
    697 
    698       REAL ema_pct(klon)        ! cloud top pressure
    699       SAVE ema_pct
     781      REAL,allocatable,save :: ema_workcbmf(:)   ! cloud base mass flux
     782c$OMP THREADPRIVATE(ema_workcbmf)
     783cym      SAVE ema_workcbmf
     784
     785      REAL,allocatable,save :: ema_cbmf(:)       ! cloud base mass flux
     786c$OMP THREADPRIVATE(ema_cbmf)
     787cym      SAVE ema_cbmf
     788
     789      REAL,allocatable,save :: ema_pcb(:)        ! cloud base pressure
     790c$OMP THREADPRIVATE(ema_pcb)
     791cym      SAVE ema_pcb
     792
     793      REAL,allocatable,save :: ema_pct(:)        ! cloud top pressure
     794c$OMP THREADPRIVATE(ema_pct)
     795cym      SAVE ema_pct
    700796
    701797      REAL bas, top             ! cloud base and top levels
    702798      SAVE bas
    703799      SAVE top
    704 
    705       REAL Ma(klon,klev)        ! undilute upward mass flux
    706       SAVE Ma
    707       REAL qcondc(klon,klev)    ! in-cld water content from convect
    708       SAVE qcondc
    709       REAL ema_work1(klon, klev), ema_work2(klon, klev)
    710       SAVE ema_work1, ema_work2
     800c$OMP THREADPRIVATE(bas, top)
     801
     802      REAL,allocatable,save :: Ma(:,:)        ! undilute upward mass flux
     803c$OMP THREADPRIVATE(Ma)
     804cym      SAVE Ma
     805      REAL,allocatable,save :: qcondc(:,:)    ! in-cld water content from convect
     806c$OMP THREADPRIVATE(qcondc)
     807cym      SAVE qcondc
     808      REAL,allocatable,save :: ema_work1(:, :), ema_work2(:, :)
     809c$OMP THREADPRIVATE(ema_work1,ema_work2)
     810cym      SAVE ema_work1, ema_work2
    711811      REAL wdn(klon), tdn(klon), qdn(klon)
    712812
    713       REAL wd(klon) ! sb
    714       SAVE wd       ! sb
     813      REAL,allocatable,save :: wd(:) ! sb
     814c$OMP THREADPRIVATE(wd)
     815cym      SAVE wd       ! sb
    715816
    716817c Variables locales pour la couche limite (al1):
     
    730831      REAL yu1(klon)            ! vents dans la premiere couche U
    731832      REAL yv1(klon)            ! vents dans la premiere couche V
    732       REAL ffonte(klon,nbsrf)    !Flux thermique utilise pour fondre la neige
    733       REAL fqcalving(klon,nbsrf) !Flux d'eau "perdue" par la surface
     833      REAL,SAVE,ALLOCATABLE :: ffonte(:,:)    !Flux thermique utilise pour fondre la neige
     834c$OMP THREADPRIVATE(ffonte)
     835      REAL,SAVE,ALLOCATABLE :: fqcalving(:,:) !Flux d'eau "perdu" par la surface
     836c$OMP THREADPRIVATE(fqcalving)
     837      REAL,SAVE,ALLOCATABLE :: fqfonte(:,:)  !Quantite d'eau de fonte des glaciers
     838c$OMP THREADPRIVATE(fqfonte)
    734839c                               !et necessaire pour limiter la
    735840c                               !hauteur de neige, en kg/m2/s
    736       REAL zxffonte(klon), zxfqcalving(klon)
    737 
    738 c$$$      LOGICAL offline           ! Controle du stockage ds "physique"
    739 c$$$      PARAMETER (offline=.false.)
    740 c$$$      INTEGER physid
    741       REAL pfrac_impa(klon,klev)! Produits des coefs lessivage impaction
    742       save pfrac_impa
    743       REAL pfrac_nucl(klon,klev)! Produits des coefs lessivage nucleation
    744       save pfrac_nucl
    745       REAL pfrac_1nucl(klon,klev)! Produits des coefs lessi nucl (alpha = 1)
    746       save pfrac_1nucl
     841      REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon)
     842
     843c@$$      LOGICAL offline           ! Controle du stockage ds "physique"
     844c@$$      PARAMETER (offline=.false.)
     845c@$$      INTEGER physid
     846      REAL,allocatable,save :: pfrac_impa(:,:)! Produits des coefs lessivage impaction
     847c$OMP THREADPRIVATE(pfrac_impa)
     848cym      save pfrac_impa
     849      REAL,allocatable,save :: pfrac_nucl(:,:)! Produits des coefs lessivage nucleation
     850c$OMP THREADPRIVATE(pfrac_nucl)
     851cym      save pfrac_nucl
     852      REAL,allocatable,save :: pfrac_1nucl(:,:)! Produits des coefs lessi nucl (alpha = 1)
     853c$OMP THREADPRIVATE(pfrac_1nucl)
     854cym      save pfrac_1nucl
    747855      REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction)
    748856      REAL frac_nucl(klon,klev) ! idem (nucleation)
     
    753861
    754862cAA
    755       REAL rain_fall(klon) ! pluie
    756       REAL snow_fall(klon) ! neige
    757       save snow_fall, rain_fall
     863      REAL,allocatable,save :: rain_fall(:) ! pluie
     864c$OMP THREADPRIVATE(rain_fall)
     865      REAL,allocatable,save :: snow_fall(:) ! neige
     866c$OMP THREADPRIVATE(snow_fall)
     867cym      save snow_fall, rain_fall
     868
    758869cIM cf FH pour Tiedtke 080604
    759870      REAL rain_tiedtke(klon),snow_tiedtke(klon)
    760871c
    761       REAL total_rain(klon), nday_rain(klon)
    762       save nday_rain
    763 c
     872
     873      REAL,allocatable,save :: total_rain(:), nday_rain(:)
     874c$OMP THREADPRIVATE(total_rain,nday_rain)
     875cym      save total_rain, nday_rain
     876cIM 050204 END
    764877      REAL evap(klon), devap(klon) ! evaporation et sa derivee
    765878      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
    766       REAL dlw(klon)    ! derivee infra rouge
     879      REAL,allocatable,save :: dlw(:)    ! derivee infra rouge
     880c$OMP THREADPRIVATE(dlw)
    767881cym
    768       SAVE dlw
     882cym      SAVE dlw
    769883cym
    770884      REAL bils(klon) ! bilan de chaleur au sol
     
    773887      REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque
    774888C                             ! type de sous-surface et pondere par la fraction
    775       REAL fder(klon) ! Derive de flux (sensible et latente)
    776       save fder
     889      REAL,allocatable,save :: fder(:) ! Derive de flux (sensible et latente)
     890c$OMP THREADPRIVATE(fder)
     891cym      save fder
    777892      REAL ve(klon) ! integr. verticale du transport meri. de l'energie
    778893      REAL vq(klon) ! integr. verticale du transport meri. de l'eau
     
    780895      REAL uq(klon) ! integr. verticale du transport zonal de l'eau
    781896c
    782       REAL frugs(klon,nbsrf) ! longueur de rugosite
    783       save frugs
     897      REAL,allocatable,save :: frugs(:,:) ! longueur de rugosite
     898c$OMP THREADPRIVATE(frugs)
     899cym      save frugs
    784900      REAL zxrugs(klon) ! longueur de rugosite
    785901c
     
    790906      INTEGER lmt_pas
    791907      SAVE lmt_pas                ! frequence de mise a jour
    792       REAL pctsrf(klon,nbsrf)
     908c$OMP THREADPRIVATE(lmt_pas)
     909      REAL,allocatable,save :: pctsrf(:,:)
     910c$OMP THREADPRIVATE(pctsrf)
    793911cIM
    794912      REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE
    795       REAL paire_ter(klon)        !surfaces terre
    796 c
    797       SAVE pctsrf                 ! sous-fraction du sol
    798       REAL albsol(klon)
    799       SAVE albsol                 ! albedo du sol total
    800       REAL albsollw(klon)
    801       SAVE albsollw                 ! albedo du sol total
    802 
    803       REAL wo(klon,klev)
    804       SAVE wo                     ! ozone
     913
     914cym      REAL paire_ter(klon)        !surfaces terre
     915      REAL,allocatable,save ::  paire_ter(:)        !surfaces terre
     916c$OMP THREADPRIVATE(paire_ter)
     917   
     918cIM
     919cym      SAVE pctsrf                 ! sous-fraction du sol
     920      REAL,allocatable,save :: albsol(:)
     921c$OMP THREADPRIVATE(albsol)
     922cym      SAVE albsol                 ! albedo du sol total
     923      REAL,allocatable,save :: albsollw(:)
     924c$OMP THREADPRIVATE(albsollw)     
     925cym      SAVE albsollw                 ! albedo du sol total
     926
     927      REAL,allocatable,save :: wo(:,:)
     928c$OMP THREADPRIVATE(wo)
     929cym     SAVE wo                     ! ozone
     930
    805931cIM sorties
    806932      REAL un_jour
     
    849975c Variables locales
    850976c
    851       real clwcon(klon,klev),rnebcon(klon,klev)
    852       real clwcon0(klon,klev),rnebcon0(klon,klev)
    853 cIM cf. AM 081204 BEG
    854       real clwcon0th(klon,klev),rnebcon0th(klon,klev)
    855 cIM cf. AM 081204 END
    856       save rnebcon, clwcon
    857 
     977      real,allocatable,save :: clwcon(:,:),rnebcon(:,:)
     978c$OMP THREADPRIVATE(clwcon,rnebcon)
     979      real,allocatable,save :: clwcon0(:,:),rnebcon0(:,:)
     980cym      save rnebcon, clwcon
     981c$OMP THREADPRIVATE(clwcon0,rnebcon0)
    858982      REAL rhcl(klon,klev)    ! humiditi relative ciel clair
    859983      REAL dialiq(klon,klev)  ! eau liquide nuageuse
     
    875999      REAL zxfluxv(klon, klev)
    8761000CXXX
    877       REAL heat(klon,klev)    ! chauffage solaire
    878       REAL heat0(klon,klev)   ! chauffage solaire ciel clair
    879       REAL cool(klon,klev)    ! refroidissement infrarouge
    880       REAL cool0(klon,klev)   ! refroidissement infrarouge ciel clair
    881       REAL topsw(klon), toplw(klon), solsw(klon), sollw(klon)
    882       real sollwdown(klon)    ! downward LW flux at surface
     1001      REAL,allocatable,save :: heat(:,:)    ! chauffage solaire
     1002c$OMP THREADPRIVATE(heat)
     1003      REAL,allocatable,save :: heat0(:,:)   ! chauffage solaire ciel clair
     1004c$OMP THREADPRIVATE(heat0)
     1005      REAL,allocatable,save :: cool(:,:)    ! refroidissement infrarouge
     1006c$OMP THREADPRIVATE(cool)
     1007      REAL,allocatable,save :: cool0(:,:)   ! refroidissement infrarouge ciel clair
     1008c$OMP THREADPRIVATE(cool0)
     1009      REAL,allocatable,save :: topsw(:), toplw(:), solsw(:), sollw(:)
     1010c$OMP THREADPRIVATE(topsw,toplw,solsw,sollw)
     1011      real,allocatable,save :: sollwdown(:)    ! downward LW flux at surface
     1012c$OMP THREADPRIVATE(sollwdown)
    8831013cIM BEG
    884       real sollwdownclr(klon)    ! downward CS LW flux at surface
    885       real toplwdown(klon)       ! downward CS LW flux at TOA
    886       real toplwdownclr(klon)    ! downward CS LW flux at TOA
     1014      real,allocatable,save :: sollwdownclr(:)    ! downward CS LW flux at surface
     1015c$OMP THREADPRIVATE(sollwdownclr)
     1016      real,allocatable,save :: toplwdown(:)       ! downward CS LW flux at TOA
     1017c$OMP THREADPRIVATE(toplwdown)
     1018      real,allocatable,save :: toplwdownclr(:)    ! downward CS LW flux at TOA
     1019c$OMP THREADPRIVATE(toplwdownclr)
    8871020cIM END
    888       REAL topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)
    889       REAL albpla(klon)
     1021      REAL,allocatable,save :: topsw0(:),toplw0(:),solsw0(:),sollw0(:)
     1022c$OMP THREADPRIVATE( topsw0,toplw0,solsw0,sollw0)
     1023      REAL,allocatable,save :: albpla(:)
     1024c$OMP THREADPRIVATE(albpla)
    8901025      REAL fsollw(klon, nbsrf)   ! bilan flux IR pour chaque sous surface
    8911026      REAL fsolsw(klon, nbsrf)   ! flux solaire absorb. pour chaque sous surface
    8921027c Le rayonnement n'est pas calcule tous les pas, il faut donc
    8931028c                      sauvegarder les sorties du rayonnement
    894       SAVE  heat,cool,albpla,topsw,toplw,solsw,sollw,sollwdown
    895       SAVE  sollwdownclr, toplwdown, toplwdownclr
    896       SAVE  topsw0,toplw0,solsw0,sollw0, heat0, cool0
     1029cym      SAVE  heat,cool,albpla,topsw,toplw,solsw,sollw,sollwdown
     1030cym      SAVE  sollwdownclr, toplwdown, toplwdownclr
     1031cym      SAVE  topsw0,toplw0,solsw0,sollw0, heat0, cool0
    8971032c
    8981033      INTEGER itaprad
    8991034      SAVE itaprad
     1035c$OMP THREADPRIVATE(itaprad)
    9001036c
    9011037      REAL conv_q(klon,klev) ! convergence de l'humidite (kg/kg/s)
     
    9251061c
    9261062      REAL zphi(klon,klev)
    927       REAL zx_relief(iim,jjmp1)
    928       REAL zx_aire(iim,jjmp1)
     1063cym A voir plus tard !!
     1064cym      REAL zx_relief(iim,jjmp1)
     1065cym      REAL zx_aire(iim,jjmp1)
    9291066c
    9301067cIM cf. AM Variables locales pour la CLA (hbtm2)
    9311068c
    932       REAL pblh(klon, nbsrf)           ! Hauteur de couche limite
    933       REAL plcl(klon, nbsrf)           ! Niveau de condensation de la CLA
    934       REAL capCL(klon, nbsrf)          ! CAPE de couche limite
    935       REAL oliqCL(klon, nbsrf)          ! eau_liqu integree de couche limite
    936       REAL cteiCL(klon, nbsrf)          ! cloud top instab. crit. couche limite
    937       REAL pblt(klon, nbsrf)          ! T a la Hauteur de couche limite
    938       REAL therm(klon, nbsrf)
    939       REAL trmb1(klon, nbsrf)          ! deep_cape
    940       REAL trmb2(klon, nbsrf)          ! inhibition
    941       REAL trmb3(klon, nbsrf)          ! Point Omega
     1069      REAL,SAVE,ALLOCATABLE :: pblh(:, :)           ! Hauteur de couche limite
     1070c$OMP THREADPRIVATE(pblh)
     1071      REAL,SAVE,ALLOCATABLE :: plcl(:, :)           ! Niveau de condensation de la CLA
     1072c$OMP THREADPRIVATE(plcl)
     1073      REAL,SAVE,ALLOCATABLE :: capCL(:, :)          ! CAPE de couche limite
     1074c$OMP THREADPRIVATE(capCL)
     1075      REAL,SAVE,ALLOCATABLE :: oliqCL(:, :)          ! eau_liqu integree de couche limite
     1076c$OMP THREADPRIVATE(oliqCL)
     1077      REAL,SAVE,ALLOCATABLE :: cteiCL(:, :)          ! cloud top instab. crit. couche limite
     1078c$OMP THREADPRIVATE(cteiCL)
     1079      REAL,SAVE,ALLOCATABLE :: pblt(:, :)          ! T a la Hauteur de couche limite
     1080c$OMP THREADPRIVATE(pblt)
     1081      REAL,SAVE,ALLOCATABLE :: therm(:, :)
     1082c$OMP THREADPRIVATE(therm)
     1083      REAL,SAVE,ALLOCATABLE :: trmb1(:, :)          ! deep_cape
     1084c$OMP THREADPRIVATE(trmb1)
     1085      REAL,SAVE,ALLOCATABLE :: trmb2(:, :)          ! inhibition
     1086c$OMP THREADPRIVATE(trmb2)
     1087      REAL,SAVE,ALLOCATABLE :: trmb3(:, :)          ! Point Omega
     1088c$OMP THREADPRIVATE(trmb3)
    9421089c Grdeurs de sorties
    9431090      REAL s_pblh(klon), s_lcl(klon), s_capCL(klon)
     
    9521099      REAL dnwd0(klon,klev)     ! unsaturated downdraft mass flux
    9531100      REAL tvp(klon,klev)       ! virtual temp of lifted parcel
    954       REAL cape(klon)           ! CAPE
    955       SAVE cape
     1101      REAL,allocatable,save :: cape(:)           ! CAPE
     1102c$OMP THREADPRIVATE(cape)
     1103cym      SAVE cape
    9561104      CHARACTER*40 capemaxcels  !max(CAPE)
    9571105
    958       REAL pbase(klon)          ! cloud base pressure
    959       SAVE pbase
    960       REAL bbase(klon)          ! cloud base buoyancy
    961       SAVE bbase
     1106      REAL,allocatable,save :: pbase(:)          ! cloud base pressure
     1107c$OMP THREADPRIVATE(pbase)
     1108cym      SAVE pbase
     1109      REAL,allocatable,save :: bbase(:)          ! cloud base buoyancy
     1110c$OMP THREADPRIVATE(bbase)
     1111cym      SAVE bbase
    9621112      REAL rflag(klon)          ! flag fonctionnement de convect
    9631113      INTEGER iflagctrl(klon)          ! flag fonctionnement de convect
     
    9821132c vdf: couche limite (Vertical DiFfusion)
    9831133      REAL d_t_con(klon,klev),d_q_con(klon,klev)
    984       REAL d_u_con(klon,klev),d_v_con(klon,klev)
     1134      REAL,SAVE,ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:)
     1135c$OMP THREADPRIVATE(d_u_con,d_v_con)
    9851136      REAL d_t_lsc(klon,klev),d_q_lsc(klon,klev),d_ql_lsc(klon,klev)
    9861137      REAL d_t_ajs(klon,klev), d_q_ajs(klon,klev)
     
    9921143*********************************************************
    9931144*     declarations
    994       real zqasc(klon,klev)
    995       save zqasc
     1145      real,save,allocatable :: zqasc(:,:)
     1146c$OMP THREADPRIVATE(zqasc)
     1147cym      save zqasc
    9961148     
    9971149*********************************************************
     
    10051157      REAL prfl(klon,klev+1), psfl(klon,klev+1)
    10061158c
    1007       INTEGER ibas_con(klon), itop_con(klon)
     1159      INTEGER,allocatable,save :: ibas_con(:), itop_con(:)
     1160c$OMP THREADPRIVATE(ibas_con,itop_con)
    10081161cym
    1009       SAVE ibas_con,itop_con
     1162cym      SAVE ibas_con,itop_con
    10101163cym
    1011       REAL rain_con(klon), rain_lsc(klon)
    1012       REAL snow_con(klon), snow_lsc(klon)
     1164      REAL,SAVE,ALLOCATABLE :: rain_con(:)
     1165c$OMP THREADPRIVATE(rain_con)
     1166      REAL rain_lsc(klon)
     1167      REAL,SAVE,ALLOCATABLE :: snow_con(:)
     1168c$OMP THREADPRIVATE(snow_con)
     1169      REAL snow_lsc(klon)
    10131170      REAL d_ts(klon,nbsrf)
    10141171c
     
    10221179      REAL d_u_oli(klon,klev), d_v_oli(klon,klev) !tendances dues a oro et lif
    10231180
    1024       REAL ratqs(klon,klev),ratqss(klon,klev),ratqsc(klon,klev)
     1181      REAL,allocatable,save :: ratqs(:,:)
     1182c$OMP THREADPRIVATE(ratqs)
     1183      REAL ratqss(klon,klev),ratqsc(klon,klev)
    10251184      real ratqsbas,ratqshaut
    1026       save ratqsbas,ratqshaut, ratqs
     1185cym      save ratqsbas,ratqshaut, ratqs
     1186      save ratqsbas,ratqshaut
     1187c$OMP THREADPRIVATE(ratqsbas,ratqshaut)
    10271188      real zpt_conv(klon,klev)
    10281189
     
    10321193      logical ok_newmicro
    10331194      save ok_newmicro
     1195c$OMP THREADPRIVATE(ok_newmicro)
    10341196      save fact_cldcon,facttemps
     1197c$OMP THREADPRIVATE(fact_cldcon,facttemps)
    10351198      real facteur
    10361199
    10371200      integer iflag_cldcon
    10381201      save iflag_cldcon
    1039 
     1202c$OMP THREADPRIVATE(iflag_cldcon)
    10401203      logical ptconv(klon,klev)
    10411204cIM cf. AM 081204 BEG
     
    10511214      integer imin_ins,imax_ins,jmin_ins,jmax_ins
    10521215      save imin_ins,imax_ins,jmin_ins,jmax_ins
     1216c$OMP THREADPRIVATE(imin_ins,imax_ins,jmin_ins,jmax_ins)
    10531217c      real lonmin_ins,lonmax_ins,latmin_ins
    10541218c     s  ,latmax_ins
     
    10871251      REAL tabcntr0( length       )
    10881252c
     1253
    10891254      INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev)
    10901255cIM
     
    11021267      INTEGER ij, imp1jmp1
    11031268      PARAMETER(imp1jmp1=(iim+1)*jjmp1)
     1269cym A voir plus tard
    11041270      REAL zx_tmp(imp1jmp1), airedyn(iim+1,jjmp1)
    11051271      REAL padyn(iim+1,jjmp1,klev+1)
     
    11111277cIM
    11121278      REAL airetot, pi
    1113       REAL zm_wo(jjmp1, klev)
     1279cym A voir plus tard
     1280cym      REAL zm_wo(jjmp1, klev)
    11141281cIM AMIP2 END
    11151282c
    11161283      REAL zx_tmp_fi2d(klon)      ! variable temporaire grille physique
    11171284      REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D
    1118 #ifdef histmthNMC
    1119       REAL zx_tmp_NC(iim,jjmp1,nlevSTD)
     1285c#ifdef histmthNMC
     1286cym   A voir plus tard !!!!
     1287cym      REAL zx_tmp_NC(iim,jjmp1,nlevSTD)
    11201288      REAL zx_tmp_fiNC(klon,nlevSTD)
    1121 #endif
     1289c#endif
    11221290      REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D
    11231291      REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev)
     
    11281296      SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri
    11291297      SAVE nid_ctesGCM
     1298c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc)
     1299c$OMP THREADPRIVATE(nid_day_seri,nid_ctesGCM)
    11301300c
    11311301cIM 280405 BEG
    11321302      INTEGER nid_bilKPins, nid_bilKPave
    11331303      SAVE nid_bilKPins, nid_bilKPave
     1304c$OMP THREADPRIVATE(nid_bilKPins, nid_bilKPave)
    11341305c
    11351306      REAL ve_lay(klon,klev) ! transport meri. de l'energie a chaque niveau vert.
     
    11461317      REAL zout_isccp(napisccp)
    11471318      SAVE zcals, zcalh, zoutj, zout_isccp
     1319c$OMP THREADPRIVATE(zcals, zcalh, zoutj, zout_isccp)
    11481320
    11491321      real zjulian
    11501322      save zjulian
     1323c$OMP THREADPRIVATE(zjulian)
    11511324
    11521325      character*20 modname
     
    11721345      SAVE      h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot
    11731346     $        , h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot
     1347c$OMP THREADPRIVATE(h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot,
     1348c$OMP+              h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot)
    11741349      REAL      d_h_vcol, d_h_dair, d_qt, d_qw, d_ql, d_qs, d_ec
    11751350      REAL      d_h_vcol_phy
    11761351      REAL      fs_bound, fq_bound
    11771352      SAVE      d_h_vcol_phy
     1353c$OMP THREADPRIVATE(d_h_vcol_phy)
    11781354      REAL      zero_v(klon)
    11791355      CHARACTER*15 ztit
    1180 
     1356      INTEGER   ip_ebil  ! PRINT level for energy conserv. diag.
     1357      SAVE      ip_ebil
     1358      DATA      ip_ebil/0/
     1359c$OMP THREADPRIVATE(ip_ebil)
     1360      INTEGER   if_ebil ! level for energy conserv. dignostics
     1361      SAVE      if_ebil
     1362c$OMP THREADPRIVATE(if_ebil)
    11811363c+jld ec_conser
    11821364      REAL d_t_ec(klon,klev)    ! tendance du a la conersion Ec -> E thermique
     
    11841366c-jld ec_conser
    11851367cIM: t2m, q2m, u10m, v10m et t2mincels, t2maxcels
    1186       REAL t2m(klon,nbsrf), q2m(klon,nbsrf)   !temperature, humidite a 2m
    1187       REAL u10m(klon,nbsrf), v10m(klon,nbsrf) !vents a 10m
     1368      REAL,SAVE,ALLOCATABLE :: t2m(:,:), q2m(:,:)   !temperature, humidite a 2m
     1369c$OMP THREADPRIVATE(t2m,q2m)
     1370      REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) !vents a 10m
     1371c$OMP THREADPRIVATE(u10m,v10m)
    11881372      REAL zt2m(klon), zq2m(klon)             !temp., hum. 2m moyenne s/ 1 maille
    11891373      REAL zu10m(klon), zv10m(klon)           !vents a 10m moyennes s/1 maille
     
    11921376cjq   Aerosol effects (Johannes Quaas, 27/11/2003)
    11931377      REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3]
    1194       REAL sulfate_pi(klon, klev) ! SO4 aerosol concentration [ug/m3] (pre-industrial value)
    1195       SAVE sulfate_pi
     1378      REAL,allocatable,save :: sulfate_pi(:,:) ! SO4 aerosol concentration [ug/m3] (pre-industrial value)
     1379c$OMP THREADPRIVATE(sulfate_pi)
     1380cym      SAVE sulfate_pi
    11961381
    11971382      REAL cldtaupi(klon,klev)  ! Cloud optical thickness for pre-industrial (pi) aerosols
     
    12031388
    12041389      ! Aerosol optical properties
    1205       REAL tau_ae(klon,klev,2), piz_ae(klon,klev,2)
    1206       REAL cg_ae(klon,klev,2)
    1207 
    1208       REAL topswad(klon), solswad(klon) ! Aerosol direct effect.
     1390      REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)
     1391c$OMP THREADPRIVATE(tau_ae,piz_ae)
     1392      REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)
     1393c$OMP THREADPRIVATE(cg_ae)
     1394
     1395      REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect.
     1396c$OMP THREADPRIVATE(topswad,solswad)
    12091397      ! ok_ade=T -ADE=topswad-topsw
    12101398
    1211       REAL topswai(klon), solswai(klon) ! Aerosol indirect effect.
     1399      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect.
     1400c$OMP THREADPRIVATE(topswai,solswai)
    12121401      ! ok_aie=T ->
    12131402      !        ok_ade=T -AIE=topswai-topswad
     
    12211410cym
    12221411      SAVE ok_ade, ok_aie, bl95_b0, bl95_b1
    1223 cym
    1224 c Anne
    1225          SAVE u10m
    1226          SAVE v10m
    1227          SAVE t2m
    1228          SAVE q2m
    1229          SAVE ffonte
    1230          SAVE fqcalving
    1231          SAVE piz_ae
    1232          SAVE tau_ae
    1233          SAVE cg_ae
    1234          SAVE rain_con
    1235          SAVE snow_con
    1236          SAVE topswai
    1237          SAVE topswad
    1238          SAVE solswai
    1239          SAVE solswad
    1240          SAVE d_u_con
    1241          SAVE d_v_con
    1242          SAVE rnebcon0
    1243          SAVE clwcon0
    1244          SAVE paire_ter
    1245 c        SAVE nhistoW
    1246 c        SAVE histoW
    1247 c SAVE anne 20/09/2005
    1248          SAVE pblh
    1249          SAVE plcl
    1250          SAVE capCL
    1251          SAVE oliqCL
    1252          SAVE cteiCL
    1253          SAVE pblt
    1254          SAVE therm
    1255          SAVE trmb1
    1256          SAVE trmb2
    1257          SAVE trmb3
    1258 
    1259 c fin Anne
    1260 cjq-end
     1412c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1)
     1413
    12611414c
    12621415c Declaration des constantes et des fonctions thermodynamiques
    12631416c
     1417      REAL Field_tmp(klon2,klevp1)
     1418      LOGICAL,SAVE :: first=.true.
     1419c$OMP THREADPRIVATE(first)
    12641420#include "YOMCST.h"
    12651421#include "YOETHF.h"
     
    12731429c
    12741430c======================================================================
    1275       modname = 'physiq'
     1431
     1432cym => necessaire pour iflag_con != 2   
     1433      pmfd(:,:) = 0.
     1434      pen_u(:,:) = 0.
     1435      pen_d(:,:) = 0.
     1436      pde_d(:,:) = 0.
     1437      pde_u(:,:) = 0.
     1438      aam=0.
     1439      torsfc=0.
     1440cym => pour le couple ocean => revoir dans clmain/intersurf
     1441      fluxg(:)=0.
     1442      fluxo(:)=0.     
     1443
     1444      if (first) then
     1445     
     1446      allocate( t_ancien(klon,klev), q_ancien(klon,klev))
     1447      allocate( q2(klon,klev+1,nbsrf))
     1448      allocate( swdn0(klon,klevp1), swdn(klon,klevp1))
     1449      allocate( swup0(klon,klevp1), swup(klon,klevp1))
     1450      allocate( SWdn200clr(klon), SWdn200(klon))
     1451      allocate( SWup200clr(klon), SWup200(klon))
     1452      allocate( lwdn0(klon,klevp1), lwdn(klon,klevp1))
     1453      allocate( lwup0(klon,klevp1), lwup(klon,klevp1))
     1454      allocate( LWdn200clr(klon), LWdn200(klon))
     1455      allocate( LWup200clr(klon), LWup200(klon))
     1456      allocate( LWdnTOA(klon), LWdnTOAclr(klon))
     1457      allocate( radsol(klon))
     1458      allocate( rlat(klon))
     1459      allocate( rlon(klon))
     1460      allocate( ftsol(klon,nbsrf))
     1461      allocate( ftsoil(klon,nsoilmx,nbsrf))
     1462      allocate( fevap(klon,nbsrf))
     1463      allocate( fluxlat(klon,nbsrf))
     1464      allocate( deltat(klon))
     1465      allocate( fqsurf(klon,nbsrf))
     1466      allocate( qsol(klon))
     1467      allocate( fsnow(klon,nbsrf))
     1468      allocate( falbe(klon,nbsrf))
     1469      allocate( falblw(klon,nbsrf))
     1470      allocate( zmea(klon))
     1471      allocate( zstd(klon))
     1472      allocate( zsig(klon))
     1473      allocate( zgam(klon))
     1474      allocate( zthe(klon))
     1475      allocate( zpic(klon))
     1476      allocate( zval(klon))
     1477      allocate( rugoro(klon))
     1478      allocate( zuthe(klon),zvthe(klon))
     1479      allocate( agesno(klon,nbsrf))
     1480      allocate( alb_neig(klon))
     1481      allocate( run_off_lic_0(klon))
     1482      allocate( ema_workcbmf(klon))   
     1483      allocate( ema_cbmf(klon))
     1484      allocate( ema_pcb(klon))
     1485      allocate( ema_pct(klon)) 
     1486      allocate( Ma(klon,klev) )
     1487      allocate( qcondc(klon,klev)) 
     1488      allocate( ema_work1(klon, klev), ema_work2(klon, klev))
     1489      allocate( wd(klon) )
     1490      allocate( pfrac_impa(klon,klev))
     1491      allocate( pfrac_nucl(klon,klev))
     1492      allocate( pfrac_1nucl(klon,klev))
     1493      allocate( rain_fall(klon) )
     1494      allocate( snow_fall(klon) )
     1495      allocate( total_rain(klon), nday_rain(klon))
     1496      allocate( dlw(klon)   )
     1497      allocate( fder(klon) )
     1498      allocate( frugs(klon,nbsrf) )
     1499      allocate( pctsrf(klon,nbsrf))
     1500      allocate( albsol(klon))
     1501      allocate( albsollw(klon))
     1502      allocate( wo(klon,klev))
     1503      allocate( clwcon(klon,klev),rnebcon(klon,klev))
     1504      allocate( heat(klon,klev)    )
     1505      allocate( heat0(klon,klev)  )
     1506      allocate( cool(klon,klev)    )
     1507      allocate( cool0(klon,klev)   )
     1508      allocate( topsw(klon), toplw(klon), solsw(klon), sollw(klon))
     1509      allocate( sollwdown(klon)    )
     1510      allocate( sollwdownclr(klon)  )
     1511      allocate( toplwdown(klon)      )
     1512      allocate( toplwdownclr(klon)   )
     1513      allocate( topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon))
     1514      allocate( albpla(klon))
     1515      allocate( cape(klon)   )       
     1516      allocate( pbase(klon)   )     
     1517      allocate( bbase(klon)    )     
     1518      allocate( ibas_con(klon), itop_con(klon))
     1519      allocate( ratqs(klon,klev))
     1520      allocate( sulfate_pi(klon, klev))
     1521      allocate( paire_ter(klon))
     1522      allocate(tsumSTD(klon,nlevSTD,nout))
     1523      allocate(usumSTD(klon,nlevSTD,nout))
     1524      allocate(vsumSTD(klon,nlevSTD,nout))
     1525      allocate(wsumSTD(klon,nlevSTD,nout))
     1526      allocate(phisumSTD(klon,nlevSTD,nout))
     1527      allocate(qsumSTD(klon,nlevSTD,nout))
     1528      allocate(rhsumSTD(klon,nlevSTD,nout))
     1529      allocate(uvsumSTD(klon,nlevSTD,nout))
     1530      allocate(vqsumSTD(klon,nlevSTD,nout))
     1531      allocate(vTsumSTD(klon,nlevSTD,nout))
     1532      allocate(wqsumSTD(klon,nlevSTD,nout))
     1533      allocate( vphisumSTD(klon,nlevSTD,nout))
     1534      allocate( wTsumSTD(klon,nlevSTD,nout))
     1535      allocate( u2sumSTD(klon,nlevSTD,nout))
     1536      allocate( v2sumSTD(klon,nlevSTD,nout))
     1537      allocate( T2sumSTD(klon,nlevSTD,nout))
     1538      allocate( seed_old(klon,napisccp))
     1539      allocate( pct_ocean(klon,nbregdyn))
     1540      allocate( rlonPOS(klon))
     1541      allocate( newsst(klon))
     1542      allocate( zqasc(klon,klev))
     1543      allocate( therm(klon, nbsrf))
     1544      allocate( rain_con(klon))
     1545      allocate( pblt(klon, nbsrf))
     1546      allocate( t2m(klon,nbsrf), q2m(klon,nbsrf) ) 
     1547      allocate( u10m(klon,nbsrf), v10m(klon,nbsrf))
     1548      allocate( topswad(klon), solswad(klon))
     1549      allocate( topswai(klon), solswai(klon) )
     1550      allocate( ffonte(klon,nbsrf))
     1551      allocate( fqcalving(klon,nbsrf))
     1552      allocate( fqfonte(klon,nbsrf))
     1553      allocate( pblh(klon, nbsrf))
     1554      allocate( plcl(klon, nbsrf)) 
     1555      allocate( capCL(klon, nbsrf))   
     1556      allocate( oliqCL(klon, nbsrf))       
     1557      allocate( cteiCL(klon, nbsrf))       
     1558      allocate( trmb1(klon, nbsrf))   
     1559      allocate( trmb2(klon, nbsrf))     
     1560      allocate( trmb3(klon, nbsrf))
     1561      allocate( clwcon0(klon,klev),rnebcon0(klon,klev))
     1562      allocate( tau_ae(klon,klev,2), piz_ae(klon,klev,2))
     1563      allocate( cg_ae(klon,klev,2))
     1564      allocate( snow_con(klon))
     1565      allocate( tnondef(klon,nlevSTD,nout))
     1566      allocate( d_u_con(klon,klev),d_v_con(klon,klev))           
     1567     
     1568     
     1569        paire_ter(:)=0.   
     1570        clwcon(:,:)=0.
     1571        rnebcon(:,:)=0.
     1572        ratqs(:,:)=0.
     1573        run_off_lic_0(:)=0.
     1574        sollw(:)=0.
     1575        ema_work1(:,:)=0.
     1576        ema_work2(:,:)=0.
     1577cym Attention pbase pas initialise dans concvl !!!!
     1578        pbase(:)=0
     1579       
     1580        first=.false.
     1581      endif
     1582
     1583                 
     1584       modname = 'physiq'
    12761585cIM
    12771586      IF (ip_ebil_phy.ge.1) THEN
     
    13051614         ffonte(:,:)=0.
    13061615         fqcalving(:,:)=0.
     1616         fqfonte(:,:)=0.
    13071617         piz_ae(:,:,:)=0.
    13081618         tau_ae(:,:,:)=0.
     
    13781688     .       run_off_lic_0)
    13791689
     1690       DO i=1,klon
     1691         IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) +
     1692     $       pctsrf(i, is_oce) + pctsrf(i, is_sic)  - 1.) .GT. EPSFRA)
     1693     $       THEN
     1694             WRITE(*,*) 'physiq : pb sous surface au point ', i,
     1695     $           pctsrf(i, 1 : nbsrf)
     1696         ENDIF
     1697      ENDDO
     1698 
    13801699c   ATTENTION : il faudra a terme relire q2 dans l'etat initial
    13811700         q2(:,:,:)=1.e-8
     
    15831902#endif
    15841903
     1904c#include "ini_histday_seri.h"
    15851905#include "ini_histday_seri.h"
    15861906
     
    16061926c
    16071927#ifdef INCA
     1928           call VTe(VTphysiq)
     1929           call VTb(VTinca)
    16081930           iii = MOD(NINT(xjour),360)
    16091931           calday = FLOAT(iii) + gmtime
     
    16121934           WRITE(lunout,*) 'Appel CHEMINI ...'
    16131935#endif
    1614            CALL chemini( rpi,
     1936           CALL chemini(
    16151937     $                   rg,
    16161938     $                   ra,
     
    16281950           WRITE(lunout,*) 'OK.'
    16291951#endif
     1952      call VTe(VTinca)
     1953      call VTb(VTphysiq)
    16301954#endif
    16311955c
     
    18652189       DO nsrf = 1, nbsrf
    18662190       DO i = 1, klon
    1867 c$$$        fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4
    1868 c$$$        fsollw(i,nsrf) = sollw(i)
     2191c@$$        fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4
     2192c@$$        fsollw(i,nsrf) = sollw(i)
    18692193         fsollw(i,nsrf) = sollw(i)
    18702194     $      + 4.0*RSIGMA*ztsol(i)**3 * (ztsol(i)-ftsol(i,nsrf))
     
    18722196       ENDDO
    18732197       ENDDO
    1874 
     2198     
     2199cYM   !!!!!!!!!!!!!!!!!!!!!!!!!!!!
     2200cYM         Attention verrue
     2201cYM    ---> A supprimer plus tard       
     2202cYM         pour etre integre dans
     2203cYM         ORCHIDEE       
     2204      DO i = 1, klon
     2205        sollwdown(i)=sollw(i)+RSIGMA*ztsol(i)**4
     2206      ENDDO
     2207cYM  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!     
     2208     
    18752209      fder = dlw
    18762210
     2211      if (mydebug) then
     2212        call writefield_phy('u_seri',u_seri,llm)
     2213        call writefield_phy('v_seri',v_seri,llm)
     2214        call writefield_phy('t_seri',t_seri,llm)
     2215        call writefield_phy('q_seri',q_seri,llm)
     2216      endif
     2217 
    18772218      IF (check) THEN
    18782219       amn=MIN(tslab(1),1000.)
     
    19062247     s            pblh,capCL,oliqCL,cteiCL,pblT,
    19072248     s            therm,trmb1,trmb2,trmb3,plcl,
    1908      s            fqcalving, ffonte, run_off_lic_0,
     2249     s            fqcalving, fqfonte,ffonte, run_off_lic_0,
    19092250cIM "slab" ocean
    19102251     s            fluxo, fluxg, tslab, seaice)
     
    19482289      ENDDO
    19492290      ENDDO
     2291
     2292      if (mydebug) then
     2293        call writefield_phy('u_seri',u_seri,llm)
     2294        call writefield_phy('v_seri',v_seri,llm)
     2295        call writefield_phy('t_seri',t_seri,llm)
     2296        call writefield_phy('q_seri',q_seri,llm)
     2297      endif
     2298
     2299
    19502300cIM
    19512301      IF (ip_ebil_phy.ge.2) THEN
     
    19752325         zxffonte(i) = 0.0
    19762326         zxfqcalving(i) = 0.0
     2327         zxfqfonte(i) = 0.0
    19772328cIM cf. AM 081204 BEG
    19782329c
     
    20162367            zxfqcalving(i) = zxfqcalving(i) +
    20172368     .                      fqcalving(i,nsrf)*pctsrf(i,nsrf)
     2369            zxfqfonte(i) = zxfqfonte(i) +
     2370     .                      fqfonte(i,nsrf)*pctsrf(i,nsrf)
    20182371cIM cf. AM 081204 BEG
    20192372            s_pblh(i) = s_pblh(i) + pblh(i,nsrf)*pctsrf(i,nsrf)
     
    20542407           ffonte(i,nsrf) = zxffonte(i)
    20552408           fqcalving(i,nsrf) = zxfqcalving(i)
     2409           fqfonte(i,nsrf) = zxfqfonte(i)
    20562410           pblh(i,nsrf)=s_pblh(i)
    20572411           plcl(i,nsrf)=s_lcl(i)
     
    21682522          ENDIF ! ok_cvl
    21692523
     2524c
     2525c Correction precip
     2526          rain_con = rain_con * cvl_corr
     2527          snow_con = snow_con * cvl_corr
     2528c
     2529
    21702530           IF (.NOT. ok_gust) THEN
    21712531           do i = 1, klon
     
    22292589        ENDDO
    22302590      ENDDO
     2591
     2592      if (mydebug) then
     2593        call writefield_phy('u_seri',u_seri,llm)
     2594        call writefield_phy('v_seri',v_seri,llm)
     2595        call writefield_phy('t_seri',t_seri,llm)
     2596        call writefield_phy('q_seri',q_seri,llm)
     2597      endif
     2598
    22312599cIM
    22322600      IF (ip_ebil_phy.ge.2) THEN
     
    24292797     s      , fs_bound, fq_bound )
    24302798      END IF
     2799
     2800      if (mydebug) then
     2801        call writefield_phy('u_seri',u_seri,llm)
     2802        call writefield_phy('v_seri',v_seri,llm)
     2803        call writefield_phy('t_seri',t_seri,llm)
     2804        call writefield_phy('q_seri',q_seri,llm)
     2805      endif
     2806
    24312807c
    24322808c-------------------------------------------------------------------
     
    24772853      ELSE IF (iflag_cldcon.eq.3) THEN
    24782854c  On prend pour les nuages convectifs le max du calcul de la
    2479 c  convection et du calcul du pas de temps précédent diminué d'un facteur
     2855c  convection et du calcul du pas de temps precedent diminue d'un facteur
    24802856c  facttemps
    24812857c      facttemps=pdtphys/1.e4
     
    24912867         enddo
    24922868      enddo
     2869
     2870c
     2871cjq - introduce the aerosol direct and first indirect radiative forcings
     2872cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
     2873      IF (ok_ade.OR.ok_aie) THEN
     2874         ! Get sulfate aerosol distribution
     2875         CALL readsulfate(rjourvrai, debut, sulfate)
     2876         CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
     2877
     2878         ! Calculate aerosol optical properties (Olivier Boucher)
     2879         CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
     2880     .        tau_ae, piz_ae, cg_ae, aerindex)
     2881cym
     2882      ELSE
     2883        tau_ae(:,:,:)=0.0
     2884        piz_ae(:,:,:)=0.0
     2885        cg_ae(:,:,:)=0.0
     2886cym     
     2887      ENDIF
    24932888
    24942889c
     
    26073002     . EXP((Lheat *qsat2m(i))/(RCPD*zt2m(i)))
    26083003      ENDDO
    2609 c
    2610 cjq - introduce the aerosol direct and first indirect radiative forcings
    2611 cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
    2612       IF (ok_ade.OR.ok_aie) THEN
    2613          ! Get sulfate aerosol distribution
    2614          CALL readsulfate(rjourvrai, debut, sulfate)
    2615          CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
    2616 
    2617          ! Calculate aerosol optical properties (Olivier Boucher)
    2618          CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
    2619      .        tau_ae, piz_ae, cg_ae, aerindex)
    2620 cym
    2621       ELSE
    2622         tau_ae(:,:,:)=0.0
    2623         piz_ae(:,:,:)=0.0
    2624         cg_ae(:,:,:)=0.0
    2625 cym     
    2626       ENDIF
     3004
    26273005
    26283006#ifdef INCA
     3007      call VTe(VTphysiq)
     3008      call VTb(VTinca)
    26293009           calday = FLOAT(julien) + gmtime
    26303010
    26313011#ifdef INCA_AER
    2632       call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs,
    2633      &   prfl,psfl,pctsrf(1,3),airephy,xjour,rlat,rlon)
     3012      call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs
     3013     &   ,prfl,psfl,pctsrf,airephy,xjour,rlat,rlon,u10m,v10m)
    26343014#endif
    26353015
     
    26843064           WRITE(lunout,*)'OK.'
    26853065#endif
     3066      call VTe(VTinca)
     3067      call VTb(VTphysiq)
    26863068#endif
    26873069c     
     
    27223104     .               + falblw(i,is_sic) * pctsrf(i,is_sic)
    27233105      ENDDO
     3106
     3107      if (mydebug) then
     3108        call writefield_phy('u_seri',u_seri,llm)
     3109        call writefield_phy('v_seri',v_seri,llm)
     3110        call writefield_phy('t_seri',t_seri,llm)
     3111        call writefield_phy('q_seri',q_seri,llm)
     3112      endif
     3113     
    27243114      CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS)
    27253115     e            (dist, rmu0, fract,
     
    27503140      ENDDO
    27513141      ENDDO
     3142c
     3143      if (mydebug) then
     3144        call writefield_phy('u_seri',u_seri,llm)
     3145        call writefield_phy('v_seri',v_seri,llm)
     3146        call writefield_phy('t_seri',t_seri,llm)
     3147        call writefield_phy('q_seri',q_seri,llm)
     3148      endif
     3149 
    27523150cIM
    27533151      IF (ip_ebil_phy.ge.2) THEN
     
    28373235      ENDIF ! fin de test sur ok_orodr
    28383236c
     3237      if (mydebug) then
     3238        call writefield_phy('u_seri',u_seri,llm)
     3239        call writefield_phy('v_seri',v_seri,llm)
     3240        call writefield_phy('t_seri',t_seri,llm)
     3241        call writefield_phy('q_seri',q_seri,llm)
     3242      endif
     3243     
    28393244      IF (ok_orolf) THEN
    28403245c
     
    28723277C STRESS NECESSAIRES: TOUTE LA PHYSIQUE
    28733278
     3279      if (mydebug) then
     3280        call writefield_phy('u_seri',u_seri,llm)
     3281        call writefield_phy('v_seri',v_seri,llm)
     3282        call writefield_phy('t_seri',t_seri,llm)
     3283        call writefield_phy('q_seri',q_seri,llm)
     3284      endif
     3285
    28743286      DO i = 1, klon
    28753287        zustrph(i)=0.
     
    28873299cIM calcul composantes axiales du moment angulaire et couple des montagnes
    28883300c
    2889       CALL aaam_bud (27,klon,klev,rjourvrai,gmtime,
    2890      C               ra,rg,romega,
    2891      C               rlat,rlon,pphis,
    2892      C               zustrdr,zustrli,zustrph,
    2893      C               zvstrdr,zvstrli,zvstrph,
    2894      C               paprs,u,v,
    2895      C               aam, torsfc)
     3301      IF (monocpu) THEN
     3302     
     3303        CALL aaam_bud (27,klon,klev,rjourvrai,gmtime,
     3304     C                 ra,rg,romega,
     3305     C                 rlat,rlon,pphis,
     3306     C                 zustrdr,zustrli,zustrph,
     3307     C                 zvstrdr,zvstrli,zvstrph,
     3308     C                 paprs,u,v,
     3309     C                 aam, torsfc)
     3310       ENDIF
    28963311cIM cf. FLott END
    28973312cIM
     
    30583473c
    30593474#ifdef INCA
     3475      call VTe(VTphysiq)
     3476      call VTb(VTinca)
    30603477#ifdef INCAINFO
    30613478           WRITE(lunout,*)'Appel CHEMHOOK_END ...'
     
    30683485     $                        nbtr,
    30693486     $                        paprs,
    3070 #ifdef INCA_CH4
    30713487     $                        q_seri,
    3072 #endif
    30733488     $                        annee_ref,
    30743489     $                        day_ini,
     3490     $                        airephy,     
    30753491#ifdef INCA_AER
    30763492     $                        xjour,
    30773493     $                        pphi,
    30783494     $                        pphis,
    3079      $                        zx_rh,
    3080      $                        qx(1,1,1))
     3495     $                        zx_rh)
    30813496#else
    30823497     $                        xjour)
     
    30853500           WRITE(lunout,*)'OK.'
    30863501#endif
     3502      call VTe(VTinca)
     3503      call VTb(VTphysiq)
    30873504#endif
    30883505
     
    30913508c Convertir les incrementations en tendances
    30923509c
     3510      if (mydebug) then
     3511        call writefield_phy('u_seri',u_seri,llm)
     3512        call writefield_phy('v_seri',v_seri,llm)
     3513        call writefield_phy('t_seri',t_seri,llm)
     3514        call writefield_phy('q_seri',q_seri,llm)
     3515      endif
     3516
    30933517      DO k = 1, klev
    30943518      DO i = 1, klon
  • LMDZ4/trunk/libf/phylmd/phystokenc.F

    r541 r766  
    1212     I                   pphis,paire,dtime,itap)
    1313      USE ioipsl
    14       USE histcom
    15 
     14      USE dimphy
     15      USE iophy
    1616      IMPLICIT none
    1717
     
    2323c======================================================================
    2424#include "dimensions.h"
    25 #include "dimphy.h"
     25cym#include "dimphy.h"
    2626#include "tracstoke.h"
    2727#include "indicesol.h"
     
    4343      integer physid, itap
    4444      save physid
     45c$OMP THREADPRIVATE(physid)
    4546      integer ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev)
    4647
     
    5455      REAL pen_d(klon,klev) ! flux entraine dans le panache descendant
    5556      REAL pde_d(klon,klev) ! flux detraine dans le panache descendant
    56         real pt(klon,klev),t(klon,klev)
     57      real pt(klon,klev)
     58      REAL,allocatable,save :: t(:,:)
     59c$OMP THREADPRIVATE(t)
    5760c
    5861      REAL rlon(klon), rlat(klon), dtime
     
    6972c   ---------------
    7073      REAL pfm_therm(klon,klev+1)
    71         real fm_therm1(klon,klev)
     74      real fm_therm1(klon,klev)
    7275      REAL pentr_therm(klon,klev)
    73       REAL entr_therm(klon,klev)
    74       REAL fm_therm(klon,klev)
     76   
     77      REAL,allocatable,save :: entr_therm(:,:)
     78      REAL,allocatable,save :: fm_therm(:,:)
     79c$OMP THREADPRIVATE(entr_therm)
     80c$OMP THREADPRIVATE(fm_therm)
    7581c
    7682c   Lessivage:
     
    8894      INTEGER i, k
    8995c
    90       REAL mfu(klon,klev)  ! flux de masse dans le panache montant
    91       REAL mfd(klon,klev)  ! flux de masse dans le panache descendant
    92       REAL en_u(klon,klev) ! flux entraine dans le panache montant
    93       REAL de_u(klon,klev) ! flux detraine dans le panache montant
    94       REAL en_d(klon,klev) ! flux entraine dans le panache descendant
    95       REAL de_d(klon,klev) ! flux detraine dans le panache descendant
    96       REAL coefh(klon,klev) ! flux detraine dans le panache descendant
    97 
    98       REAL pyu1(klon),pyv1(klon)
    99       REAL pftsol(klon,nbsrf),ppsrf(klon,nbsrf)
     96      REAL,allocatable,save :: mfu(:,:)  ! flux de masse dans le panache montant
     97      REAL,allocatable,save :: mfd(:,:)  ! flux de masse dans le panache descendant
     98      REAL,allocatable,save :: en_u(:,:) ! flux entraine dans le panache montant
     99      REAL,allocatable,save :: de_u(:,:) ! flux detraine dans le panache montant
     100      REAL,allocatable,save :: en_d(:,:) ! flux entraine dans le panache descendant
     101      REAL,allocatable,save :: de_d(:,:) ! flux detraine dans le panache descendant
     102      REAL,allocatable,save :: coefh(:,:) ! flux detraine dans le panache descendant
     103
     104      REAL,allocatable,save :: pyu1(:)
     105      REAL,allocatable,save :: pyv1(:)
     106      REAL,allocatable,save :: pftsol(:,:)
     107      REAL,allocatable,save :: ppsrf(:,:)
     108c$OMP THREADPRIVATE(mfu,mfd,en_u,de_u,en_d,de_d,coefh)
     109c$OMP THREADPRIVATE(pyu1,pyv1,pftsol,ppsrf)
    100110      real pftsol1(klon),pftsol2(klon),pftsol3(klon),pftsol4(klon)
    101111      real ppsrf1(klon),ppsrf2(klon),ppsrf3(klon),ppsrf4(klon)
     
    107117      logical ok_sync
    108118 
    109       save t,mfu,mfd,en_u,de_u,en_d,de_d,coefh,dtcum
    110         save fm_therm,entr_therm
     119      save dtcum
    111120      save iadvtr,irec
    112       save pyu1,pyv1,pftsol,ppsrf
    113 
     121c$OMP THREADPRIVATE(dtcum,iadvtr,irec)
    114122      data iadvtr,irec/0,1/
     123      logical,save :: first=.true.
     124c$OMP THREADPRIVATE(first)
    115125c
    116126c   Couche limite:
     
    123133      print*,'istdyn= ',istdyn
    124134
     135      if (first) then
     136     
     137        allocate( t(klon,klev))
     138        allocate( mfu(klon,klev)) 
     139        allocate( mfd(klon,klev)) 
     140        allocate( en_u(klon,klev))
     141        allocate( de_u(klon,klev))
     142        allocate( en_d(klon,klev))
     143        allocate( de_d(klon,klev))
     144        allocate( coefh(klon,klev))
     145        allocate( entr_therm(klon,klev))
     146        allocate( fm_therm(klon,klev))
     147        allocate( pyu1(klon))
     148        allocate( pyv1(klon))
     149        allocate( pftsol(klon,nbsrf))
     150        allocate( ppsrf(klon,nbsrf))
     151 
     152        first=.false.
     153      endif
     154     
    125155      IF (iadvtr.eq.0) THEN
    126156       
     
    136166      ndex3d = 0
    137167      i=itap
    138       CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
    139       CALL histwrite(physid,"phis",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
     168cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
     169      CALL histwrite_phy(physid,"phis",i,pphis)
    140170c
    141171      i=itap
    142       CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
    143       CALL histwrite(physid,"aire",i,zx_tmp_2d,iim*(jjm+1),ndex2d)
     172cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)
     173      CALL histwrite_phy(physid,"aire",i,paire)
    144174
    145175      iadvtr=iadvtr+1
     
    247277
    248278ccccc
    249          CALL gr_fi_ecrit(klev,klon,iim,jjm+1, t, zx_tmp_3d)
    250          CALL histwrite(physid,"t",itap,zx_tmp_3d,
    251      .                                   iim*(jjm+1)*klev,ndex3d)
    252 
    253          CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfu, zx_tmp_3d)
    254       CALL histwrite(physid,"mfu",itap,zx_tmp_3d,
    255      .                                   iim*(jjm+1)*klev,ndex3d)
    256         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfd, zx_tmp_3d)
    257       CALL histwrite(physid,"mfd",itap,zx_tmp_3d,
    258      .                                   iim*(jjm+1)*klev,ndex3d)
    259         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_u, zx_tmp_3d)
    260       CALL histwrite(physid,"en_u",itap,zx_tmp_3d,
    261      .                                   iim*(jjm+1)*klev,ndex3d)
    262         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_u, zx_tmp_3d)
    263       CALL histwrite(physid,"de_u",itap,zx_tmp_3d,
    264      .                                   iim*(jjm+1)*klev,ndex3d)
    265         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_d, zx_tmp_3d)
    266       CALL histwrite(physid,"en_d",itap,zx_tmp_3d,
    267      .                                   iim*(jjm+1)*klev,ndex3d)
    268         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_d, zx_tmp_3d)       
    269       CALL histwrite(physid,"de_d",itap,zx_tmp_3d,   
    270      .                                   iim*(jjm+1)*klev,ndex3d)
    271         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, coefh, zx_tmp_3d)         
    272       CALL histwrite(physid,"coefh",itap,zx_tmp_3d,   
    273      .                                   iim*(jjm+1)*klev,ndex3d)       
     279cym         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, t, zx_tmp_3d)
     280         CALL histwrite_phy(physid,"t",itap,t)
     281
     282cym         CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfu, zx_tmp_3d)
     283      CALL histwrite_phy(physid,"mfu",itap,mfu)
     284cym     CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfd, zx_tmp_3d)
     285      CALL histwrite_phy(physid,"mfd",itap,mfd)
     286cym        CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_u, zx_tmp_3d)
     287      CALL histwrite_phy(physid,"en_u",itap,en_u)
     288cym        CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_u, zx_tmp_3d)
     289      CALL histwrite_phy(physid,"de_u",itap,de_u)
     290cym        CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_d, zx_tmp_3d)
     291      CALL histwrite_phy(physid,"en_d",itap,en_d)
     292cym        CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_d, zx_tmp_3d)       
     293      CALL histwrite_phy(physid,"de_d",itap,de_d)
     294cym        CALL gr_fi_ecrit(klev,klon,iim,jjm+1, coefh, zx_tmp_3d)         
     295      CALL histwrite_phy(physid,"coefh",itap,coefh)     
    274296
    275297c ajou...
     
    280302        enddo
    281303
    282       CALL gr_fi_ecrit(klev,klon,iim,jjm+1, fm_therm1, zx_tmp_3d)
    283       CALL histwrite(physid,"fm_th",itap,zx_tmp_3d,
    284      .                                 iim*(jjm+1)*klev,ndex3d)
    285 c
    286       CALL gr_fi_ecrit(klev,klon,iim,jjm+1, entr_therm, zx_tmp_3d)
    287       CALL histwrite(physid,"en_th",itap,zx_tmp_3d,
    288      .                                iim*(jjm+1)*klev,ndex3d)
     304cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1, fm_therm1, zx_tmp_3d)
     305      CALL histwrite_phy(physid,"fm_th",itap,fm_therm1)
     306c
     307cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1, entr_therm, zx_tmp_3d)
     308      CALL histwrite_phy(physid,"en_th",itap,entr_therm)
    289309cccc
    290        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_impa,zx_tmp_3d)
    291         CALL histwrite(physid,"frac_impa",itap,zx_tmp_3d,
    292      .  iim*(jjm+1)*klev,ndex3d)
    293 
    294         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_nucl,zx_tmp_3d)
    295         CALL histwrite(physid,"frac_nucl",itap,zx_tmp_3d,
    296      .  iim*(jjm+1)*klev,ndex3d)
     310cym       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_impa,zx_tmp_3d)
     311        CALL histwrite_phy(physid,"frac_impa",itap,frac_impa)
     312
     313cym        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_nucl,zx_tmp_3d)
     314        CALL histwrite_phy(physid,"frac_nucl",itap,frac_nucl)
    297315 
    298         CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyu1,zx_tmp_2d)
    299       CALL histwrite(physid,"pyu1",itap,zx_tmp_2d,iim*(jjm+1),
    300      .                                                ndex2d)
     316cym        CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyu1,zx_tmp_2d)
     317      CALL histwrite_phy(physid,"pyu1",itap,pyu1)
    301318       
    302         CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyv1,zx_tmp_2d)
    303       CALL histwrite(physid,"pyv1",itap,zx_tmp_2d,iim*(jjm+1)
    304      .                                                ,ndex2d)
     319cym     CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyv1,zx_tmp_2d)
     320      CALL histwrite_phy(physid,"pyv1",itap,pyv1)
    305321       
    306         CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol1, zx_tmp_2d)
    307       CALL histwrite(physid,"ftsol1",itap,zx_tmp_2d,
    308      .                                   iim*(jjm+1),ndex2d)
    309          CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol2, zx_tmp_2d)
    310       CALL histwrite(physid,"ftsol2",itap,zx_tmp_2d,
    311      .                                   iim*(jjm+1),ndex2d)
    312           CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol3, zx_tmp_2d)
    313       CALL histwrite(physid,"ftsol3",itap,zx_tmp_2d,
    314      .                                   iim*(jjm+1),ndex2d)
    315          CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol4, zx_tmp_2d)
    316       CALL histwrite(physid,"ftsol4",itap,zx_tmp_2d,
    317      .                                   iim*(jjm+1),ndex2d)
    318 
    319         CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf1, zx_tmp_2d)
    320       CALL histwrite(physid,"psrf1",itap,zx_tmp_2d,   
    321      .                                   iim*(jjm+1),ndex2d)
    322         CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf2, zx_tmp_2d)
    323       CALL histwrite(physid,"psrf2",itap,zx_tmp_2d,
    324      .                                   iim*(jjm+1),ndex2d)
    325         CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf3, zx_tmp_2d)
    326       CALL histwrite(physid,"psrf3",itap,zx_tmp_2d,
    327      .                                   iim*(jjm+1),ndex2d)
    328         CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf4, zx_tmp_2d)
    329       CALL histwrite(physid,"psrf4",itap,zx_tmp_2d,
    330      .                                   iim*(jjm+1),ndex2d)
    331 
     322cym     CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol1, zx_tmp_2d)
     323      CALL histwrite_phy(physid,"ftsol1",itap,pftsol1)
     324cym         CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol2, zx_tmp_2d)
     325      CALL histwrite_phy(physid,"ftsol2",itap,pftsol2)
     326cym          CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol3, zx_tmp_2d)
     327      CALL histwrite_phy(physid,"ftsol3",itap,pftsol3)
     328cym         CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol4, zx_tmp_2d)
     329      CALL histwrite_phy(physid,"ftsol4",itap,pftsol4)
     330
     331cym        CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf1, zx_tmp_2d)
     332      CALL histwrite_phy(physid,"psrf1",itap,ppsrf1)
     333cym        CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf2, zx_tmp_2d)
     334      CALL histwrite_phy(physid,"psrf2",itap,ppsrf2)
     335cym        CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf3, zx_tmp_2d)
     336      CALL histwrite_phy(physid,"psrf3",itap,ppsrf3)
     337cym        CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf4, zx_tmp_2d)
     338      CALL histwrite_phy(physid,"psrf4",itap,ppsrf4)
     339
     340c$OMP MASTER
    332341      if (ok_sync) call histsync(physid)
     342c$OMP END MASTER
    333343c     if (ok_sync) call histsync
    334344       
  • LMDZ4/trunk/libf/phylmd/phytrac.F

    r682 r766  
    6363
    6464      USE ioipsl
    65 
    66 #ifdef INCA
    67       USE sflx
    68       USE chem_tracnm
    69       USE species_names
    70       USE chem_mods
    71 #ifdef INCA_NMHC
    72       USE pht_tables, ONLY : jrates
    73       USE lightning, ONLY : prod_light
    74 #endif
    75 #ifdef INCA_CH4
    76       USE pht_tables, ONLY : jrates
    77       USE lightning, ONLY : prod_light
    78 #endif
    79       USE transport_controls, ONLY : conv_flg, pbl_flg
    80       USE airplane_src, ONLY : ptrop
    81 #ifdef INCA_AER
    82       USE AEROSOL_MOD, only : ntr,trmx,trnx
    83       USE AEROSOL_DIAG,only : cla,las,tausum,angst,aload,cload,totaerh2o,tau,
    84      $  emiss20,sconc,scavcoef_st,scavcoef_cv
    85      $  ,cload05ss  ,cload05bc  ,cload05pom  ,cload05dust  ,cload05so4
    86      $  ,cload125ss  ,cload125bc  ,cload125pom  ,cload125dust  ,cload125so4
    87       USE AEROSOL_PROGNOS, ONLY : md,mdw
    88       USE AEROSOL_METEO, only : airm
    89 #endif
    90 #ifdef INCA_NMHC
    91       USE RESISTANCE_DIAGNOSE, ONLY : surf_alb, sol_irrad, surf_temp, surf_wind,
    92      $                                aero_resist, lamin_resist, surf_resist
    93 #endif
    94 #endif
     65      USE dimphy
     66      USE comgeomphy
     67      USE iophy
     68      USE vampir
     69
    9570      IMPLICIT none
    9671c======================================================================
     
    10883#include "YOMCST.h"
    10984#include "dimensions.h"
    110 #include "dimphy.h"
     85cym#include "dimphy.h"
    11186#include "indicesol.h"
    11287#include "clesphys.h"
     
    11489#include "paramet.h"
    11590#include "control.h"
    116 #include "comgeomphy.h"
     91cym#include "comgeomphy.h"
    11792#include "advtrac.h"
    11893#include "thermcell.h"
     
    162137#ifdef INCA
    163138      REAL flxmass_w(klon,klev)
     139      CHARACTER(len=8) :: solsym(nqmax)
    164140#endif
    165141c      integer iflag_con
     
    227203cAA Pour l'instant seuls les cas du rn et du pb ont ete envisages.
    228204
    229       REAL source(klon)       ! a voir lorsque le flux est prescrit
     205      REAL source(klon,nqmax)       ! a voir lorsque le flux est prescrit
    230206cAA
    231207cAA Pour la source de radon et son reservoir de sol
    232208cAA ................................................
    233209 
    234       REAL trs(klon,nbtr)    ! Conc. radon ds le sol
    235       SAVE trs
    236 
    237       REAL masktr(klon,nbtr) ! Masque reservoir de sol traceur
     210      REAL,save,allocatable :: trs(:,:)    ! Conc. radon ds le sol
     211c$OMP THREADPRIVATE(trs)
     212cym      SAVE trs
     213      REAL :: trs_tmp(klon2)
     214      REAL,SAVE,ALLOCATABLE :: trs_mpi(:)
     215     
     216      REAL,save,allocatable :: masktr(:,:) ! Masque reservoir de sol traceur
    238217c                            Masque de l'echange avec la surface
    239218c                           (1 = reservoir) ou (possible => 1 )
    240       SAVE masktr
    241       REAL fshtr(klon,nbtr)  ! Flux surfacique dans le reservoir de sol
    242       SAVE fshtr
    243       REAL hsoltr(nbtr)      ! Epaisseur equivalente du reservoir de sol
    244       SAVE hsoltr
    245       REAL tautr(nbtr)       ! Constante de decroissance radioactive
    246       SAVE tautr
    247       REAL vdeptr(nbtr)      ! Vitesse de depot sec dans la couche Brownienne
    248       SAVE vdeptr
    249       REAL scavtr(nbtr)      ! Coefficient de lessivage
    250       SAVE scavtr
     219c$OMP THREADPRIVATE(masktr)
     220cym      SAVE masktr
     221      REAL,save,allocatable :: fshtr(:,:)  ! Flux surfacique dans le reservoir de sol
     222c$OMP THREADPRIVATE(fshtr)
     223cym      SAVE fshtr
     224      REAL,save,allocatable :: hsoltr(:)      ! Epaisseur equivalente du reservoir de sol
     225c$OMP THREADPRIVATE(hsoltr)
     226cym      SAVE hsoltr
     227      REAL,save,allocatable :: tautr(:)       ! Constante de decroissance radioactive
     228c$OMP THREADPRIVATE(tautr)
     229cym      SAVE tautr
     230      REAL,save,allocatable :: vdeptr(:)      ! Vitesse de depot sec dans la couche Brownienne
     231c$OMP THREADPRIVATE(vdeptr)
     232cym      SAVE vdeptr
     233      REAL,save,allocatable :: scavtr(:)      ! Coefficient de lessivage
     234c$OMP THREADPRIVATE(scavtr)
     235cym      SAVE scavtr
    251236cAA
    252237      CHARACTER*2 itn
     
    257242      INTEGER nid_tra
    258243      SAVE nid_tra
     244c$OMP THREADPRIVATE(nid_tra)
    259245#ifdef INCA_AER
    260246      INTEGER nid_tra2,nid_tra3
    261247      SAVE nid_tra2,nid_tra3
     248c$OMP THREADPRIVATE(nid_tra2,nid_tra3)
    262249#endif
    263250c     REAL x(klon,klev,nbtr+2) ! traceurs
    264251      INTEGER ndex(1)
    265252      INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev)
     253      REAL zx_tmp_fi2d(klon)      ! variable temporaire grille physique
     254      REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D
    266255      REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev)
    267256      REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
     
    274263c
    275264c      INTEGER ecrit_tra
    276 c      SAVE ecrit_tra   
     265c      SAVE ecrit_tra
     266
    277267      logical ok_sync
    278268      parameter (ok_sync = .true.)
     
    280270C nature du traceur
    281271c
    282       logical aerosol(nbtr)  ! Nature du traceur
     272      logical,save,allocatable :: aerosol(:)  ! Nature du traceur
    283273c                            ! aerosol(it) = true  => aerosol
    284274c                            ! aerosol(it) = false => gaz
    285275c                            ! nat_trac(it) = 1. aerosol
    286       logical clsol(nbtr)    ! clsol(it) = true => CL sol calculee
    287       logical radio(nbtr)    ! radio(it)=true => decroisssance radioactive
    288       save aerosol,clsol,radio
     276      logical,save,allocatable :: clsol(:)    ! clsol(it) = true => CL sol calculee
     277      logical,save,allocatable :: radio(:)    ! radio(it)=true => decroisssance radioactive
     278c$OMP THREADPRIVATE(aerosol,clsol,radio) 
     279cym      save aerosol,clsol,radio
    289280C
    290281c======================================================================
     
    334325      save first,couchelimite,convection,lessivage,
    335326     s        sorties,inirnpb
     327c$OMP THREADPRIVATE(first,couchelimite,convection,lessivage,
     328c$OMP+              sorties,inirnpb)
    336329c      data first,couchelimite,convection,lessivage,sorties
    337330c     s     /.true.,.true.,.false.,.true.,.true./
     
    345338      INTEGER           :: lastgas
    346339      INTEGER           :: ncsec
    347 
    348       INTEGER           :: prt_flag_ts(nbtr)=(/
    349 #ifdef INCA_CH4
    350      .                                         1,1,1,0,0,1,1,1,1,1,
    351      .                                         0,1,0,0,0,0,0,1,0,0,
    352      .                                         0,1,1,1,1,0,1,1,1,0,
    353      .                                         1,1,1,1,1,1,1,1,1,1,
    354      .                                         1,0,0
    355 #ifdef INCA_AER
    356      .                                        ,1,1,1,1,0,1,1,1,1,0,
    357      .                                         1,1,1,1,1,1,0,1,0,1,
    358      .                                         1,1,1,1,0,1,0,1,1,1
    359 #endif
    360 #endif
    361 #ifdef INCA_NMHC
    362      .                                         1,1,1,1,1,1,1,1,1,1,
    363      .                                         1,1,1,1,1,1,1,1,1,1,
    364      .                                         1,1,1,1,1,1,1,1,1,1,
    365      .                                         1,1,1,1,1,1,1,1,1,1,
    366      .                                         1,1,1,1,1,1,1,1,1,1,
    367      .                                         1,1,1,1,1,1,1,1,1,1,
    368      .                                         1,1,1,1,1,1,1,1,1,1,
    369      .                                         1,1,1,1,1,1,1,1,1,1,
    370      .                                         1,1,1,1,1,1,1
    371 #ifdef INCA_AER
    372      .                                        ,1,1,1,1,0,1,1,1,1,0,
    373      .                                         1,1,1,1,1,1,0,1,0,1,
    374      .                                         1,1,1,1,0,1,0,1,1,1
    375 #endif
    376 #endif
    377 #if defined(INCA_AER) && !defined(INCA_CH4) && !defined(INCA_NMHC)
    378      .                                         1,1,1,1,1,1,1,1,1,1,
    379      .                                         1,1,1,1,1,1,1,1,1,1,
    380      .                                         1,1,1,1,1,1,1,1,1
    381 #endif
    382 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER)
    383      .                                         1,1,1,1,1,1,1,1,1,1,
    384      .                                         1                                         
    385 #endif
    386 
    387      .                                         /)
    388 
     340      INTEGER           :: prt_flag_ts(nbtr) 
    389341
    390342      REAL, PARAMETER   :: dry_mass = 28.966
     
    393345      REAL              :: calday
    394346      REAL              :: pdel(klon,klev)
    395       REAL              :: dummy(klon,klev) = 0.
     347      REAL              :: dummy(klon,klev)
    396348#endif
    397349#ifdef INCA_AER
     
    400352c
    401353c======================================================================
     354
     355#ifdef INCA
     356      prt_flag_ts(:)=(/
     357#ifdef INCA_CH4
     358     .             1,1,1,0,0,1,1,1,1,1,
     359     .             0,1,0,0,0,0,0,1,0,0,
     360     .             0,1,1,1,1,0,1,1,1,0,
     361     .             1,1,1,1,1,1,1,1,1,1,
     362     .             1,0,0
     363#ifdef INCA_AER
     364     .             ,1,1,1,1,0,1,1,1,1,0,
     365     .             1,1,1,1,1,1,0,1,0,1,
     366     .             1,1,1,1,0,1,0,1,1,1
     367#endif
     368#endif
     369#ifdef INCA_NMHC
     370     .             1,1,1,1,1,1,1,1,1,1,
     371     .             1,1,1,1,1,1,1,1,1,1,
     372     .             1,1,1,1,1,1,1,1,1,1,
     373     .             1,1,1,1,1,1,1,1,1,1,
     374     .             1,1,1,1,1,1,1,1,1,1,
     375     .             1,1,1,1,1,1,1,1,1,1,
     376     .             1,1,1,1,1,1,1,1,1,1,
     377     .             1,1,1,1,1,1,1,1,1,1,
     378     .             1,1,1,1,1,1,1
     379#ifdef INCA_AER
     380     .             ,1,1,1,1,0,1,1,1,1,0,
     381     .             1,1,1,1,1,1,0,1,0,1,
     382     .             1,1,1,1,0,1,0,1,1,1
     383#endif
     384#endif
     385#if defined(INCA_AER) && !defined(INCA_CH4) && !defined(INCA_NMHC)
     386     .             1,1,1,1,1,1,1,1,1,1,
     387     .             1,1,1,1,1,1,1,1,1,1,
     388     .             1,1,1,1,1,1,1,1,1
     389#endif
     390#if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER)
     391     .             1,1,1,1,1,1,1,1,1,1,
     392     .             1                                         
     393#endif
     394
     395     .             /)
     396      dummy(:,:) = 0.
     397
     398#endif
    402399         modname='phytrac'
    403400
     
    405402
    406403         if (debutphy) then
    407 
    408 c          ecrit_tra = NINT(86400./pdtphys *ecritphy)
     404           allocate( trs(klon,nbtr) )
     405c$OMP MASTER
     406           allocate( trs_mpi(klon_mpi) ) 
     407c$OMP END MASTER           
     408           allocate( masktr(klon,nbtr))
     409           allocate( fshtr(klon,nbtr) )
     410           allocate( hsoltr(nbtr))
     411           allocate( tautr(nbtr))
     412           allocate( vdeptr(nbtr))
     413           allocate( scavtr(nbtr))
     414           allocate( aerosol(nbtr))
     415           allocate( clsol(nbtr))
     416           allocate( radio(nbtr))
     417
     418
     419          ecrit_tra = NINT(86400./pdtphys *ecritphy)
    409420          print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra
    410421
     
    435446c        print*,'valeur de debut dans phytrac :',debutphy
    436447         trs(:,:) = 0.
    437 
    438          open (99,file='starttrac',status='old',
     448c$OMP MASTER         
     449       if (phy_rank==0) then
     450         trs_tmp(:)=0.
     451         open (99,file='starttrac',status='old',
    439452     .         err=999,form='formatted')
    440          read(99,*) (trs(i,1),i=1,klon)
     453         read(99,*) (trs_tmp(i),i=1,klon2)
    441454999      close(99)
     455       endif
     456       call ScatterField(trs_tmp,trs_mpi,1)
     457c$OMP END MASTER
     458      call ScatterField_omp(trs_mpi,trs(:,1),1)
    442459c         print*, 'apres starttrac'
    443460
     
    470487      endif
    471488#ifdef INCA
     489      call VTe(VTphysiq)
     490      call VTb(VTinca)
    472491!======================================================================
    473492!     Chimie
     
    509528     $                 rneb,         ! for chimiaq
    510529     $                 t_seri,       ! for chimiaq
    511      $                 rh)
     530     $                 rh,
     531     $                 lafin)
    512532! fin changement anne
    513533
     
    515535
    516536        CALL chemmain (tr_seri,    !mmr
    517      $                 nas,        !nas
    518537     $                 nstep,      !nstep
    519538     $                 calday,     !calday
     
    550569     $                 obuf,       !obuf
    551570     $                 iip1,       !nx
    552      $                 jjp1)       !ny
     571     $                 jjp1,       !ny
     572     $                 source,
     573     $                 solsym)
    553574#ifdef INCAINFO
    554575#ifdef INCA_AER
     
    582603      END DO
    583604#endif
     605      call VTe(VTinca)
     606      call VTb(VTphysiq)
    584607#else
    585608
     
    755778C         CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'cltracrn it='//itn)
    756779      else ! couche limite avec flux prescrit
    757 #ifdef INCA
    758         DO k =  1, klon
    759           source(k) = eflux(k,it)-dflux(k,it)
    760         END DO
    761 #else
     780#ifndef INCA
    762781
    763782Cmaf provisoire source / traceur a creer
    764783        DO i=1, klon
    765           source(i) = 0.0 ! pas de source, pour l'instant
     784          source(i,it) = 0.0 ! pas de source, pour l'instant
    766785        ENDDO
    767786C
    768787#endif
    769788          CALL cltrac(pdtphys, coefh,t_seri,
    770      s               tr_seri(1,1,it), source,
     789     s               tr_seri(1,1,it), source(:,it),
    771790     e               paprs, pplay, delp,
    772791     s               d_tr_cl(1,1,it))
     
    904923      if (lafin) then
    905924         print*, 'c est la fin de la physique'
    906          open (99,file='restarttrac',  form='formatted')
    907          do i=1,klon
    908              write(99,*) trs(i,1)
    909          enddo
    910          PRINT*, 'Ecriture du fichier restarttrac'
    911          close(99)
     925         call GatherField_omp(trs(:,1),trs_mpi,1)
     926c$OMP MASTER     
     927         call GatherField(trs_mpi,trs_tmp,1)
     928         if (phy_rank==0) then
     929         
     930           open (99,file='restarttrac',  form='formatted')
     931           do i=1,klon
     932               write(99,*) trs_tmp(i)
     933           enddo
     934           PRINT*, 'Ecriture du fichier restarttrac'
     935           close(99)
     936         endif
     937c$OMP END MASTER
    912938      else
    913939c         print*, 'physique pas fini'
  • LMDZ4/trunk/libf/phylmd/plevel.F

    r524 r766  
    77c================================================================
    88c================================================================
    9 
     9      USE dimphy
    1010      IMPLICIT none
    1111
    12 #include "dimensions.h"
    13 #include "dimphy.h"
     12cym#include "dimensions.h"
     13cy#include "dimphy.h"
    1414
    1515c================================================================
     
    4242c   -------
    4343
    44       INTEGER lt(klon), lb(klon)
    45       REAL ptop, pbot, aist(klon), aisb(klon)
     44cym      INTEGER lt(klon), lb(klon)
     45cym      REAL ptop, pbot, aist(klon), aisb(klon)
    4646
    47       save lt,lb,ptop,pbot,aist,aisb
    48 
     47cym      save lt,lb,ptop,pbot,aist,aisb
     48      INTEGER,ALLOCATABLE,SAVE,DIMENSION(:) :: lt,lb,aist,aisb
     49c$OMP THREADPRIVATE(lt,lb,aist,aisb)     
     50      REAL,SAVE :: ptop, pbot
     51c$OMP THREADPRIVATE(ptop, pbot)     
     52      LOGICAL,SAVE :: first = .true.
     53c$OMP THREADPRIVATE(first)
    4954      INTEGER i, k
    5055c
    51 
     56      if (first) then
     57        allocate(lt(klon),lb(klon),aist(klon),aisb(klon))
     58        first=.false.
     59      endif
     60     
    5261c=====================================================================
    5362      if (lnew) then
    54 c   on réinitialise les réindicages et les poids
     63c   on r�nitialise les r�ndicages et les poids
    5564c=====================================================================
    5665
     
    8796c
    8897c ...   Modif . P. Le Van    ( 20/01/98) ....
    89 c       Modif Frédéric Hourdin (3/01/02)
     98c       Modif Fr��ic Hourdin (3/01/02)
    9099
    91100        aist(i) = LOG( pgcm(i,lb(i))/ pres )
  • LMDZ4/trunk/libf/phylmd/radiornpb.F

    r644 r766  
    33!
    44      SUBROUTINE radiornpb(tr,dtime,tautr,d_tr)
     5      USE dimphy
    56      IMPLICIT none
    67c======================================================================
     
    1213c Arguments:
    1314c======================================================================
    14 #include "dimensions.h"
    15 #include "dimphy.h"
     15cym#include "dimensions.h"
     16cym#include "dimphy.h"
    1617c======================================================================
    1718C
  • LMDZ4/trunk/libf/phylmd/radlwsw.F

    r699 r766  
    1616     .                  cldtaupi, topswai, solswai)
    1717c     
     18      USE dimphy
    1819      IMPLICIT none
    1920c======================================================================
     
    6970     
    7071c======================================================================
    71 #include "dimensions.h"
    72 #include "dimphy.h"
    73 #include "raddim.h"
     72cym#include "dimensions.h"
     73cym#include "dimphy.h"
     74cym#include "raddim.h"
    7475#include "YOETHF.h"
    7576c
     
    403404     S              PTOPSWAD,PSOLSWAD,PTOPSWAI,PSOLSWAI,
    404405     J              ok_ade, ok_aie )
    405      
     406      USE dimphy     
    406407      IMPLICIT none
    407408
    408 #include "dimensions.h"
    409 #include "dimphy.h"
    410 #include "raddim.h"
     409cym#include "dimensions.h"
     410cym#include "dimphy.h"
     411cym#include "raddim.h"
    411412#include "YOMCST.h"
    412413C
     
    509510      DATA itapsw /0/
    510511      DATA appel1er /.TRUE./
     512      SAVE itapsw,appel1er
     513c$OMP THREADPRIVATE(appel1er)
     514c$OMP THREADPRIVATE(itapsw)
    511515cjq-Introduced for aerosol forcings
    512516      real*8 flag_aer
     
    522526      REAL*8 PSOLSWAI(KDLON)     ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND)
    523527cjq - Fluxes including aerosol effects
    524       REAL*8 ZFSUPAD(KDLON,KFLEV+1)
    525       REAL*8 ZFSDNAD(KDLON,KFLEV+1)
    526       REAL*8 ZFSUPAI(KDLON,KFLEV+1)
    527       REAL*8 ZFSDNAI(KDLON,KFLEV+1)
     528      REAL*8,allocatable,save :: ZFSUPAD(:,:)
     529c$OMP THREADPRIVATE(ZFSUPAD)
     530      REAL*8,allocatable,save :: ZFSDNAD(:,:)
     531c$OMP THREADPRIVATE(ZFSDNAD)
     532      REAL*8,allocatable,save :: ZFSUPAI(:,:)
     533c$OMP THREADPRIVATE(ZFSUPAI)
     534      REAL*8,allocatable,save :: ZFSDNAI(:,:)
     535c$OMP THREADPRIVATE(ZFSDNAI)
    528536      logical initialized
    529       SAVE ZFSUPAD, ZFSDNAD, ZFSUPAI, ZFSDNAI ! aerosol fluxes
     537cym      SAVE ZFSUPAD, ZFSDNAD, ZFSUPAI, ZFSDNAI ! aerosol fluxes
    530538!rv
    531539      save flag_aer
     540c$OMP THREADPRIVATE(flag_aer)
    532541      data initialized/.false./
     542      save initialized
     543c$OMP THREADPRIVATE(initialized)
    533544cjq-end
    534545      if(.not.initialized) then
    535546        flag_aer=0.
    536547        initialized=.TRUE.
     548        allocate(ZFSUPAD(KDLON,KFLEV+1))
     549        allocate(ZFSDNAD(KDLON,KFLEV+1))
     550        allocate(ZFSUPAI(KDLON,KFLEV+1))
     551        allocate(ZFSDNAI(KDLON,KFLEV+1))
     552        ZFSUPAD(:,:)=0.
     553        ZFSDNAD(:,:)=0.
     554        ZFSUPAI(:,:)=0.
     555        ZFSDNAI(:,:)=0.
     556       
    537557      endif
    538558!rv
     
    710730     S                PTAVE,PWV,PAKI,PCLD,PCLEAR,PDSIG,PFACT,
    711731     S                PRMU,PSEC,PUD)
     732      USE dimphy
    712733      IMPLICIT none
    713 #include "dimensions.h"
    714 #include "dimphy.h"
    715 #include "raddim.h"
     734cym#include "dimensions.h"
     735cym#include "dimphy.h"
     736cym#include "raddim.h"
    716737#include "radepsi.h"
    717738#include "radopt.h"
     
    761782      REAL*8 ZPDH2O,ZPDUMG
    762783      SAVE ZPDH2O,ZPDUMG
     784c$OMP THREADPRIVATE(ZPDH2O,ZPDUMG)
    763785      REAL*8 ZPRH2O,ZPRUMG
    764786      SAVE ZPRH2O,ZPRUMG
     787c$OMP THREADPRIVATE(ZPRH2O,ZPRUMG)
    765788      REAL*8 RTDH2O,RTDUMG
    766789      SAVE RTDH2O,RTDUMG
     790c$OMP THREADPRIVATE(RTDH2O,RTDUMG)
    767791      REAL*8 RTH2O ,RTUMG
    768792      SAVE RTH2O ,RTUMG
     793c$OMP THREADPRIVATE(RTH2O ,RTUMG)
    769794      DATA ZPDH2O,ZPDUMG / 0.8   , 0.75 /
    770795      DATA ZPRH2O,ZPRUMG / 30000., 30000. /
     
    900925     S  ,  PDSIG , POMEGA, POZ  , PRMU , PSEC , PTAU  , PUD 
    901926     S  ,  PFD   , PFU)
     927      USE dimphy
    902928      IMPLICIT none
    903 #include "dimensions.h"
    904 #include "dimphy.h"
    905 #include "raddim.h"
     929cym#include "dimensions.h"
     930cym#include "dimphy.h"
     931cym#include "raddim.h"
    906932C
    907933C     ------------------------------------------------------------------
     
    9911017      REAL*8 RSUN(2)
    9921018      SAVE RSUN
     1019c$OMP THREADPRIVATE(RSUN)
    9931020      REAL*8 RRAY(2,6)
    9941021      SAVE RRAY
     1022c$OMP THREADPRIVATE(RRAY)
    9951023      DATA RSUN(1) / 0.441676 /
    9961024      DATA RSUN(2) / 0.558324 /
     
    11401168     S  ,  PUD   ,PWV , PQS
    11411169     S  ,  PFDOWN,PFUP                                            )
     1170      USE dimphy
    11421171      IMPLICIT none
    1143 #include "dimensions.h"
    1144 #include "dimphy.h"
    1145 #include "raddim.h"
     1172cym#include "dimensions.h"
     1173cym#include "dimphy.h"
     1174cym#include "raddim.h"
    11461175#include "radepsi.h"
    11471176C
     
    12641293      REAL*8 RSUN(2)
    12651294      SAVE RSUN
     1295c$OMP THREADPRIVATE(RSUN)
    12661296      REAL*8 RRAY(2,6)
    12671297      SAVE RRAY
     1298c$OMP THREADPRIVATE(RRAY)
    12681299      DATA RSUN(1) / 0.441676 /
    12691300      DATA RSUN(2) / 0.558324 /
     
    16861717     S  , PCGAZ , PPIZAZ, PRAY1 , PRAY2 , PREFZ , PRJ 
    16871718     S  , PRK   , PRMU0 , PTAUAZ, PTRA1 , PTRA2                   )
     1719      USE dimphy
    16881720      IMPLICIT none
    1689 #include "dimensions.h"
    1690 #include "dimphy.h"
    1691 #include "raddim.h"
     1721cym#include "dimensions.h"
     1722cym#include "dimphy.h"
     1723cym#include "raddim.h"
    16921724#include "radepsi.h"
    16931725#include "radopt.h"
     
    17591791      REAL*8 TAUA(2,5), RPIZA(2,5), RCGA(2,5)
    17601792      SAVE TAUA, RPIZA, RCGA
     1793c$OMP THREADPRIVATE(TAUA, RPIZA, RCGA)
    17611794      DATA ((TAUA(IN,JA),JA=1,5),IN=1,2) /
    17621795     S .730719, .912819, .725059, .745405, .682188 ,
     
    20462079     S  , PCGAZ , PPIZAZ, PRAY1, PRAY2, PREFZ , PRJ  , PRK , PRMUE
    20472080     S  , PTAUAZ, PTRA1 , PTRA2 )
     2081      USE dimphy
    20482082      IMPLICIT none
    2049 #include "dimensions.h"
    2050 #include "dimphy.h"
    2051 #include "raddim.h"
     2083cym#include "dimensions.h"
     2084cym#include "dimphy.h"
     2085cym#include "raddim.h"
    20522086#include "radepsi.h"
    20532087#include "radopt.h"
     
    24022436      SUBROUTINE SWDE (PGG,PREF,PRMUZ,PTO1,PW,
    24032437     S                 PRE1,PRE2,PTR1,PTR2)
     2438      USE dimphy
    24042439      IMPLICIT none
    2405 #include "dimensions.h"
    2406 #include "dimphy.h"
    2407 #include "raddim.h"
     2440cym#include "dimensions.h"
     2441cym#include "dimphy.h"
     2442cym#include "raddim.h"
    24082443C
    24092444C     ------------------------------------------------------------------
     
    25332568      END
    25342569      SUBROUTINE SWTT (KNU,KA,PU,PTR)
     2570      USE dimphy
    25352571      IMPLICIT none
    2536 #include "dimensions.h"
    2537 #include "dimphy.h"
    2538 #include "raddim.h"
     2572cym#include "dimensions.h"
     2573cym#include "dimphy.h"
     2574cym#include "raddim.h"
    25392575C
    25402576C-----------------------------------------------------------------------
     
    25832619      REAL*8 APAD(2,3,7), BPAD(2,3,7), D(2,3)
    25842620      SAVE APAD, BPAD, D
     2621c$OMP THREADPRIVATE(APAD, BPAD, D)
    25852622      DATA ((APAD(1,I,J),I=1,3),J=1,7) /
    25862623     S 0.912418292E+05, 0.000000000E-00, 0.925887084E-04,
     
    26492686      END
    26502687      SUBROUTINE SWTT1(KNU,KABS,KIND, PU, PTR)
     2688      USE dimphy
    26512689      IMPLICIT none
    2652 #include "dimensions.h"
    2653 #include "dimphy.h"
    2654 #include "raddim.h"
     2690cym#include "dimensions.h"
     2691cym#include "dimphy.h"
     2692cym#include "raddim.h"
    26552693C
    26562694C-----------------------------------------------------------------------
     
    27012739      REAL*8 APAD(2,3,7), BPAD(2,3,7), D(2,3)
    27022740      SAVE APAD, BPAD, D
     2741c$OMP THREADPRIVATE(APAD, BPAD, D)
    27032742      DATA ((APAD(1,I,J),I=1,3),J=1,7) /
    27042743     S 0.912418292E+05, 0.000000000E-00, 0.925887084E-04,
     
    27782817     .              PTOPLW,PSOLLW,PTOPLW0,PSOLLW0,
    27792818     .              psollwdown,
     2819cIM  .              psollwdown,psollwdownclr,
     2820cIM  .              ptoplwdown,ptoplwdownclr)
    27802821     .              plwup, plwdn, plwup0, plwdn0)
     2822      USE dimphy
    27812823      IMPLICIT none
    2782 #include "dimensions.h"
    2783 #include "dimphy.h"
    2784 #include "raddim.h"
     2824cym#include "dimensions.h"
     2825cym#include "dimphy.h"
     2826cym#include "raddim.h"
    27852827#include "raddimlw.h"
    27862828#include "YOMCST.h"
     
    28442886c Rajout LF
    28452887      real*8 psollwdown(kdlon)    ! LONGWAVE downwards flux at surface
     2888c Rajout IM
     2889cIM   real*8 psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface
     2890cIM   real*8 ptoplwdown(kdlon)    ! LONGWAVE downwards flux at T.O.A.
     2891cIM   real*8 ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A.
    28462892cIM
    28472893      REAL*8 plwup(KDLON,KFLEV+1)  ! LW up total sky
     
    28532899      REAL*8 ZOZ(KDLON,KFLEV)
    28542900c
    2855       REAL*8 ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)
    2856       REAL*8 ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
    2857       REAL*8 ZBINT(KDLON,KFLEV+1)            ! Intermediate variable
    2858       REAL*8 ZBSUI(KDLON)                    ! Intermediate variable
    2859       REAL*8 ZCTS(KDLON,KFLEV)               ! Intermediate variable
    2860       REAL*8 ZCNTRB(KDLON,KFLEV+1,KFLEV+1)   ! Intermediate variable
    2861       SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB
     2901cym      REAL*8 ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)
     2902cym      REAL*8 ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
     2903cym      REAL*8 ZBINT(KDLON,KFLEV+1)            ! Intermediate variable
     2904cym      REAL*8 ZBSUI(KDLON)                    ! Intermediate variable
     2905cym      REAL*8,ZCTS(KDLON,KFLEV)               ! Intermediate variable
     2906cym      REAL*8 ZCNTRB(KDLON,KFLEV+1,KFLEV+1)   ! Intermediate variable
     2907cym      SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB
     2908      REAL*8,allocatable,save :: ZFLUX(:,:,:) ! RADIATIVE FLUXES (1:up; 2:down)
     2909      REAL*8,allocatable,save :: ZFLUC(:,:,:) ! CLEAR-SKY RADIATIVE FLUXES
     2910      REAL*8,allocatable,save :: ZBINT(:,:)            ! Intermediate variable
     2911      REAL*8,allocatable,save :: ZBSUI(:)                    ! Intermediate variable
     2912      REAL*8,allocatable,save :: ZCTS(:,:)               ! Intermediate variable
     2913      REAL*8,allocatable,save :: ZCNTRB(:,:,:)   ! Intermediate variable
     2914c$OMP THREADPRIVATE(ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB)
    28622915c
    28632916      INTEGER ilim, i, k, kpl1
     
    28712924      LOGICAL appel1er
    28722925      SAVE appel1er, itaplw0, itaplw
     2926c$OMP THREADPRIVATE(appel1er, itaplw0, itaplw)
    28732927      DATA appel1er /.TRUE./
    28742928      DATA itaplw0,itaplw /0,0/
     2929
    28752930C     ------------------------------------------------------------------
    28762931      IF (appel1er) THEN
     
    28782933         PRINT*, "LW cloudy-sky calling frequency: ", lwpas
    28792934         PRINT*, "   In general, they should be 1"
     2935cym
     2936         allocate(ZFLUX(KDLON,2,KFLEV+1) )
     2937         allocate(ZFLUC(KDLON,2,KFLEV+1) )
     2938         allocate(ZBINT(KDLON,KFLEV+1))
     2939         allocate(ZBSUI(KDLON))
     2940         allocate(ZCTS(KDLON,KFLEV))
     2941         allocate(ZCNTRB(KDLON,KFLEV+1,KFLEV+1))
    28802942         appel1er=.FALSE.
    28812943      ENDIF
     
    29403002     S               PAER,PDP,PPMB,PPSOL,POZ,PTAVE,PVIEW,PWV,
    29413003     S               PABCU)
     3004      USE dimphy
    29423005      IMPLICIT none
    2943 #include "dimensions.h"
    2944 #include "dimphy.h"
    2945 #include "raddim.h"
     3006cym#include "dimensions.h"
     3007cym#include "dimphy.h"
     3008cym#include "raddim.h"
    29463009#include "raddimlw.h"
    29473010#include "YOMCST.h"
     
    30383101      REAL*8 TREF
    30393102      SAVE TREF
     3103c$OMP THREADPRIVATE(TREF)
    30403104      REAL*8 RT1(2)
    30413105      SAVE RT1
     3106c$OMP THREADPRIVATE(RT1)
    30423107      REAL*8 RAER(5,5)
    30433108      SAVE RAER
     3109c$OMP THREADPRIVATE(RAER)
    30443110      REAL*8 AT(8,3), BT(8,3)
    30453111      SAVE AT, BT
     3112c$OMP THREADPRIVATE(AT, BT)
    30463113      REAL*8 OCT(4)
    30473114      SAVE OCT
     3115c$OMP THREADPRIVATE(OCT)
    30483116      DATA TREF /250.0/
    30493117      DATA (RT1(IG1),IG1=1,2) / -0.577350269, +0.577350269 /
     
    33333401      SUBROUTINE LWBV(KLIM,PDP,PDT0,PEMIS,PPMB,PTL,PTAVE,PABCU,
    33343402     S                PFLUC,PBINT,PBSUI,PCTS,PCNTRB)
     3403      USE dimphy
    33353404      IMPLICIT none
    3336 #include "dimensions.h"
    3337 #include "dimphy.h"
    3338 #include "raddim.h"
     3405cym#include "dimensions.h"
     3406cym#include "dimphy.h"
     3407cym#include "raddim.h"
    33393408#include "raddimlw.h"
    33403409#include "YOMCST.h"
     
    34243493     R               PBINT,PBSUIN,PCTS,PCNTRB,
    34253494     S               PFLUX)
     3495      USE dimphy
    34263496      IMPLICIT none
    3427 #include "dimensions.h"
    3428 #include "dimphy.h"
    3429 #include "raddim.h"
     3497cym#include "dimensions.h"
     3498cym#include "dimphy.h"
     3499cym#include "raddim.h"
    34303500#include "radepsi.h"
    34313501#include "radopt.h"
     
    38293899     S  , PB,PBINT,PBSUIN,PBSUR,PBTOP,PDBSL
    38303900     S  , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP)
     3901      USE dimphy
    38313902      IMPLICIT none
    3832 #include "dimensions.h"
    3833 #include "dimphy.h"
    3834 #include "raddim.h"
     3903cym#include "dimensions.h"
     3904cym#include "dimphy.h"
     3905cym#include "raddim.h"
    38353906#include "raddimlw.h"
    38363907C
     
    39253996      REAL*8 TINTP(11)
    39263997      SAVE TINTP
     3998c$OMP THREADPRIVATE(TINTP)
    39273999      REAL*8 GA(11,16,3), GB(11,16,3)
    39284000      SAVE GA, GB
     4001c$OMP THREADPRIVATE(GA, GB)
    39294002      REAL*8 XP(6,6)
    39304003      SAVE XP
     4004c$OMP THREADPRIVATE(XP)
    39314005c
    39324006      DATA TINTP / 187.5, 200., 212.5, 225., 237.5, 250.,
     
    52405314     R  , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP
    52415315     S  , PCNTRB,PCTS,PFLUC)
     5316       USE dimphy
    52425317      IMPLICIT none
    5243 #include "dimensions.h"
    5244 #include "dimphy.h"
    5245 #include "raddim.h"
     5318cym#include "dimensions.h"
     5319cym#include "dimphy.h"
     5320cym#include "raddim.h"
    52465321#include "raddimlw.h"
    52475322#include "YOMCST.h"
     
    53535428     R  , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP
    53545429     S  , PCTS,PFLUC)
     5430       USE dimphy
    53555431      IMPLICIT none
    5356 #include "dimensions.h"
    5357 #include "dimphy.h"
    5358 #include "raddim.h"
     5432cym#include "dimensions.h"
     5433cym#include "dimphy.h"
     5434cym#include "raddim.h"
    53595435#include "raddimlw.h"
    53605436#include "radopt.h"
     
    56855761     R  , PGA,PGB
    56865762     S  , PCNTRB,PDISD,PDISU)
     5763      USE dimphy
    56875764      IMPLICIT none
    5688 #include "dimensions.h"
    5689 #include "dimphy.h"
    5690 #include "raddim.h"
     5765cym#include "dimensions.h"
     5766cym#include "dimphy.h"
     5767cym#include "raddim.h"
    56915768#include "raddimlw.h"
    56925769C
     
    59376014     R  , PABCU,PDBSL,PGA,PGB
    59386015     S  , PADJD,PADJU,PCNTRB,PDBDT)
     6016       USE dimphy
    59396017      IMPLICIT none
    5940 #include "dimensions.h"
    5941 #include "dimphy.h"
    5942 #include "raddim.h"
     6018cym#include "dimensions.h"
     6019cym#include "dimphy.h"
     6020cym#include "raddim.h"
    59436021#include "raddimlw.h"
    59446022C
     
    60016079      REAL*8 WG1(2)
    60026080      SAVE WG1
     6081c$OMP THREADPRIVATE(WG1)
    60036082      DATA (WG1(jk),jk=1,2) /1.0, 1.0/
    60046083C-----------------------------------------------------------------------
     
    61446223      END
    61456224      SUBROUTINE LWTT(PGA,PGB,PUU, PTT)
     6225       USE dimphy
    61466226      IMPLICIT none
    6147 #include "dimensions.h"
    6148 #include "dimphy.h"
    6149 #include "raddim.h"
     6227cym#include "dimensions.h"
     6228cym#include "dimphy.h"
     6229cym#include "raddim.h"
    61506230#include "raddimlw.h"
    61516231C
     
    63196399      END
    63206400      SUBROUTINE LWTTM(PGA,PGB,PUU1,PUU2, PTT)
     6401      USE dimphy
    63216402      IMPLICIT none
    6322 #include "dimensions.h"
    6323 #include "dimphy.h"
    6324 #include "raddim.h"
     6403cym#include "dimensions.h"
     6404cym#include "dimphy.h"
     6405cym#include "raddim.h"
    63256406#include "raddimlw.h"
    63266407C
  • LMDZ4/trunk/libf/phylmd/readsulfate.F

    r640 r766  
    22! $Header$
    33!
    4       SUBROUTINE readsulfate (r_day, first, sulfate)
    5      
     4      SUBROUTINE readsulfate (r_day, first, sulfate_p)
     5      USE dimphy, klon=>klon2,klon2=>klon
    66      IMPLICIT none
    77     
     
    3434#include "chem.h"     
    3535#include "dimensions.h"     
    36 #include "dimphy.h"     
     36cym#include "dimphy.h"     
    3737#include "temps.h"     
    3838c
     
    4545c Output:     
    4646c -------     
     47      REAL*8  sulfate_p(klon_omp,klev)
    4748      REAL*8  sulfate (klon, klev)  ! Mass of sulfate (monthly mean data,
    4849                                  !  from file) [ug SO4/m3]
     50      REAL*8,SAVE,ALLOCATABLE :: sulfate_mpi(:,:)
    4951c     
    5052c Local Variables:
     
    6264      REAL*8 so4_2(iim, jjm+1, klev, 12)   ! The sulfate distributions
    6365     
    64       REAL*8 so4(klon, klev, 12)  ! SO4 in right dimension
    65       SAVE so4
    66       REAL*8 so4_out(klon, klev)
    67       SAVE so4_out
     66cym      REAL*8 so4(klon, klev, 12)  ! SO4 in right dimension
     67cym      SAVE so4
     68cym      REAL*8 so4_out(klon, klev)
     69cym      SAVE so4_out
     70
     71      REAL*8,allocatable,save :: so4(:, :, :)  ! SO4 in right dimension
     72      REAL*8,allocatable,save :: so4_out(:, :)
     73c$OMP THREADPRIVATE(so4,so4_out)
    6874     
    6975      LOGICAL lnewday
    7076      LOGICAL lonlyone
    7177      PARAMETER (lonlyone=.FALSE.)
    72 
     78      logical,save :: first2=.true.
     79c$OMP THREADPRIVATE(first2)
     80
     81c$OMP MASTER
     82      if (first2) then
     83     
     84        allocate( so4(klon, klev, 12) )
     85        allocate( so4_out(klon, klev))
     86        allocate(sulfate_mpi(klon_mpi,klev)) 
     87        first2=.false.
     88       
     89      endif
     90
     91      if (phy_rank==0) then
     92           
    7393      iday = INT(r_day)
    7494     
     
    265285
    266286      ENDIF ! Did I have to do anything (was it a new day?)
    267      
     287
     288      endif   ! phy_rank==0
     289     
     290      call ScatterField(real(sulfate),real(sulfate_mpi),klev)
     291c$OMP END MASTER
     292      call ScatterField_omp(real(sulfate_mpi),real(sulfate_p)
     293     . ,klev)           
     294
    268295      RETURN
    269296      END
     
    277304c-----------------------------------------------------------------------------
    278305     
    279       SUBROUTINE readsulfate_preind (r_day, first, pi_sulfate)
    280      
     306      SUBROUTINE readsulfate_preind (r_day, first, pi_sulfate_p)
     307      USE dimphy, klon=>klon2,klon2=>klon
    281308      IMPLICIT none
    282309     
     
    305332#include "chem.h"     
    306333#include "dimensions.h"     
    307 #include "dimphy.h"     
     334cym#include "dimphy.h"     
    308335#include "temps.h"     
    309336c
     
    316343c Output:     
    317344c -------     
     345      REAL*8  pi_sulfate_p (klon_omp, klev) 
     346                                 
    318347      REAL*8  pi_sulfate (klon, klev)  ! Number conc. sulfate (monthly mean data,
    319                                   !  from file)
     348                                  !  from fil
     349      REAL*8,SAVE,ALLOCATABLE :: pi_sulfate_mpi(:,:)                     
    320350c     
    321351c Local Variables:
     
    327357      INTEGER im, day1, day2, im2, ismaller
    328358      REAL*8 pi_so4_1(iim, jjm+1, klev, 12)
    329      
    330       REAL*8 pi_so4(klon, klev, 12)  ! SO4 in right dimension
    331       SAVE pi_so4
    332       REAL*8 pi_so4_out(klon, klev)
    333       SAVE pi_so4_out
     359
     360cym      REAL*8 pi_so4(klon, klev, 12)  ! SO4 in right dimension
     361cym      SAVE pi_so4
     362cym      REAL*8 pi_so4_out(klon, klev)
     363cym      SAVE pi_so4_out
     364
     365      REAL*8,allocatable,save :: pi_so4(:, :, :)  ! SO4 in right dimension
     366      REAL*8,allocatable,save :: pi_so4_out(:, :)
     367c$OMP THREADPRIVATE(pi_so4,pi_so4_out)           
    334368     
    335369      CHARACTER*4 cyear
    336370      LOGICAL lnewday
    337 
     371      logical,save :: first2=.true.
     372c$OMP THREADPRIVATE(first2)
     373
     374c$OMP MASTER
     375      if (first2) then
     376     
     377        allocate( pi_so4(klon, klev, 12) )
     378        allocate( pi_so4_out(klon, klev))
     379        allocate(pi_sulfate_mpi (klon_mpi, klev)) 
     380        first2=.false.
     381       
     382      endif
     383
     384      if (phy_rank==0) then
     385   
    338386     
    339387
     
    479527
    480528      ENDIF ! Was this the beginning of a new day?
     529
     530      endif   ! phy_rank==0
     531     
     532      call ScatterField(real(pi_sulfate),real(pi_sulfate_mpi),klev)
     533c$OMP END MASTER
     534      call ScatterField_omp(real(pi_sulfate_mpi),real(pi_sulfate_p)
     535     .,klev)           
     536
    481537      RETURN
    482538      END
  • LMDZ4/trunk/libf/phylmd/soil.F

    r524 r766  
    44      SUBROUTINE soil(ptimestep, indice, knon, snow, ptsrf, ptsoil,
    55     s          pcapcal, pfluxgrd)
     6      use dimphy
    67      IMPLICIT NONE
    78
     
    4950c   -------------
    5051
    51 #include "dimensions.h"
     52cym#include "dimensions.h"
    5253#include "YOMCST.h"
    53 #include "dimphy.h"
     54cym#include "dimphy.h"
    5455#include "dimsoil.h"
    5556#include "indicesol.h"
     
    6970
    7071      INTEGER ig,jk
    71 c$$$      REAL zdz2(nsoilmx),z1(klon)
     72c@$$      REAL zdz2(nsoilmx),z1(klon)
    7273      REAL zdz2(nsoilmx),z1(klon,nbsrf)
    73       REAL min_period,dalph_soil
     74      REAL,SAVE :: min_period,dalph_soil
    7475      REAL ztherm_i(klon)
    7576
     
    7778c   ----------------------
    7879      REAL dz1(nsoilmx),dz2(nsoilmx)
    79 c$$$          REAL zc(klon,nsoilmx),zd(klon,nsoilmx)
    80       REAL zc(klon,nsoilmx,nbsrf),zd(klon,nsoilmx,nbsrf)
     80c@$$          REAL zc(klon,nsoilmx),zd(klon,nsoilmx)
     81cym      REAL zc(klon,nsoilmx,nbsrf),zd(klon,nsoilmx,nbsrf)
     82      REAL,ALLOCATABLE,SAVE ::  zc(:,:,:),zd(:,:,:)
     83c$OMP THREADPRIVATE(zc,zd)
    8184      REAL lambda
    82       SAVE dz1,dz2,zc,zd,lambda
     85cym      SAVE dz1,dz2,zc,zd,lambda
     86      SAVE dz1,dz2,lambda
     87c$OMP THREADPRIVATE(dz1,dz2,lambda)
    8388      LOGICAL firstcall, firstsurf(nbsrf)
    8489      SAVE firstcall, firstsurf
     90c$OMP THREADPRIVATE(firstcall, firstsurf)
    8591      REAL isol,isno,iice
    8692      SAVE isol,isno,iice
    87 
     93c$OMP THREADPRIVATE(isol,isno,iice)
    8894      DATA firstcall/.true./
    8995      DATA firstsurf/.TRUE.,.TRUE.,.TRUE.,.TRUE./
    9096
    9197      DATA isol,isno,iice/2000.,2000.,2000./
    92 
     98      LOGICAL,SAVE :: First=.true.
     99c$OMP THREADPRIVATE(First)
    93100c-----------------------------------------------------------------------
    94101c   Depthts:
     
    103110c   on corrige si on a un point de terre avec ou sans glace
    104111c
     112      IF (first) THEN
     113        allocate(zc(klon,nsoilmx,nbsrf),zd(klon,nsoilmx,nbsrf))
     114        first=.false.
     115      ENDIF
     116     
    105117      IF (indice.EQ.is_sic) THEN
    106118         DO ig = 1, knon
     
    128140
    129141
    130 c$$$      IF (firstcall) THEN
     142c@$$      IF (firstcall) THEN
    131143      IF (firstsurf(indice)) THEN
    132144
     
    138150         min_period=1800. ! en secondes
    139151         dalph_soil=2.    ! rapport entre les epaisseurs de 2 couches succ.
    140 
     152c$OMP MASTER
    141153         OPEN(99,file='soil.def',status='old',form='formatted',err=9999)
    142154         READ(99,*) min_period
     
    147159         CLOSE(99)
    1481609999     CONTINUE
     161c$OMP END MASTER
     162c$OMP BARRIER
    149163
    150164c   la premiere couche represente un dixieme de cycle diurne
     
    172186C PB
    173187         firstsurf(indice) = .FALSE.
    174 c$$$         firstcall =.false.
     188c@$$         firstcall =.false.
    175189
    176190c   Initialisations:
     
    202216c   ---------------------------------------------------------------
    203217
    204 c$$$  PB ajout pour cas glace de mer
     218c@$$  PB ajout pour cas glace de mer
    205219      IF (indice .EQ. is_sic) THEN
    206220          DO ig = 1 , knon
  • LMDZ4/trunk/libf/phylmd/suphec.F

    r652 r766  
    99       LOGICAL firstcall
    1010       SAVE firstcall
     11c$OMP THREADPRIVATE(firstcall)
    1112       DATA firstcall /.TRUE./
     13       
    1214       IF (firstcall) THEN
    1315         PRINT*, 'suphec initialise les constantes du GCM'
  • LMDZ4/trunk/libf/phylmd/tetalevel.F

    r644 r766  
    44c================================================================
    55c================================================================
    6 
     6      USE dimphy
    77      IMPLICIT none
    88
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     9cym#include "dimensions.h"
     10cym#include "dimphy.h"
    1111
    1212c================================================================
     
    3939c   -------
    4040c
    41 #include "paramet.h"
     41cym#include "paramet.h"
    4242c
    43       INTEGER lt(ip1jmp1), lb(ip1jmp1)
    44       REAL ptop, pbot, aist(ip1jmp1), aisb(ip1jmp1)
    45       save lt,lb,ptop,pbot,aist,aisb
     43      INTEGER,ALLOCATABLE,SAVE :: lt(:), lb(:)
     44      REAL,ALLOCATABLE,SAVE    :: aist(:), aisb(:)
     45      REAL,SAVE :: ptop, pbot
     46      LOGICAL,SAVE :: first = .TRUE.
     47c$OMP THREADPRIVATE(lt,lb,aist,aisb,ptop, pbot,first)
    4648
    4749      INTEGER i, k
    4850c
    4951c     PRINT*,'tetalevel pres=',pres
     52      IF (first) THEN
     53        ALLOCATE(lt(ilon), lb(ilon))
     54        ALLOCATE(aist(ilon), aisb(ilon))
     55       
     56        first=.FALSE.
     57      ENDIF
    5058c=====================================================================
    5159      if (lnew) then
    52 c   on réinitialise les réindicages et les poids
     60c   on r�nitialise les r�ndicages et les poids
    5361c=====================================================================
    5462
     
    8997c
    9098c ...   Modif . P. Le Van    ( 20/01/98) ....
    91 c       Modif Frédéric Hourdin (3/01/02)
     99c       Modif Fr��ic Hourdin (3/01/02)
    92100
    93101c       IF(pgcm(i,lb(i)).NE.0.OR.
  • LMDZ4/trunk/libf/phylmd/thermcell.F

    r542 r766  
    66c    s                  ,pu_therm,pv_therm
    77     s                  ,r_aspect,l_mix,w2di,tho)
    8 
     8      USE dimphy
    99      IMPLICIT NONE
    1010
     
    1414c   de "thermiques" explicitement representes
    1515c
    16 c   Réécriture à partir d'un listing papier à Habas, le 14/02/00
    17 c
    18 c   le thermique est supposé homogène et dissipé par mélange avec
    19 c   son environnement. la longueur l_mix contrôle l'efficacité du
    20 c   mélange
    21 c
    22 c   Le calcul du transport des différentes espèces se fait en prenant
     16c   Reecriture a partir d'un listing papier à Habas, le 14/02/00
     17c
     18c   le thermique est suppose homogene et dissipe par melange avec
     19c   son environnement. la longueur l_mix controle l'efficacite du
     20c   melange
     21c
     22c   Le calcul du transport des differentes especes se fait en prenant
    2323c   en compte:
    2424c     1. un flux de masse montant
     
    3333c   -------------
    3434
    35 #include "dimensions.h"
    36 #include "dimphy.h"
     35cym#include "dimensions.h"
     36cym#include "dimphy.h"
    3737#include "YOMCST.h"
    3838
     
    5252      save idetr
    5353      data idetr/3/
    54 
     54c$OMP THREADPRIVATE(idetr)
    5555c   local:
    5656c   ------
     
    8585      real fracc(klon,klev+1)
    8686      real zf,zf2
    87       real thetath2(klon,klev),wth2(klon,klev)
    88       common/comtherm/thetath2,wth2
     87      real,allocatable,save :: thetath2(:,:),wth2(:,:)
     88c$OMP THREADPRIVATE(thetath2,wth2)
     89cym      common/comtherm/thetath2,wth2
    8990
    9091      real count_time
     
    9394      data isplit/0/
    9495      save isplit
    95 
     96c$OMP THREADPRIVATE(isplit)
    9697      logical sorties
    9798      real rho(klon,klev),rhobarz(klon,klev+1),masse(klon,klev)
     
    120121      data first /.false./
    121122      save first
     123c$OMP THREADPRIVATE(first)
    122124cRC
    123125
     
    132134      save ncorrec
    133135      data ncorrec/0/
    134      
     136c$OMP THREADPRIVATE(ncorrec)
     137      logical,save :: firstCall=.true.
     138c$OMP THREADPRIVATE(firstCall)
    135139c
    136140c-----------------------------------------------------------------------
     
    138142c   ---------------
    139143c
     144      if (firstcall) then
     145        allocate(thetath2(klon,klev),wth2(klon,klev))
     146        thetath2(:,:)=0.
     147        wth2(:,:)=0.
     148        firstcall=.false.
     149      endif
     150     
    140151       sorties=.true.
    141152      IF(ngrid.NE.klon) THEN
     
    501512c   calcul de la largeur de chaque ascendance dans le cas conservatif.
    502513c   dans ce cas simple, on suppose que la largeur de l'ascendance provenant
    503 c   d'une couche est égale à la hauteur de la couche alimentante.
     514c   d'une couche est egale a la hauteur de la couche alimentante.
    504515c   La vitesse maximale dans l'ascendance est aussi prise comme estimation
    505516c   de la vitesse d'entrainement horizontal dans la couche alimentante.
     
    540551c      print*,'10 OK convect8'
    541552c     print*,'WA2 ',wa_moy
    542 c   calcul de la fraction de la maille concernée par l'ascendance en tenant
     553c   calcul de la fraction de la maille concerne par l'ascendance en tenant
    543554c   compte de l'epluchage du thermique.
    544555c
     
    979990      subroutine dqthermcell(ngrid,nlay,ptimestep,fm,entr,masse
    980991     .    ,q,dq,qa)
     992      use dimphy
    981993      implicit none
    982994
     
    9891001c=======================================================================
    9901002
    991 #include "dimensions.h"
    992 #include "dimphy.h"
     1003cym#include "dimensions.h"
     1004cym#include "dimphy.h"
    9931005
    9941006      integer ngrid,nlay
     
    10531065     .    ,fraca,larga
    10541066     .    ,u,v,du,dv,ua,va)
     1067       use dimphy
    10551068      implicit none
    10561069
     
    10631076c=======================================================================
    10641077
    1065 #include "dimensions.h"
    1066 #include "dimphy.h"
     1078cym#include "dimensions.h"
     1079cym#include "dimphy.h"
    10671080
    10681081      integer ngrid,nlay
     
    11061119            if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt.
    11071120     s         1.e-5*masse(ig,k)) then
    1108 c   On itère sur la valeur du coeff de freinage.
     1121c   On itere sur la valeur du coeff de freinage.
    11091122c              gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k))
    11101123               gamma0=masse(ig,k)
     
    11121125     s         *0.5/larga(ig)
    11131126c              gamma0=0.
    1114 c   la première fois on multiplie le coefficient de freinage
     1127c   la premiere fois on multiplie le coefficient de freinage
    11151128c   par le module du vent dans la couche en dessous.
    11161129               dua=ua(ig,k-1)-u(ig,k-1)
     
    11661179      subroutine dqthermcell2(ngrid,nlay,ptimestep,fm,entr,masse,frac
    11671180     .    ,q,dq,qa)
     1181      use dimphy
    11681182      implicit none
    11691183
     
    11761190c=======================================================================
    11771191
    1178 #include "dimensions.h"
    1179 #include "dimphy.h"
     1192cym#include "dimensions.h"
     1193cym#include "dimphy.h"
    11801194
    11811195      integer ngrid,nlay
     
    12461260     .    ,fraca,larga
    12471261     .    ,u,v,du,dv,ua,va)
     1262      use dimphy
    12481263      implicit none
    12491264
     
    12561271c=======================================================================
    12571272
    1258 #include "dimensions.h"
    1259 #include "dimphy.h"
     1273cym#include "dimensions.h"
     1274cym#include "dimphy.h"
    12601275
    12611276      integer ngrid,nlay
     
    13021317            if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt.
    13031318     s         1.e-5*masse(ig,k)) then
    1304 c   On itère sur la valeur du coeff de freinage.
     1319c   On itere sur la valeur du coeff de freinage.
    13051320c              gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k))
    13061321               gamma0=masse(ig,k)
     
    13131328               zf=0.
    13141329               zf2=1./(1.-zf)
    1315 c   la première fois on multiplie le coefficient de freinage
     1330c   la premiere fois on multiplie le coefficient de freinage
    13161331c   par le module du vent dans la couche en dessous.
    13171332               dua=ua(ig,k-1)-u(ig,k-1)
  • LMDZ4/trunk/libf/phylmd/thermcell.h

    r542 r766  
    77     s              ,w2di_thermals
    88
     9c$OMP THREADPRIVATE(/ctherm/)
  • LMDZ4/trunk/libf/phylmd/tlift.F

    r524 r766  
    201201        SNEW=1./SNEW
    202202        TPK(I)=TG+(ALF*QI(I)+ALV*RG*(1.-(ESI/ES)))*SNEW
    203 c$$$        PRINT*,'################################'
    204 c$$$        PRINT*,TPK(I)
    205 c$$$        PRINT*,(ALF*QI(I)+ALV*RG*(1.-(ESI/ES)))*SNEW
     203c@$$        PRINT*,'################################'
     204c@$$        PRINT*,TPK(I)
     205c@$$        PRINT*,(ALF*QI(I)+ALV*RG*(1.-(ESI/ES)))*SNEW
    206206        ENDDO
    207207CCC        CLW(I)=RR(1)-QSAT_NEW
  • LMDZ4/trunk/libf/phylmd/transp.F

    r524 r766  
    55     e                   t, q, u, v, geom,
    66     s                   vtran_e, vtran_q, utran_e, utran_q)
    7 c
     7c
     8       USE dimphy
    89      IMPLICIT none
    910c======================================================================
     
    1314c======================================================================
    1415c
    15 #include "dimensions.h"
    16 #include "dimphy.h"
     16cym#include "dimensions.h"
     17cym#include "dimphy.h"
    1718#include "YOMCST.h"
    1819c
  • LMDZ4/trunk/libf/phylmd/transp_lay.F

    r644 r766  
    33     s                   vtran_e, vtran_q, utran_e, utran_q)
    44c
     5      USE dimphy
    56      IMPLICIT none
    67c======================================================================
     
    1011c======================================================================
    1112c
    12 #include "dimensions.h"
    13 #include "dimphy.h"
     13cym#include "dimensions.h"
     14cym#include "dimphy.h"
    1415#include "YOMCST.h"
    1516c
  • LMDZ4/trunk/libf/phylmd/undefSTD.F

    r684 r766  
    22     $           dtime,ecrit_hf,
    33     $           oknondef,tnondef,tsumSTD)
     4      USE dimphy
    45      IMPLICIT none
    56c
     
    2324c====================================================================
    2425c
    25 #include "dimensions.h"
    26       integer jjmp1
    27       parameter (jjmp1=jjm+1-1/jjm)
    28 #include "dimphy.h"
     26cym#include "dimensions.h"
     27cym      integer jjmp1
     28cym      parameter (jjmp1=jjm+1-1/jjm)
     29cym#include "dimphy.h"
    2930c variables Input
    3031      INTEGER nlevSTD, klevSTD, itap
  • LMDZ4/trunk/libf/phylmd/ustarhb.F

    r541 r766  
    33!
    44      SUBROUTINE ustarhb(knon,u,v,cd_m, ustar)
     5      use dimphy
    56      IMPLICIT none
    67c======================================================================
     
    1718c model. J. of Climate, vol. 6, 1825-1842.
    1819c======================================================================
    19 #include "dimensions.h"
    20 #include "dimphy.h"
     20cym#include "dimensions.h"
     21cym#include "dimphy.h"
    2122#include "YOMCST.h"
    2223c
  • LMDZ4/trunk/libf/phylmd/vdif_kcay.F

    r541 r766  
    55     s   ,zlev,zlay,u,v,teta,cd,q2,q2diag,km,kn,ustar
    66     s   ,l_mix)
     7      use dimphy
    78      IMPLICIT NONE
    89c.......................................................................
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     10cym#include "dimensions.h"
     11cym#include "dimphy.h"
    1112c.......................................................................
    1213c
     
    195196      PARAMETER (q2min=1.e-5)
    196197      PARAMETER (q2max=1.E+2)
    197       PARAMETER (nlay=klev)
    198       PARAMETER (nlev=klev+1)
     198cym      PARAMETER (nlay=klev)
     199cym      PARAMETER (nlev=klev+1)
    199200c
    200201      PARAMETER (
     
    221222      save first
    222223      data first/.true./
     224c$OMP THREADPRIVATE(first)
    223225c.......................................................................
    224226c  traitment des valeur de q2 en entree
     
    226228c
    227229c   Initialisation de q2
    228 
     230      nlay=klev
     231      nlev=klev+1
     232       
    229233      call yamada(ngrid,dt,g,rconst,plev,temp
    230234     s   ,zlev,zlay,u,v,teta,cd,q2diag,km,kn,ustar
  • LMDZ4/trunk/libf/phylmd/wrgradsfi.F

    r524 r766  
    22! $Header$
    33!
    4       subroutine wrgradsfi(if,nl,fieldfi,name,titlevar)
     4      subroutine wrgradsfi(if,nl,fieldfi_p,name,titlevar)
     5      use dimphy
    56      implicit none
    67
     
    89
    910#include "dimensions.h"
    10 #include "dimphy.h"
     11cym#include "dimphy.h"
    1112
    1213c   arguments
    1314      integer if,nl
    14       real fieldfi(klon,nl)
     15      real fieldfi_p(klon,nl)
     16      real fieldfi(klon2,nl)
    1517      real fielddyn((iim+1)*(jjm+1),llm)
    1618      character*10 name
     
    2426
    2527c     print*,'Transformation pour ',name
    26       call gr_fi_dyn(nl,klon,iim+1,jjm+1,fieldfi,fielddyn)
     28      call GatherField(fieldfi_p,fieldfi,nl)
     29     
     30      if (phy_rank==0) then
     31        call gr_fi_dyn(nl,klon,iim+1,jjm+1,fieldfi,fielddyn)
    2732c     print*,'Transformation OK '
    28       call wrgrads(if,nl,fielddyn,name,titlevar)
     33        call wrgrads(if,nl,fielddyn,name,titlevar)
    2934c     print*,'Ecriture ok'
    30 
     35      endif
     36     
    3137      return
    3238      end
  • LMDZ4/trunk/libf/phylmd/write_bilKP_ave.h

    r644 r766  
    1111      itau_w = itau_phy + itap
    1212c
    13       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d)
    14       CALL histwrite(nid_bilKPave,"ue",itau_w,zx_tmp_3d,
    15      .               iim*jjmp1*klev,ndex3d)
     13cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d)
     14      CALL histwrite_phy(nid_bilKPave,"ue",itau_w,ue_lay)
    1615c
    17       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d)
    18       CALL histwrite(nid_bilKPave,"ve",itau_w,zx_tmp_3d,
    19      .               iim*jjmp1*klev,ndex3d)
     16cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d)
     17      CALL histwrite_phy(nid_bilKPave,"ve",itau_w,ve_lay)
    2018c
    21       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d)
    22       CALL histwrite(nid_bilKPave,"uq",itau_w,zx_tmp_3d,
    23      .               iim*jjmp1*klev,ndex3d)
     19cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d)
     20      CALL histwrite_phy(nid_bilKPave,"uq",itau_w,uq_lay)
    2421c
    25       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d)
    26       CALL histwrite(nid_bilKPave,"vq",itau_w,zx_tmp_3d,
    27      .               iim*jjmp1*klev,ndex3d)
     22cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d)
     23      CALL histwrite_phy(nid_bilKPave,"vq",itau_w,vq_lay)
    2824c
    2925c Champs 3D:
    3026C
    31       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    32       CALL histwrite(nid_bilKPave,"temp",itau_w,zx_tmp_3d,
    33      .                                   iim*jjmp1*klev,ndex3d)
     27cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     28      CALL histwrite_phy(nid_bilKPave,"temp",itau_w,t_seri)
    3429c
    35       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
    36       CALL histwrite(nid_bilKPave,"ovap",itau_w,zx_tmp_3d,
    37      .                                   iim*jjmp1*klev,ndex3d)
     30cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     31      CALL histwrite_phy(nid_bilKPave,"ovap",itau_w,qx(:,:,ivap))
    3832c
    39       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    40       CALL histwrite(nid_bilKPave,"geop",itau_w,zx_tmp_3d,
    41      .                                   iim*jjmp1*klev,ndex3d)
     33cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     34      CALL histwrite_phy(nid_bilKPave,"geop",itau_w,zphi)
    4235c
    43       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    44       CALL histwrite(nid_bilKPave,"vitu",itau_w,zx_tmp_3d,
    45      .                                   iim*jjmp1*klev,ndex3d)
     36cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     37      CALL histwrite_phy(nid_bilKPave,"vitu",itau_w,u_seri)
    4638c
    47       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    48       CALL histwrite(nid_bilKPave,"vitv",itau_w,zx_tmp_3d,
    49      .                                   iim*jjmp1*klev,ndex3d)
     39cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     40      CALL histwrite_phy(nid_bilKPave,"vitv",itau_w,v_seri)
    5041c
    51       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    52       CALL histwrite(nid_bilKPave,"vitw",itau_w,zx_tmp_3d,
    53      .                                   iim*jjmp1*klev,ndex3d)
     42cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
     43      CALL histwrite_phy(nid_bilKPave,"vitw",itau_w,omega)
    5444c
    55       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    56       CALL histwrite(nid_bilKPave,"pres",itau_w,zx_tmp_3d,
    57      .                                   iim*jjmp1*klev,ndex3d)
     45cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     46      CALL histwrite_phy(nid_bilKPave,"pres",itau_w,pplay)
    5847c
    59       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d)
    60       CALL histwrite(nid_bilKPave,"play",itau_w,zx_tmp_3d,
    61      .                                   iim*jjmp1*klev,ndex3d)
     48cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d)
     49      CALL histwrite_phy(nid_bilKPave,"play",itau_w,paprs)
    6250c
    63       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d)
    64       CALL histwrite(nid_bilKPave,"oliq",itau_w,zx_tmp_3d,
    65      .                                   iim*jjmp1*klev,ndex3d)
     51cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d)
     52      CALL histwrite_phy(nid_bilKPave,"oliq",itau_w,cldliq)
    6653c
    67       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    68       CALL histwrite(nid_bilKPave,"dtdyn",itau_w,zx_tmp_3d,
    69      .                                   iim*jjmp1*klev,ndex3d)
     54cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
     55      CALL histwrite_phy(nid_bilKPave,"dtdyn",itau_w,d_t_dyn)
    7056c
    71       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
    72       CALL histwrite(nid_bilKPave,"dqdyn",itau_w,zx_tmp_3d,
    73      .                                   iim*jjmp1*klev,ndex3d)
     57cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
     58      CALL histwrite_phy(nid_bilKPave,"dqdyn",itau_w,d_q_dyn)
    7459c
    75       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d)
    76       CALL histwrite(nid_bilKPave,"dtcon",itau_w,zx_tmp_3d,
    77      .                                   iim*jjmp1*klev,ndex3d)
     60cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d)
     61      CALL histwrite_phy(nid_bilKPave,"dtcon",itau_w,d_t_con)
    7862c
    79       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d)
    80       CALL histwrite(nid_bilKPave,"ducon",itau_w,zx_tmp_3d,
    81      .                                   iim*jjmp1*klev,ndex3d)
     63cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d)
     64      CALL histwrite_phy(nid_bilKPave,"ducon",itau_w,d_u_con)
    8265c
    83       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d)
    84       CALL histwrite(nid_bilKPave,"dvcon",itau_w,zx_tmp_3d,
    85      .                                   iim*jjmp1*klev,ndex3d)
     66cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d)
     67      CALL histwrite_phy(nid_bilKPave,"dvcon",itau_w,d_v_con)
    8668c
    87       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d)
    88       CALL histwrite(nid_bilKPave,"dqcon",itau_w,zx_tmp_3d,
    89      .                                   iim*jjmp1*klev,ndex3d)
     69cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d)
     70      CALL histwrite_phy(nid_bilKPave,"dqcon",itau_w,d_q_con)
    9071c
    91       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d)
    92       CALL histwrite(nid_bilKPave,"dtlsc",itau_w,zx_tmp_3d,
    93      .                                   iim*jjmp1*klev,ndex3d)
     72cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d)
     73      CALL histwrite_phy(nid_bilKPave,"dtlsc",itau_w,d_t_lsc)
    9474c
    95       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d)
    96       CALL histwrite(nid_bilKPave,"dqlsc",itau_w,zx_tmp_3d,
    97      .                                   iim*jjmp1*klev,ndex3d)
     75cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d)
     76      CALL histwrite_phy(nid_bilKPave,"dqlsc",itau_w,d_q_lsc)
    9877c
    99       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
    100       CALL histwrite(nid_bilKPave,"dtvdf",itau_w,zx_tmp_3d,
    101      .                                   iim*jjmp1*klev,ndex3d)
     78cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
     79      CALL histwrite_phy(nid_bilKPave,"dtvdf",itau_w,d_t_vdf)
    10280c
    103       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
    104       CALL histwrite(nid_bilKPave,"dqvdf",itau_w,zx_tmp_3d,
    105      .                                   iim*jjmp1*klev,ndex3d)
     81cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
     82      CALL histwrite_phy(nid_bilKPave,"dqvdf",itau_w,d_q_vdf)
    10683c
    107       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d)
    108       CALL histwrite(nid_bilKPave,"dtajs",itau_w,zx_tmp_3d,
    109      .                                   iim*jjmp1*klev,ndex3d)
     84cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d)
     85      CALL histwrite_phy(nid_bilKPave,"dtajs",itau_w,d_t_ajs)
    11086c
    111       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d)
    112       CALL histwrite(nid_bilKPave,"dqajs",itau_w,zx_tmp_3d,
    113      .                                   iim*jjmp1*klev,ndex3d)
     87cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d)
     88      CALL histwrite_phy(nid_bilKPave,"dqajs",itau_w,d_q_ajs)
    11489c
    115       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d)
    116       CALL histwrite(nid_bilKPave,"dteva",itau_w,zx_tmp_3d,
    117      .                                   iim*jjmp1*klev,ndex3d)
     90cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d)
     91      CALL histwrite_phy(nid_bilKPave,"dteva",itau_w,d_t_eva)
    11892c
    119       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d)
    120       CALL histwrite(nid_bilKPave,"dqeva",itau_w,zx_tmp_3d,
    121      .                                   iim*jjmp1*klev,ndex3d)
     93cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d)
     94      CALL histwrite_phy(nid_bilKPave,"dqeva",itau_w,d_q_eva)
    12295c
    123       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d)
    124       CALL histwrite(nid_bilKPave,"dtswr",itau_w,zx_tmp_3d,
    125      .                                   iim*jjmp1*klev,ndex3d)
     96cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d)
     97      CALL histwrite_phy(nid_bilKPave,"dtswr",itau_w,heat)
    12698c
    127       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d)
    128       CALL histwrite(nid_bilKPave,"dtsw0",itau_w,zx_tmp_3d,
    129      .                                   iim*jjmp1*klev,ndex3d)
     99cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d)
     100      CALL histwrite_phy(nid_bilKPave,"dtsw0",itau_w,heat0)
    130101c
    131       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d)
    132       CALL histwrite(nid_bilKPave,"dtlwr",itau_w,zx_tmp_3d,
    133      .                                   iim*jjmp1*klev,ndex3d)
     102cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d)
     103      CALL histwrite_phy(nid_bilKPave,"dtlwr",itau_w,cool)
    134104c
    135       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d)
    136       CALL histwrite(nid_bilKPave,"dtlw0",itau_w,zx_tmp_3d,
    137      .                                   iim*jjmp1*klev,ndex3d)
     105cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d)
     106      CALL histwrite_phy(nid_bilKPave,"dtlw0",itau_w,cool0)
    138107c
    139       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
    140       CALL histwrite(nid_bilKPave,"duvdf",itau_w,zx_tmp_3d,
    141      .                                   iim*jjmp1*klev,ndex3d)
     108cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
     109      CALL histwrite_phy(nid_bilKPave,"duvdf",itau_w,d_u_vdf)
    142110c
    143       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
    144       CALL histwrite(nid_bilKPave,"dvvdf",itau_w,zx_tmp_3d,
    145      .                                   iim*jjmp1*klev,ndex3d)
     111cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
     112      CALL histwrite_phy(nid_bilKPave,"dvvdf",itau_w,d_v_vdf)
    146113c
    147114      IF (ok_orodr) THEN
     
    155122      ENDDO
    156123c
    157       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d)
    158       CALL histwrite(nid_bilKPave,"duoli",itau_w,zx_tmp_3d,
    159      .                                   iim*jjmp1*klev,ndex3d)
     124cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d)
     125      CALL histwrite_phy(nid_bilKPave,"duoli",d_u_oli)
    160126c
    161       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d)
    162       CALL histwrite(nid_bilKPave,"dvoli",itau_w,zx_tmp_3d,
    163      .                                   iim*jjmp1*klev,ndex3d)
     127cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d)
     128      CALL histwrite_phy(nid_bilKPave,"dvoli",itau_w,d_v_oli)
    164129c
    165130      ENDIF
    166131      ENDIF
    167132C
    168       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d)
    169       CALL histwrite(nid_bilKPave,"duphy",itau_w,zx_tmp_3d,
    170      .                                   iim*jjmp1*klev,ndex3d)
     133cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d)
     134      CALL histwrite_phy(nid_bilKPave,"duphy",itau_w,d_u)
    171135c
    172       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d)
    173       CALL histwrite(nid_bilKPave,"dvphy",itau_w,zx_tmp_3d,
    174      .                                   iim*jjmp1*klev,ndex3d)
     136cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d)
     137      CALL histwrite_phy(nid_bilKPave,"dvphy",itau_w,d_v)
    175138c
    176       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    177       CALL histwrite(nid_bilKPave,"dtphy",itau_w,zx_tmp_3d,
    178      .                                   iim*jjmp1*klev,ndex3d)
     139cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
     140      CALL histwrite_phy(nid_bilKPave,"dtphy",itau_w,d_t)
    179141c
    180       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1),
    181      .zx_tmp_3d)
    182       CALL histwrite(nid_bilKPave,"dqphy",itau_w,zx_tmp_3d,
    183      .                                   iim*jjmp1*klev,ndex3d)
     142cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1),
     143cymf     .zx_tmp_3d)
     144      CALL histwrite_phy(nid_bilKPave,"dqphy",itau_w,d_qx(:,:,1))
    184145c
    185       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2),
    186      .zx_tmp_3d)
    187       CALL histwrite(nid_bilKPave,"dqlphy",itau_w,zx_tmp_3d,
    188      .                                   iim*jjmp1*klev,ndex3d)
     146cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2),
     147cym     .zx_tmp_3d)
     148      CALL histwrite_phy(nid_bilKPave,"dqlphy",itau_w,d_qx(:,:,2))
    189149c
    190150C
  • LMDZ4/trunk/libf/phylmd/write_bilKP_ins.h

    r644 r766  
    1 c
     1 c
    22c $Header$
    33c
     
    1111c Champs 3D:
    1212c
    13       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d)
    14       CALL histwrite(nid_bilKPins,"ue",itau_w,zx_tmp_3d,
    15      .               iim*jjmp1*klev,ndex3d)
     13cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d)
     14      CALL histwrite_phy(nid_bilKPins,"ue",itau_w,ue_lay)
    1615c
    17       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d)
    18       CALL histwrite(nid_bilKPins,"ve",itau_w,zx_tmp_3d,
    19      .               iim*jjmp1*klev,ndex3d)
     16cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d)
     17      CALL histwrite_phy(nid_bilKPins,"ve",itau_w,ve_lay)
    2018c
    21       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d)
    22       CALL histwrite(nid_bilKPins,"uq",itau_w,zx_tmp_3d,
    23      .               iim*jjmp1*klev,ndex3d)
     19cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d)
     20      CALL histwrite_phy(nid_bilKPins,"uq",itau_w,uq_lay)
    2421c
    25       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d)
    26       CALL histwrite(nid_bilKPins,"vq",itau_w,zx_tmp_3d,
    27      .               iim*jjmp1*klev,ndex3d)
     22cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d)
     23      CALL histwrite_phy(nid_bilKPins,"vq",itau_w,vq_lay)
    2824c
    2925c Champs 3D:
    3026C
    31       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    32       CALL histwrite(nid_bilKPins,"temp",itau_w,zx_tmp_3d,
    33      .                                   iim*jjmp1*klev,ndex3d)
     27cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     28      CALL histwrite_phy(nid_bilKPins,"temp",itau_w,t_seri)
    3429c
    35       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
    36       CALL histwrite(nid_bilKPins,"ovap",itau_w,zx_tmp_3d,
    37      .                                   iim*jjmp1*klev,ndex3d)
     30cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     31      CALL histwrite_phy(nid_bilKPins,"ovap",itau_w,qx(:,:,ivap))
    3832c
    39       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    40       CALL histwrite(nid_bilKPins,"geop",itau_w,zx_tmp_3d,
    41      .                                   iim*jjmp1*klev,ndex3d)
     33cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     34      CALL histwrite_phy(nid_bilKPins,"geop",itau_w,zphi)
    4235c
    43       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    44       CALL histwrite(nid_bilKPins,"vitu",itau_w,zx_tmp_3d,
    45      .                                   iim*jjmp1*klev,ndex3d)
     36cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     37      CALL histwrite_phy(nid_bilKPins,"vitu",itau_w,u_seri)
    4638c
    47       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    48       CALL histwrite(nid_bilKPins,"vitv",itau_w,zx_tmp_3d,
    49      .                                   iim*jjmp1*klev,ndex3d)
     39cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     40      CALL histwrite_phy(nid_bilKPins,"vitv",itau_w,v_seri)
    5041c
    51       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    52       CALL histwrite(nid_bilKPins,"vitw",itau_w,zx_tmp_3d,
    53      .                                   iim*jjmp1*klev,ndex3d)
     42cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
     43      CALL histwrite_phy(nid_bilKPins,"vitw",itau_w,omega)
    5444c
    55       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    56       CALL histwrite(nid_bilKPins,"pres",itau_w,zx_tmp_3d,
    57      .                                   iim*jjmp1*klev,ndex3d)
     45cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     46      CALL histwrite_phy(nid_bilKPins,"pres",itau_w,pplay)
    5847c
    59       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d)
    60       CALL histwrite(nid_bilKPins,"play",itau_w,zx_tmp_3d,
    61      .                                   iim*jjmp1*klev,ndex3d)
     48cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d)
     49      CALL histwrite_phy(nid_bilKPins,"play",itau_w,paprs)
    6250c
    63       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d)
    64       CALL histwrite(nid_bilKPins,"oliq",itau_w,zx_tmp_3d,
    65      .                                   iim*jjmp1*klev,ndex3d)
     51cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d)
     52      CALL histwrite_phy(nid_bilKPins,"oliq",itau_w,cldliq)
    6653c
    67       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    68       CALL histwrite(nid_bilKPins,"dtdyn",itau_w,zx_tmp_3d,
    69      .                                   iim*jjmp1*klev,ndex3d)
     54cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
     55      CALL histwrite_phy(nid_bilKPins,"dtdyn",itau_w,d_t_dyn)
    7056c
    71       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
    72       CALL histwrite(nid_bilKPins,"dqdyn",itau_w,zx_tmp_3d,
    73      .                                   iim*jjmp1*klev,ndex3d)
     57cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
     58      CALL histwrite_phy(nid_bilKPins,"dqdyn",itau_w,d_q_dyn)
    7459c
    75       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d)
    76       CALL histwrite(nid_bilKPins,"dtcon",itau_w,zx_tmp_3d,
    77      .                                   iim*jjmp1*klev,ndex3d)
     60cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d)
     61      CALL histwrite_phy(nid_bilKPins,"dtcon",itau_w,d_t_con)
    7862c
    79       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d)
    80       CALL histwrite(nid_bilKPins,"ducon",itau_w,zx_tmp_3d,
    81      .                                   iim*jjmp1*klev,ndex3d)
     63cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d)
     64      CALL histwrite_phy(nid_bilKPins,"ducon",itau_w,d_u_con)
    8265c
    83       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d)
    84       CALL histwrite(nid_bilKPins,"dvcon",itau_w,zx_tmp_3d,
    85      .                                   iim*jjmp1*klev,ndex3d)
     66cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d)
     67      CALL histwrite_phy(nid_bilKPins,"dvcon",itau_w,d_v_con)
    8668c
    87       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d)
    88       CALL histwrite(nid_bilKPins,"dqcon",itau_w,zx_tmp_3d,
    89      .                                   iim*jjmp1*klev,ndex3d)
     69cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d)
     70      CALL histwrite_phy(nid_bilKPins,"dqcon",itau_w,d_q_con)
    9071c
    91       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d)
    92       CALL histwrite(nid_bilKPins,"dtlsc",itau_w,zx_tmp_3d,
    93      .                                   iim*jjmp1*klev,ndex3d)
     72cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d)
     73      CALL histwrite_phy(nid_bilKPins,"dtlsc",itau_w,d_t_lsc)
    9474c
    95       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d)
    96       CALL histwrite(nid_bilKPins,"dqlsc",itau_w,zx_tmp_3d,
    97      .                                   iim*jjmp1*klev,ndex3d)
     75cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d)
     76      CALL histwrite_phy(nid_bilKPins,"dqlsc",itau_w,d_q_lsc)
    9877c
    99       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
    100       CALL histwrite(nid_bilKPins,"dtvdf",itau_w,zx_tmp_3d,
    101      .                                   iim*jjmp1*klev,ndex3d)
     78cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
     79      CALL histwrite_phy(nid_bilKPins,"dtvdf",itau_w,d_t_vdf)
    10280c
    103       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
    104       CALL histwrite(nid_bilKPins,"dqvdf",itau_w,zx_tmp_3d,
    105      .                                   iim*jjmp1*klev,ndex3d)
     81cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
     82      CALL histwrite_phy(nid_bilKPins,"dqvdf",itau_w,d_q_vdf)
    10683c
    107       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d)
    108       CALL histwrite(nid_bilKPins,"dtajs",itau_w,zx_tmp_3d,
    109      .                                   iim*jjmp1*klev,ndex3d)
     84cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d)
     85      CALL histwrite_phy(nid_bilKPins,"dtajs",itau_w,d_t_ajs)
    11086c
    111       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d)
    112       CALL histwrite(nid_bilKPins,"dqajs",itau_w,zx_tmp_3d,
    113      .                                   iim*jjmp1*klev,ndex3d)
     87cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d)
     88      CALL histwrite_phy(nid_bilKPins,"dqajs",itau_w,d_q_ajs)
    11489c
    115       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d)
    116       CALL histwrite(nid_bilKPins,"dteva",itau_w,zx_tmp_3d,
    117      .                                   iim*jjmp1*klev,ndex3d)
     90cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d)
     91      CALL histwrite_phy(nid_bilKPins,"dteva",itau_w,d_t_eva)
    11892c
    119       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d)
    120       CALL histwrite(nid_bilKPins,"dqeva",itau_w,zx_tmp_3d,
    121      .                                   iim*jjmp1*klev,ndex3d)
     93cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d)
     94      CALL histwrite_phy(nid_bilKPins,"dqeva",itau_w,d_q_eva)
    12295c
    123       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d)
    124       CALL histwrite(nid_bilKPins,"dtswr",itau_w,zx_tmp_3d,
    125      .                                   iim*jjmp1*klev,ndex3d)
     96cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d)
     97      CALL histwrite_phy(nid_bilKPins,"dtswr",itau_w,heat)
    12698c
    127       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d)
    128       CALL histwrite(nid_bilKPins,"dtsw0",itau_w,zx_tmp_3d,
    129      .                                   iim*jjmp1*klev,ndex3d)
     99cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d)
     100      CALL histwrite_phy(nid_bilKPins,"dtsw0",itau_w,heat0)
    130101c
    131       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d)
    132       CALL histwrite(nid_bilKPins,"dtlwr",itau_w,zx_tmp_3d,
    133      .                                   iim*jjmp1*klev,ndex3d)
     102cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d)
     103      CALL histwrite_phy(nid_bilKPins,"dtlwr",itau_w,cool)
    134104c
    135       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d)
    136       CALL histwrite(nid_bilKPins,"dtlw0",itau_w,zx_tmp_3d,
    137      .                                   iim*jjmp1*klev,ndex3d)
     105cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d)
     106      CALL histwrite_phy(nid_bilKPins,"dtlw0",itau_w,cool0)
    138107c
    139       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
    140       CALL histwrite(nid_bilKPins,"duvdf",itau_w,zx_tmp_3d,
    141      .                                   iim*jjmp1*klev,ndex3d)
     108cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
     109      CALL histwrite_phy(nid_bilKPins,"duvdf",itau_w,d_u_vdf)
    142110c
    143       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
    144       CALL histwrite(nid_bilKPins,"dvvdf",itau_w,zx_tmp_3d,
    145      .                                   iim*jjmp1*klev,ndex3d)
     111cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
     112      CALL histwrite_phy(nid_bilKPins,"dvvdf",itau_w,d_v_vdf)
    146113c
    147114      IF (ok_orodr) THEN
     
    155122      ENDDO
    156123c
    157       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d)
    158       CALL histwrite(nid_bilKPins,"duoli",itau_w,zx_tmp_3d,
    159      .                                   iim*jjmp1*klev,ndex3d)
     124cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d)
     125      CALL histwrite_phy(nid_bilKPins,"duoli",itau_w,d_u_oli)
    160126c
    161       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d)
    162       CALL histwrite(nid_bilKPins,"dvoli",itau_w,zx_tmp_3d,
    163      .                                   iim*jjmp1*klev,ndex3d)
     127cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d)
     128      CALL histwrite_phy(nid_bilKPins,"dvoli",itau_w,d_v_oli)
    164129c
    165130      ENDIF
    166131      ENDIF
    167132C
    168       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d)
    169       CALL histwrite(nid_bilKPins,"duphy",itau_w,zx_tmp_3d,
    170      .                                   iim*jjmp1*klev,ndex3d)
     133cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d)
     134      CALL histwrite_phy(nid_bilKPins,"duphy",itau_w,d_u)
    171135c
    172       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d)
    173       CALL histwrite(nid_bilKPins,"dvphy",itau_w,zx_tmp_3d,
    174      .                                   iim*jjmp1*klev,ndex3d)
     136cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d)
     137      CALL histwrite_phy(nid_bilKPins,"dvphy",itau_w,d_v)
    175138c
    176       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    177       CALL histwrite(nid_bilKPins,"dtphy",itau_w,zx_tmp_3d,
    178      .                                   iim*jjmp1*klev,ndex3d)
     139cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
     140      CALL histwrite_phy(nid_bilKPins,"dtphy",itau_w,d_t)
    179141c
    180       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1),
    181      .zx_tmp_3d)
    182       CALL histwrite(nid_bilKPins,"dqphy",itau_w,zx_tmp_3d,
    183      .                                   iim*jjmp1*klev,ndex3d)
     142cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1),
     143cym     .zx_tmp_3d)
     144      CALL histwrite_phy(nid_bilKPins,"dqphy",itau_w,d_qx(:,:,1))
    184145c
    185       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2),
    186      .zx_tmp_3d)
    187       CALL histwrite(nid_bilKPins,"dqlphy",itau_w,zx_tmp_3d,
    188      .                                   iim*jjmp1*klev,ndex3d)
     146cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2),
     147cym     .zx_tmp_3d)
     148      CALL histwrite_phy(nid_bilKPins,"dqlphy",itau_w,d_qx(:,:,2))
    189149c
    190150cIM 280405 BEG
     
    201161       IF(bb2.EQ."850") THEN
    202162c
    203         CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d)
    204         CALL histwrite(nid_bilKPins,"u"//bb2,itau_w,zx_tmp_2d,
    205      $       iim*jjmp1,ndex2d)
     163cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d)
     164        CALL histwrite_phy(nid_bilKPins,"u"//bb2,itau_w,usumSTD(:,k,1))
    206165c
    207         CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d)
    208         CALL histwrite(nid_bilKPins,"v"//bb2,itau_w,zx_tmp_2d,
    209      $       iim*jjmp1,ndex2d)
     166cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d)
     167        CALL histwrite_phy(nid_bilKPins,"v"//bb2,itau_w,vsumSTD(:,k,1))
    210168c
    211169       ENDIF !(bb2.EQ."850")
  • LMDZ4/trunk/libf/phylmd/write_histISCCP.h

    r684 r766  
    1515        DO k=1,kmaxm1
    1616         zx_tmp_fi3d(1:klon, 1:lmaxm1)=fq_isccp(1:klon,k,1:lmaxm1,n)*100.
    17          CALL gr_fi_ecrit(lmaxm1,klon,iim,jjmp1,zx_tmp_fi3d,
    18      .                    zx_tmp_3d)
     17cym         CALL gr_fi_ecrit(lmaxm1,klon,iim,jjmp1,zx_tmp_fi3d,
     18cym     .                    zx_tmp_3d)
    1919c
    2020cIM: champ 3d : (lon,lat,pres) pour un tau fixe
    2121c
    22          CALL histwrite(nid_isccp,"cldISCCP_"//taulev(k)//typinout(n),
    23      .                  itau_w,zx_tmp_3d,iim*jjmp1*lmaxm1,ndex3d)
     22       CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//typinout(n),
     23     .                  itau_w,zx_tmp_fi3d)
    2424        ENDDO !k
    2525c
    26         CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
    27         CALL histwrite(nid_isccp,"nsunlit"//typinout(n),itau_w,
    28      .                 zx_tmp_2d,iim*jjmp1,ndex2d)
     26cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
     27        CALL histwrite_phy(nid_isccp,"nsunlit"//typinout(n),itau_w,
     28     .                 nbsunlit(1,:,n))
    2929c
    3030        ENDDO ! n=1, napisccp
     
    5050          ENDDO
    5151         ENDIF
    52          CALL gr_fi_ecrit(1,klon,iim,jjmp1,fq_is_true,
    53      .                    zx_tmp_2d)
     52cym         CALL gr_fi_ecrit(1,klon,iim,jjmp1,fq_is_true,
     53cym     .                    zx_tmp_2d)
    5454c
    5555cIM: champ 2d : (lon,lat) pour un tau et une pc fixes
    5656c
    57          CALL histwrite(nid_isccp,pclev(l)//taulev(k)//typinout(n),
    58      .                  itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     57         CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//typinout(n),
     58     .                  itau_w,fq_is_true(:,:,l,n))
    5959         ENDDO !l
    6060        ENDDO !k
    6161c
    6262c       print*,'n=',n,' write_ISCCP avant nbsunlit'
    63         CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
    64         CALL histwrite(nid_isccp,"nsunlit"//typinout(n),
    65      .                 itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     63cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)
     64        CALL histwrite_phy(nid_isccp,"nsunlit"//typinout(n),
     65     .                 itau_w,nbsunlit(1,:,n))
    6666c
    6767        zx_tmp_fi2d(1:klon)=float(seed(1:klon,n))
    6868c
    6969c       print*,'n=',n,' write_ISCCP avant seed'
    70         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    71         CALL histwrite(nid_isccp,"seed"//verticaxe(n),
    72      .                 itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     70cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     71        CALL histwrite_phy(nid_isccp,"seed"//verticaxe(n),
     72     .                 itau_w,zx_tmp_fi2d)
    7373c
    7474c 9types de nuages ISCCP-D2
     
    8080     $  fq_is_true(i,1,3,n)+ fq_is_true(i,2,3,n)+ fq_is_true(i,3,3,n) )
    8181        ENDDO
    82         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    83         CALL histwrite(nid_isccp,"cirr",itau_w,zx_tmp_2d,
    84      $  iim*jjmp1,ndex2d)
     82cym       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     83        CALL histwrite_phy(nid_isccp,"cirr",itau_w,zx_tmp_fi2d)
    8584c
    8685        DO i=1, klon
     
    9089     $   fq_is_true(i,4,3,n)+ fq_is_true(i,5,3,n) )
    9190        ENDDO
    92         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    93         CALL histwrite(nid_isccp,"cist",itau_w,zx_tmp_2d,
    94      $  iim*jjmp1,ndex2d)
     91cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     92        CALL histwrite_phy(nid_isccp,"cist",itau_w,zx_tmp_fi2d)
    9593c
    9694        DO i=1, klon
     
    10098     $   fq_is_true(i,6,3,n)+ fq_is_true(i,7,3,n) )
    10199        ENDDO
    102         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    103         CALL histwrite(nid_isccp,"deep",itau_w,zx_tmp_2d,
    104      $  iim*jjmp1,ndex2d)
     100cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     101        CALL histwrite_phy(nid_isccp,"deep",itau_w,zx_tmp_fi2d)
    105102c
    106103        DO i=1, klon
     
    109106     $  fq_is_true(i,1,5,n)+ fq_is_true(i,2,5,n)+ fq_is_true(i,3,5,n) )
    110107        ENDDO
    111         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    112         CALL histwrite(nid_isccp,"alcu",itau_w,zx_tmp_2d,
    113      $  iim*jjmp1,ndex2d)
     108cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     109        CALL histwrite_phy(nid_isccp,"alcu",itau_w,zx_tmp_fi2d)
    114110c
    115111        DO i=1, klon
     
    118114     $   fq_is_true(i,4,5,n)+ fq_is_true(i,5,5,n) )
    119115        ENDDO
    120         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    121         CALL histwrite(nid_isccp,"alst",itau_w,zx_tmp_2d,
    122      $  iim*jjmp1,ndex2d)
     116cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     117        CALL histwrite_phy(nid_isccp,"alst",itau_w,zx_tmp_fi2d)
    123118c
    124119        DO i=1, klon
     
    127122     $   fq_is_true(i,6,5,n)+ fq_is_true(i,7,5,n) )
    128123        ENDDO
    129         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    130         CALL histwrite(nid_isccp,"nist",itau_w,zx_tmp_2d,
    131      $  iim*jjmp1,ndex2d)
     124cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     125        CALL histwrite_phy(nid_isccp,"nist",itau_w,zx_tmp_fi2d)
    132126c
    133127        DO i=1, klon
     
    136130     $  fq_is_true(i,1,7,n)+ fq_is_true(i,2,7,n)+ fq_is_true(i,3,7,n) )
    137131        ENDDO
    138         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    139         CALL histwrite(nid_isccp,"cumu",itau_w,zx_tmp_2d,
    140      $  iim*jjmp1,ndex2d)
     132cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     133        CALL histwrite_phy(nid_isccp,"cumu",itau_w,zx_tmp_fi2d)
    141134c
    142135        DO i=1, klon
     
    145138     $   fq_is_true(i,4,7,n)+ fq_is_true(i,5,7,n) )
    146139        ENDDO
    147         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    148         CALL histwrite(nid_isccp,"stcu",itau_w,zx_tmp_2d,
    149      $  iim*jjmp1,ndex2d)
     140cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     141        CALL histwrite_phy(nid_isccp,"stcu",itau_w,zx_tmp_fi2d)
    150142c
    151143        DO i=1, klon
     
    154146     $   fq_is_true(i,6,7,n)+ fq_is_true(i,7,7,n) )
    155147        ENDDO
    156         CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    157         CALL histwrite(nid_isccp,"stra",itau_w,zx_tmp_2d,
    158      $  iim*jjmp1,ndex2d)
     148cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     149        CALL histwrite_phy(nid_isccp,"stra",itau_w,zx_tmp_fi2d)
    159150c
    160151c 3_tau_nuages x 3_levels
     
    172163     $  fq_is_true(i,1,7,n)+ fq_is_true(i,2,7,n)+ fq_is_true(i,3,7,n) )
    173164        ENDDO   
    174         CALL gr_fi_ecrit(lmax3,klon,iim,jjmp1,cld_fi3d,cld_3d)
    175         CALL histwrite(nid_isccp,"thin",itau_w,cld_3d,
    176      $  iim*jjmp1*lmax3,ndex3d)
     165cym        CALL gr_fi_ecrit(lmax3,klon,iim,jjmp1,cld_fi3d,cld_3d)
     166        CALL histwrite_phy(nid_isccp,"thin",itau_w,cld_fi3d)
    177167c
    178168        DO i=1, klon
     
    188178     $    fq_is_true(i,4,7,n)+ fq_is_true(i,5,7,n) )
    189179        ENDDO   
    190         CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d)
    191         CALL histwrite(nid_isccp,"mid",itau_w,cld_3d,
    192      $  iim*jjmp1*lmax3,ndex3d)
     180cym       CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d)
     181        CALL histwrite_phy(nid_isccp,"mid",itau_w,cld_fi3d)
    193182c
    194183        DO i=1, klon
     
    204193     $    fq_is_true(i,6,7,n)+ fq_is_true(i,7,7,n) )
    205194        ENDDO   
    206         CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d)
    207         CALL histwrite(nid_isccp,"thick",itau_w,cld_3d,
    208      $  iim*jjmp1*lmax3,ndex3d)
     195cym       CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d)
     196        CALL histwrite_phy(nid_isccp,"thick",itau_w,cld_fi3d)
    209197c
    210198        ENDDO ! n=1, napisccp
     
    213201c
    214202       if (ok_sync) then
     203c$OMP MASTER
    215204        call histsync(nid_isccp)
     205c$OMP END MASTER       
    216206       endif
    217207
  • LMDZ4/trunk/libf/phylmd/write_histREGDYN.h

    r644 r766  
    33!
    44      if (ok_regdyn) then
    5 c
     5     
     6      if (monocpu) then
     7
     8
    69      ndex3d = 0
    710      itau_w = itau_phy + itap
     
    5659      endif
    5760
     61      endif ! monocpu
     62
    5863      endif
  • LMDZ4/trunk/libf/phylmd/write_histday.h

    r719 r766  
    1414      IF(lev_histday.GE.1) THEN
    1515c
    16        CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    17        CALL histwrite(nid_day,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    18 c
    19 cIM 310804      CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    20          CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    21        CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     16       CALL histwrite_phy(nid_day,"phis",itau_w,pphis)
     17 
     18c
     19       CALL histwrite_phy(nid_day,"aire",itau_w,airephy)
    2220c
    2321      DO i=1, klon
     
    2523      ENDDO
    2624c
    27       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    28       CALL histwrite(nid_day,"contfracATM",itau_w,
    29      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    30 c
    31       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
    32       CALL histwrite(nid_day,"contfracOR",itau_w,
    33      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    34 c
    35       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    36       CALL histwrite(nid_day,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    37 C
    38       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    39       CALL histwrite(nid_day,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     25cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     26      CALL histwrite_phy(nid_day,"contfracATM",itau_w,zx_tmp_fi2d)
     27c
     28cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
     29      CALL histwrite_phy(nid_day,"contfracOR",itau_w,
     30     &                   pctsrf_new(:,is_ter))
     31c
     32cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
     33      CALL histwrite_phy(nid_day,"tsol",itau_w,zxtsol)
     34C
     35cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     36      CALL histwrite_phy(nid_day,"t2m",itau_w,zt2m)
    4037c
    4138c   En attendant un eventuel debugage.
    4239
    43       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    44       CALL histwrite(nid_day,"t2m_min",itau_w,zx_tmp_2d,
    45      .               iim*jjmp1,ndex2d)
    46 c
    47       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    48       CALL histwrite(nid_day,"t2m_max",itau_w,zx_tmp_2d,
    49      .               iim*jjmp1,ndex2d)
     40cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     41      CALL histwrite_phy(nid_day,"t2m_min",itau_w,zt2m)
     42c
     43cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     44      CALL histwrite_phy(nid_day,"t2m_max",itau_w,zt2m)
    5045c
    5146      DO i = 1, klon
    5247         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
    5348      ENDDO
    54       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    55       CALL histwrite(nid_day,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     49cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     50      CALL histwrite_phy(nid_day,"plul",itau_w,zx_tmp_fi2d)
    5651c
    5752      DO i = 1, klon
    5853         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
    5954      ENDDO
    60       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    61       CALL histwrite(nid_day,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    62 c
    63       CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_lsc,zx_tmp_2d)
    64       CALL histwrite(nid_day,"snowl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     55cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     56      CALL histwrite_phy(nid_day,"pluc",itau_w,zx_tmp_fi2d)
     57c
     58cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_lsc,zx_tmp_2d)
     59      CALL histwrite_phy(nid_day,"snowl",itau_w,snow_lsc)
    6560c
    6661      IF(1.EQ.0) THEN
    67       CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_con,zx_tmp_2d)
    68       CALL histwrite(nid_day,"snowc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     62cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_con,zx_tmp_2d)
     63      CALL histwrite_phy(nid_day,"snowc",itau_w,snow_con)
    6964      ENDIF
    7065c
    71       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
    72       CALL histwrite(nid_day,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     66cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
     67      CALL histwrite_phy(nid_day,"flat",itau_w,zxfluxlat)
    7368c
    7469      DO i = 1, klon
     
    7671      ENDDO
    7772c
    78       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    79       CALL histwrite(nid_day,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    80 c
    81       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zq2m,zx_tmp_2d)
    82       CALL histwrite(nid_day,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    83 c
    84       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zu10m,zx_tmp_2d)
    85       CALL histwrite(nid_day,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,
    86      .               ndex2d)
    87 c
    88       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zv10m,zx_tmp_2d)
    89       CALL histwrite(nid_day,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,
    90      .               ndex2d)
     73cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     74      CALL histwrite_phy(nid_day,"sicf",itau_w,zx_tmp_fi2d)
     75c
     76cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zq2m,zx_tmp_2d)
     77      CALL histwrite_phy(nid_day,"q2m",itau_w,zq2m)
     78c
     79cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zu10m,zx_tmp_2d)
     80      CALL histwrite_phy(nid_day,"u10m",itau_w,zu10m)
     81c
     82cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zv10m,zx_tmp_2d)
     83      CALL histwrite_phy(nid_day,"v10m",itau_w,zv10m)
    9184c
    9285      DO i=1, klon
    9386       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    9487      ENDDO
    95       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    96       CALL histwrite(nid_day,"wind10m",itau_w,zx_tmp_2d,
    97      $     iim*jjmp1,ndex2d)
    98 c
    99       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    100       CALL histwrite(nid_day,"wind10max",itau_w,zx_tmp_2d,
    101      .               iim*jjmp1,ndex2d)
     88cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)     
     89      CALL histwrite_phy(nid_day,"wind10m",itau_w,zx_tmp_fi2d)
     90c
     91cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     92      CALL histwrite_phy(nid_day,"wind10max",itau_w,zx_tmp_fi2d)
    10293c
    10394      DO i=1, klon
    10495         zx_tmp_fi2d(i) = paprs(i,1)
    10596      ENDDO
    106       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    107       CALL histwrite(nid_day,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     97cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     98      CALL histwrite_phy(nid_day,"psol",itau_w,zx_tmp_fi2d)
    10899c
    109100      DO i=1, klon
    110101         zx_tmp_fi2d(i) = (rain_fall(i) + snow_fall(i))
    111102      ENDDO
    112       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    113       CALL histwrite(nid_day,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    114 c
    115       CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
    116       CALL histwrite(nid_day,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     103cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     104      CALL histwrite_phy(nid_day,"precip",itau_w,zx_tmp_fi2d)
     105c
     106cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
     107      CALL histwrite_phy(nid_day,"snowf",itau_w,snow_fall)
    117108c
    118109cIM: 140404   CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
     
    121112c    .               ndex2d)
    122113c
    123       CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
    124       CALL histwrite(nid_day,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    125 c
    126       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
    127       CALL histwrite(nid_day,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    128 c
    129       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    130       CALL histwrite(nid_day,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    131 c
    132       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    133       CALL histwrite(nid_day,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    134 c
    135       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    136       CALL histwrite(nid_day,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    137 c
    138       CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)
    139       CALL histwrite(nid_day,"radsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    140 c
    141       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
    142       CALL histwrite(nid_day,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    143 c
    144       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
    145       CALL histwrite(nid_day,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    146 c
    147       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
    148       CALL histwrite(nid_day,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    149 c
    150       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
    151       CALL histwrite(nid_day,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    152 c
    153       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
    154       CALL histwrite(nid_day,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    155 c
    156       CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
    157       CALL histwrite(nid_day,"prw",itau_w,zx_tmp_2d,
    158      .               iim*jjmp1,ndex2d)
     114cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
     115      CALL histwrite_phy(nid_day,"evap",itau_w,evap)
     116c
     117cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
     118      CALL histwrite_phy(nid_day,"tops",itau_w,topsw)
     119c
     120cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     121      CALL histwrite_phy(nid_day,"topl",itau_w,toplw)
     122c
     123cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
     124      CALL histwrite_phy(nid_day,"sols",itau_w,solsw)
     125c
     126cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
     127      CALL histwrite_phy(nid_day,"soll",itau_w,sollw)
     128c
     129cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)
     130      CALL histwrite_phy(nid_day,"radsol",itau_w,radsol)
     131c
     132cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
     133      CALL histwrite_phy(nid_day,"cldl",itau_w,cldl)
     134c
     135cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
     136      CALL histwrite_phy(nid_day,"cldm",itau_w,cldm)
     137c
     138cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
     139      CALL histwrite_phy(nid_day,"cldh",itau_w,cldh)
     140c
     141cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
     142      CALL histwrite_phy(nid_day,"cldt",itau_w,cldt)
     143c
     144cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
     145      CALL histwrite_phy(nid_day,"cldq",itau_w,cldq)
     146c
     147cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
     148      CALL histwrite_phy(nid_day,"prw",itau_w,prw)
    159149
    160150c   Ecriture de champs dynamiques sur des niveaux de pression
     
    173163     $   .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
    174164c
    175         CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d)
    176         CALL histwrite(nid_day,"u"//bb2,itau_w,zx_tmp_2d,
    177      $       iim*jjmp1,ndex2d)
    178 c
    179         CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d)
    180         CALL histwrite(nid_day,"v"//bb2,itau_w,zx_tmp_2d,
    181      $       iim*jjmp1,ndex2d)
     165cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d)
     166        CALL histwrite_phy(nid_day,"u"//bb2,itau_w,usumSTD(:,k,1))
     167c
     168cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d)
     169        CALL histwrite_phy(nid_day,"v"//bb2,itau_w,vsumSTD(:,k,1))
    182170c
    183171      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
     
    187175      IF(bb2.EQ."500") THEN
    188176c
    189       CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,1),zx_tmp_2d)
    190       CALL histwrite(nid_day,"w"//bb2,itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    191 c
    192       CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,1),zx_tmp_2d)
    193       CALL histwrite(nid_day,"phi"//bb2,itau_w,zx_tmp_2d,
    194      $     iim*jjmp1,ndex2d)
     177cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,1),zx_tmp_2d)
     178      CALL histwrite_phy(nid_day,"w"//bb2,itau_w,wsumSTD(:,k,1))
     179c
     180cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,1),zx_tmp_2d)
     181      CALL histwrite_phy(nid_day,"phi"//bb2,itau_w,phisumSTD(:,k,1))
    195182
    196183      ENDIF !(bb2.EQ."500") THEN
     
    198185      ENDDO !nlevSTD
    199186c
    200       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    201       CALL histwrite(nid_day,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    202 
    203       CALL gr_fi_ecrit(1,klon,iim,jjmp1,cape,zx_tmp_2d)
    204       CALL histwrite(nid_day,"cape_max",itau_w,zx_tmp_2d,
    205      .               iim*jjmp1,ndex2d)
    206 c
    207       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    208       CALL histwrite(nid_day,"solldown",itau_w,zx_tmp_2d,iim*jjmp1,
    209      .               ndex2d)
     187cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     188      CALL histwrite_phy(nid_day,"slp",itau_w,slp)
     189
     190cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,cape,zx_tmp_2d)
     191      CALL histwrite_phy(nid_day,"cape_max",itau_w,cape)
     192c
     193cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     194      CALL histwrite_phy(nid_day,"solldown",itau_w,sollwdown)
    210195c
    211196      DO i=1, klon
    212197        zx_tmp_fi2d(i)=-1*sens(i)
    213198      ENDDO
    214       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    215       CALL histwrite(nid_day,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     199cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     200      CALL histwrite_phy(nid_day,"sens",itau_w,zx_tmp_fi2d)
    216201c
    217202      zx_tmp_fi2d(1 : klon) = swdn(1 : klon, 1)
    218203
    219       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    220       CALL histwrite(nid_day, "SWdnSFC",itau_w,zx_tmp_2d,
    221      .                               iim*jjmp1,ndex2d)
     204cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     205      CALL histwrite_phy(nid_day, "SWdnSFC",itau_w,zx_tmp_fi2d)
    222206c
    223207      IF (OCEAN.EQ.'force ') THEN
     
    232216      ENDIF
    233217      ENDDO
    234       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    235       CALL histwrite(nid_day,"lmt_bils",itau_w,
    236      .     zx_tmp_2d,iim*jjmp1,ndex2d)
     218cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     219      CALL histwrite_phy(nid_day,"lmt_bils",itau_w, zx_tmp_fi2d)
    237220c
    238221      ELSE IF (OCEAN.EQ.'slab  ') THEN
     
    247230      ENDIF
    248231      ENDDO
    249       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    250       CALL histwrite(nid_day,"slab_bils",itau_w,
    251      .     zx_tmp_2d,iim*jjmp1,ndex2d)
     232cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     233      CALL histwrite_phy(nid_day,"slab_bils",itau_w,zx_tmp_fi2d)
    252234c
    253235      DO i=1, klon
     
    259241       ENDIF
    260242      ENDDO !i=1, klon
    261       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    262       CALL histwrite(nid_day,"tslab",itau_w,zx_tmp_2d,
    263      .     iim*jjmp1,ndex2d)
    264 c
    265       CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
    266       CALL histwrite(nid_day,"seaice",itau_w,zx_tmp_2d,
    267      .     iim*jjmp1,ndex2d)
    268 c
    269       CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
    270       CALL histwrite(nid_day,"siceh",itau_w,zx_tmp_2d,
    271      .     iim*jjmp1,ndex2d)
     243cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     244      CALL histwrite_phy(nid_day,"tslab",itau_w,zx_tmp_fi2d)
     245c
     246cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
     247      CALL histwrite_phy(nid_day,"seaice",itau_w,seaice)
     248c
     249cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
     250      CALL histwrite_phy(nid_day,"siceh",itau_w,seaice/1000.)
    272251c
    273252      ENDIF !(OCEAN.EQ.'slab  ') THEN
     
    281260      ENDDO
    282261c
    283       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    284       CALL histwrite(nid_day,"fluxo",itau_w,zx_tmp_2d,
    285      .     iim*jjmp1,ndex2d)
     262cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     263      CALL histwrite_phy(nid_day,"fluxo",itau_w,zx_tmp_fi2d)
    286264c
    287265      DO i=1, klon
     
    293271      ENDDO
    294272c
    295       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    296       CALL histwrite(nid_day,"fluxg",itau_w,zx_tmp_2d,
    297      .     iim*jjmp1,ndex2d)
     273cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     274      CALL histwrite_phy(nid_day,"fluxg",itau_w,zx_tmp_fi2d)
    298275c
    299276      ENDIF !lev_histday.GE.1
     
    301278      IF(lev_histday.GE.2) THEN
    302279c
    303       CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
    304       CALL histwrite(nid_day,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    305 c
    306       CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
    307       CALL histwrite(nid_day,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     280cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
     281      CALL histwrite_phy(nid_day,"bils",itau_w, bils)
     282c
     283cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
     284      CALL histwrite_phy(nid_day,"fder",itau_w,fder)
    308285c
    309286      ENDIF !lev_histday.GE.2
     
    317294c Champs 3D:
    318295c
    319       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    320       CALL histwrite(nid_day,"temp",itau_w,zx_tmp_3d,
    321      .                                   iim*jjmp1*klev,ndex3d)
    322 c
    323       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
    324       CALL histwrite(nid_day,"ovap",itau_w,zx_tmp_3d,
    325      .                                   iim*jjmp1*klev,ndex3d)
    326 c
    327       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    328       CALL histwrite(nid_day,"geop",itau_w,zx_tmp_3d,
    329      .                                   iim*jjmp1*klev,ndex3d)
    330 c
    331       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    332       CALL histwrite(nid_day,"vitu",itau_w,zx_tmp_3d,
    333      .                                   iim*jjmp1*klev,ndex3d)
    334 c
    335       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    336       CALL histwrite(nid_day,"vitv",itau_w,zx_tmp_3d,
    337      .                                   iim*jjmp1*klev,ndex3d)
    338 c
    339       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    340       CALL histwrite(nid_day,"vitw",itau_w,zx_tmp_3d,
    341      .                                   iim*jjmp1*klev,ndex3d)
    342 c
    343       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    344       CALL histwrite(nid_day,"pres",itau_w,zx_tmp_3d,
    345      .                                   iim*jjmp1*klev,ndex3d)
     296cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     297      CALL histwrite_phy(nid_day,"temp",itau_w,t_seri)
     298c
     299cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     300      CALL histwrite_phy(nid_day,"ovap",itau_w,qx(:,:,ivap))
     301c
     302cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     303      CALL histwrite_phy(nid_day,"geop",itau_w,zphi)
     304c
     305cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     306      CALL histwrite_phy(nid_day,"vitu",itau_w,u_seri)
     307c
     308cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     309      CALL histwrite_phy(nid_day,"vitv",itau_w,v_seri)
     310c
     311cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
     312      CALL histwrite_phy(nid_day,"vitw",itau_w,omega)
     313c
     314cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     315      CALL histwrite_phy(nid_day,"pres",itau_w,pplay)
    346316c
    347317      ENDIF !lev_histday.GE.3
     
    356326c=================================================================
    357327      zx_tmp_fi2d(1 : klon) = swup( 1 : klon, klevp1 )
    358       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    359       CALL histwrite(nid_day, "SWupTOA",itau_w,zx_tmp_2d,
    360      .                               iim*jjmp1,ndex2d)
     328cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     329      CALL histwrite_phy(nid_day, "SWupTOA",itau_w,zx_tmp_fi2d)
    361330c
    362331      zx_tmp_fi2d(1 : klon) = swup( 1 : klon, 1 )
    363       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    364       CALL histwrite(nid_day, "SWupSFC",itau_w,zx_tmp_2d,
    365      .                               iim*jjmp1,ndex2d)
     332cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     333      CALL histwrite_phy(nid_day, "SWupSFC",itau_w,zx_tmp_fi2d)
    366334c
    367335      zx_tmp_fi2d(1 : klon) = swdn( 1 : klon, klevp1 )
    368       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    369       CALL histwrite(nid_day, "SWdnTOA",itau_w,zx_tmp_2d,
    370      .                               iim*jjmp1,ndex2d)
     336cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     337      CALL histwrite_phy(nid_day, "SWdnTOA",itau_w,zx_tmp_fi2d)
    371338c
    372339      zx_tmp_fi2d(1 : klon) = swup0( 1 : klon, klevp1 )
    373       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    374       CALL histwrite(nid_day, "SWupTOAclr",itau_w,zx_tmp_2d,
    375      .                               iim*jjmp1,ndex2d)
     340cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     341      CALL histwrite_phy(nid_day, "SWupTOAclr",itau_w,zx_tmp_fi2d)
    376342c
    377343      zx_tmp_fi2d(1 : klon) = swup0( 1 : klon, 1 )
    378       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    379       CALL histwrite(nid_day, "SWupSFCclr",itau_w,zx_tmp_2d,
    380      .                               iim*jjmp1,ndex2d)
     344cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     345      CALL histwrite_phy(nid_day, "SWupSFCclr",itau_w,zx_tmp_fi2d)
    381346c
    382347      zx_tmp_fi2d(1 : klon) = swdn0( 1 : klon, klevp1 )
    383       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    384       CALL histwrite(nid_day, "SWdnTOAclr",itau_w,zx_tmp_2d,
    385      .                               iim*jjmp1,ndex2d)
     348cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     349      CALL histwrite_phy(nid_day, "SWdnTOAclr",itau_w,zx_tmp_fi2d)
    386350c
    387351      zx_tmp_fi2d(1 : klon) = swdn0( 1 : klon, 1 )
    388       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    389       CALL histwrite(nid_day, "SWdnSFCclr",itau_w,zx_tmp_2d,
    390      .                               iim*jjmp1,ndex2d)
     352cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     353      CALL histwrite_phy(nid_day, "SWdnSFCclr",itau_w,zx_tmp_fi2d)
    391354c
    392355cIM AMMA-MIP
    393       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    394       CALL histwrite(nid_day,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    395      .               ndex2d)
     356cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     357      CALL histwrite_phy(nid_day,"LWdnSFC",itau_w,sollwdown)
    396358c
    397359      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    398       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    399       CALL histwrite(nid_day,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    400      .               ndex2d)
     360cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     361      CALL histwrite_phy(nid_day,"LWupSFC",itau_w,zx_tmp_fi2d)
    401362c
    402363cIM   IF (iflag_con.GE.3) THEN
    403364cIM ema_pct= 0.     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ema_pct,zx_tmp_2d)
    404       CALL gr_fi_ecrit(1, klon,iim,jjmp1, meanptop(:,1),zx_tmp_2d)
    405       CALL histwrite(nid_day,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,
    406      .               ndex2d)
     365cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, meanptop(:,1),zx_tmp_2d)
     366      CALL histwrite_phy(nid_day,"ptop",itau_w,meanptop(:,1))
    407367cIM   ENDIF
    408368c
    409369      zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_ter)
    410       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d ,zx_tmp_2d)
    411       CALL histwrite(nid_day,"tter",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     370cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d ,zx_tmp_2d)
     371      CALL histwrite_phy(nid_day,"tter",itau_w,zx_tmp_fi2d)
    412372c
    413373      zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_lic)
    414       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    415       CALL histwrite(nid_day,"tlic",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     374cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     375      CALL histwrite_phy(nid_day,"tlic",itau_w,zx_tmp_fi2d)
    416376c
    417377      zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_oce)
    418       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    419       CALL histwrite(nid_day,"toce",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     378cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     379      CALL histwrite_phy(nid_day,"toce",itau_w,zx_tmp_fi2d)
    420380c
    421381      zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_sic)
    422       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    423       CALL histwrite(nid_day,"tsic",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     382cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     383      CALL histwrite_phy(nid_day,"tsic",itau_w,zx_tmp_fi2d)
    424384c
    425385      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_ter)
    426       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    427       CALL histwrite(nid_day,"t2mter",itau_w,zx_tmp_2d,iim*jjmp1,
    428      .               ndex2d)
     386cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     387      CALL histwrite_phy(nid_day,"t2mter",itau_w,zx_tmp_fi2d)
    429388c
    430389      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_ter)
    431       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    432       CALL histwrite(nid_day,"t2mter_min",itau_w,zx_tmp_2d,
    433      .               iim*jjmp1,ndex2d)
     390cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     391      CALL histwrite_phy(nid_day,"t2mter_min",itau_w,zx_tmp_fi2d)
    434392c
    435393      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_ter)
    436       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    437       CALL histwrite(nid_day,"t2mter_max",itau_w,zx_tmp_2d,
    438      .               iim*jjmp1,ndex2d)
     394cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     395      CALL histwrite_phy(nid_day,"t2mter_max",itau_w,zx_tmp_fi2d)
    439396c
    440397      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_lic)
    441       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    442       CALL histwrite(nid_day,"t2mlic",itau_w,zx_tmp_2d,iim*jjmp1,
    443      .               ndex2d)
     398cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     399      CALL histwrite_phy(nid_day,"t2mlic",itau_w,zx_tmp_fi2d)
    444400c
    445401      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_oce)
    446       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    447       CALL histwrite(nid_day,"t2moce",itau_w,zx_tmp_2d,iim*jjmp1,
    448      .               ndex2d)
     402cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     403      CALL histwrite_phy(nid_day,"t2moce",itau_w,zx_tmp_fi2d)
    449404c
    450405      zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_sic)
    451       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    452       CALL histwrite(nid_day,"t2msic",itau_w,zx_tmp_2d,iim*jjmp1,
    453      .               ndex2d)
     406cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     407      CALL histwrite_phy(nid_day,"t2msic",itau_w,zx_tmp_fi2d)
    454408c
    455409      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_ter)
    456       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    457       CALL histwrite(nid_day,"u10mter",itau_w,zx_tmp_2d,iim*jjmp1,
    458      .               ndex2d)
     410cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     411      CALL histwrite_phy(nid_day,"u10mter",itau_w,zx_tmp_fi2d)
    459412c
    460413      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_ter)
    461       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    462       CALL histwrite(nid_day,"v10mter",itau_w,zx_tmp_2d,iim*jjmp1,
    463      .               ndex2d)
     414cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     415      CALL histwrite_phy(nid_day,"v10mter",itau_w,zx_tmp_fi2d)
    464416c
    465417      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_lic)
    466       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    467       CALL histwrite(nid_day,"u10mlic",itau_w,zx_tmp_2d,iim*jjmp1,
    468      .               ndex2d)
     418cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     419      CALL histwrite_phy(nid_day,"u10mlic",itau_w,zx_tmp_fi2d)
    469420c
    470421      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_lic)
    471       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    472       CALL histwrite(nid_day,"v10mlic",itau_w,zx_tmp_2d,iim*jjmp1,
    473      .               ndex2d)
     422cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     423      CALL histwrite_phy(nid_day,"v10mlic",itau_w,zx_tmp_fi2d)
    474424c
    475425      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_oce)
    476       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    477       CALL histwrite(nid_day,"u10moce",itau_w,zx_tmp_2d,iim*jjmp1,
    478      .               ndex2d)
     426cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     427      CALL histwrite_phy(nid_day,"u10moce",itau_w,zx_tmp_fi2d)
    479428c
    480429      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_oce)
    481       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    482       CALL histwrite(nid_day,"v10moce",itau_w,zx_tmp_2d,iim*jjmp1,
    483      .               ndex2d)
     430cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     431      CALL histwrite_phy(nid_day,"v10moce",itau_w,zx_tmp_fi2d)
    484432c
    485433      zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_sic)
    486       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    487       CALL histwrite(nid_day,"u10msic",itau_w,zx_tmp_2d,iim*jjmp1,
    488      .               ndex2d)
     434cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     435      CALL histwrite_phy(nid_day,"u10msic",itau_w,zx_tmp_fi2d)
    489436C
    490437      zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_sic)
    491       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    492       CALL histwrite(nid_day,"v10msic",itau_w,zx_tmp_2d,iim*jjmp1,
    493      .               ndex2d)
     438cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     439      CALL histwrite_phy(nid_day,"v10msic",itau_w,zx_tmp_fi2d)
    494440C
    495441      DO nsrf = 1, nbsrf
    496442C
    497443        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    498         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    499         CALL histwrite(nid_day,"pourc_"//clnsurf(nsrf),itau_w,
    500      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     444cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     445        CALL histwrite_phy(nid_day,"pourc_"//clnsurf(nsrf),itau_w,
     446     &                     zx_tmp_fi2d)
    501447C
    502448        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    503         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    504         CALL histwrite(nid_day,"fract_"//clnsurf(nsrf),itau_w,
    505      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     449cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     450        CALL histwrite_phy(nid_day,"fract_"//clnsurf(nsrf),itau_w,
     451     &                     zx_tmp_fi2d)
    506452C
    507453        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    508         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    509         CALL histwrite(nid_day,"tsol_"//clnsurf(nsrf),itau_w,
    510      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     454cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     455        CALL histwrite_phy(nid_day,"tsol_"//clnsurf(nsrf),itau_w,
     456     $                     zx_tmp_fi2d)
    511457C
    512458        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    513         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    514         CALL histwrite(nid_day,"sens_"//clnsurf(nsrf),itau_w,
    515      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     459cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     460        CALL histwrite_phy(nid_day,"sens_"//clnsurf(nsrf),itau_w,
     461     $                     zx_tmp_fi2d)
    516462
    517463        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    518         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    519         CALL histwrite(nid_day,"lat_"//clnsurf(nsrf),itau_w,
    520      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     464cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     465        CALL histwrite_phy(nid_day,"lat_"//clnsurf(nsrf),itau_w,
     466     $                     zx_tmp_fi2d)
    521467C
    522468        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    523         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    524         CALL histwrite(nid_day,"taux_"//clnsurf(nsrf),itau_w,
    525      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     469cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     470        CALL histwrite_phy(nid_day,"taux_"//clnsurf(nsrf),itau_w,
     471     $                     zx_tmp_fi2d)
    526472C     
    527473        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    528         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    529         CALL histwrite(nid_day,"tauy_"//clnsurf(nsrf),itau_w,
    530      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     474cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     475        CALL histwrite_phy(nid_day,"tauy_"//clnsurf(nsrf),itau_w,
     476     $                     zx_tmp_fi2d)
    531477C
    532478        zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf)
    533         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    534         CALL histwrite(nid_day,"albe_"//clnsurf(nsrf),itau_w,
    535      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     479cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     480        CALL histwrite_phy(nid_day,"albe_"//clnsurf(nsrf),itau_w,
     481     $                     zx_tmp_fi2d)
    536482C
    537483        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
    538         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    539         CALL histwrite(nid_day,"rugs_"//clnsurf(nsrf),itau_w,
    540      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     484cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     485        CALL histwrite_phy(nid_day,"rugs_"//clnsurf(nsrf),itau_w,
     486     $                     zx_tmp_fi2d)
    541487C
    542488      END DO 
     
    550496c rajout sorties F. Aires
    551497c
    552       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
    553       CALL histwrite(nid_day,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    554 c
    555       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
    556       CALL histwrite(nid_day,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    557 c
    558       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
    559       CALL histwrite(nid_day,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    560 c
    561       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
    562       CALL histwrite(nid_day,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    563 c
    564       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d)
    565       CALL histwrite(nid_day,"rneb",itau_w,zx_tmp_3d,
    566      .                                   iim*jjmp1*klev,ndex3d)
    567 c
    568       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
    569       CALL histwrite(nid_day,"rnebcon",itau_w,zx_tmp_3d,
    570      .                                   iim*jjmp1*klev,ndex3d)
    571 c
    572       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
    573       CALL histwrite(nid_day,"lwcon",itau_w,zx_tmp_3d,
    574      .               iim*jjmp1*klev,ndex3d)
    575 c
    576       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
    577       CALL histwrite(nid_day,"iwcon",itau_w,zx_tmp_3d,
    578      .               iim*jjmp1*klev,ndex3d)
     498cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
     499      CALL histwrite_phy(nid_day,"tops0",itau_w,topsw0)
     500c
     501cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
     502      CALL histwrite_phy(nid_day,"topl0",itau_w,toplw0)
     503c
     504cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
     505      CALL histwrite_phy(nid_day,"sols0",itau_w,solsw0)
     506c
     507cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
     508      CALL histwrite_phy(nid_day,"soll0",itau_w, sollw0)
     509c
     510cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d)
     511      CALL histwrite_phy(nid_day,"rneb",itau_w,cldfra)
     512c
     513cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
     514      CALL histwrite_phy(nid_day,"rnebcon",itau_w,rnebcon)
     515c
     516cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
     517      CALL histwrite_phy(nid_day,"lwcon",itau_w,flwc)
     518c
     519cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
     520      CALL histwrite_phy(nid_day,"iwcon",itau_w,fiwc)
    579521c
    580522      zx_tmp_fi2d(1:klon) = flwp(1:klon)
    581       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    582       CALL histwrite(nid_day,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     523cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     524      CALL histwrite_phy(nid_day,"lwp",itau_w,zx_tmp_fi2d)
    583525c
    584526      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
    585       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    586       CALL histwrite(nid_day,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    587 c
    588       CALL gr_fi_ecrit(1,klon,iim,jjmp1, meantaucld,zx_tmp_2d)
    589       CALL histwrite(nid_day,"meantaucld",itau_w,zx_tmp_2d,
    590      .               iim*jjmp1,ndex2d)
    591 c
    592       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau,zx_tmp_3d)
    593       CALL histwrite(nid_day,"cldtau",itau_w,zx_tmp_3d,
    594      .               iim*jjmp1*klev,ndex3d)
    595 c
    596       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldemi,zx_tmp_3d)
    597       CALL histwrite(nid_day,"cldemi",itau_w,zx_tmp_3d,
    598      .               iim*jjmp1*klev,ndex3d)
     527cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     528      CALL histwrite_phy(nid_day,"iwp",itau_w,zx_tmp_fi2d)
     529c
     530cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1, meantaucld,zx_tmp_2d)
     531      CALL histwrite_phy(nid_day,"meantaucld",itau_w,meantaucld)
     532c
     533cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau,zx_tmp_3d)
     534      CALL histwrite_phy(nid_day,"cldtau",itau_w,cldtau)
     535c
     536cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldemi,zx_tmp_3d)
     537      CALL histwrite_phy(nid_day,"cldemi",itau_w,cldemi)
    599538c
    600539c
    601540cIM: 101003 : K/30min ==> K/s
    602541      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
    603       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    604       CALL histwrite(nid_day,"dtcon",itau_w,zx_tmp_3d,
    605      .                                   iim*jjmp1*klev,ndex3d)
     542cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     543      CALL histwrite_phy(nid_day,"dtcon",itau_w,zx_tmp_fi3d)
    606544c
    607545      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    608       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    609       CALL histwrite(nid_day,"dqcon",itau_w,zx_tmp_3d,
    610      .                                   iim*jjmp1*klev,ndex3d)
    611 c
    612       DO i=1, klon
    613        zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.)
    614       ENDDO
    615 c
    616       CALL gr_fi_ecrit(1,klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    617       CALL histwrite(nid_day,"rh2m",itau_w,zx_tmp_2d,
    618      .               iim*jjmp1,ndex2d)
    619 c
    620       CALL gr_fi_ecrit(1,klon,iim,jjmp1, qsat2m,zx_tmp_2d)
    621       CALL histwrite(nid_day,"qsat2m",itau_w,zx_tmp_2d,
    622      .               iim*jjmp1,ndex2d)
    623 c
    624       CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpot,zx_tmp_2d)
    625       CALL histwrite(nid_day,"tpot",itau_w,zx_tmp_2d,
    626      .               iim*jjmp1,ndex2d)
    627 c
    628       CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpote,zx_tmp_2d)
    629       CALL histwrite(nid_day,"tpote",itau_w,zx_tmp_2d,
    630      .               iim*jjmp1,ndex2d)
     546cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     547      CALL histwrite_phy(nid_day,"dqcon",itau_w,zx_tmp_fi3d)
     548c
     549      DO i=1, klon
     550       zx_tmp_2d(i)=MIN(100.,rh2m(i)*100.)
     551      ENDDO
     552c
     553cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1, zx_tmp_2d,zx_tmp_2d)
     554      CALL histwrite_phy(nid_day,"rh2m",itau_w,zx_tmp_2d)
     555c
     556cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1, qsat2m,zx_tmp_2d)
     557      CALL histwrite_phy(nid_day,"qsat2m",itau_w,qsat2m)
     558c
     559cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpot,zx_tmp_2d)
     560      CALL histwrite_phy(nid_day,"tpot",itau_w,tpot)
     561c
     562cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpote,zx_tmp_2d)
     563      CALL histwrite_phy(nid_day,"tpote",itau_w,tpote)
    631564c
    632565      ENDIF !lev_histday.GE.5
     
    636569c
    637570      if (ok_sync) then
     571c$OMP MASTER
    638572        call histsync(nid_day)
     573c$OMP END MASTER
    639574      endif
    640575
  • LMDZ4/trunk/libf/phylmd/write_histday_seri.h

    r644 r766  
    22c $Header$
    33c
     4      IF (monocpu) THEN
     5     
    46      IF (type_run.EQ."AMIP") THEN
    57c
     
    237239c
    238240      ENDIF !fin test sur type_run.EQ."AMIP"
     241     
     242      ENDIF  ! mono_cpu
  • LMDZ4/trunk/libf/phylmd/write_histhf.h

    r644 r766  
    1414      IF(lev_histhf.GE.1) THEN
    1515c
    16       CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d)
    17       CALL histwrite(nid_hf,"aireTER",itau_w,
    18      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     16cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d)
     17      CALL histwrite_phy(nid_hf,"aireTER",itau_w,paire_ter)
    1918c
    2019      DO i=1, klon
     
    2221      ENDDO
    2322c
    24       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    25       CALL histwrite(nid_hf,"contfracATM",itau_w,
    26      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    27 c
    28       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
    29       CALL histwrite(nid_hf,"contfracOR",itau_w,
    30      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    31 c
    32       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
    33       CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,
    34      .               ndex2d)
    35 c
    36       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
    37       CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,
    38      .               ndex2d)
     23cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     24      CALL histwrite_phy(nid_hf,"contfracATM",itau_w,zx_tmp_fi2d)
     25c
     26cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d)
     27      CALL histwrite_phy(nid_hf,"contfracOR",itau_w,
     28     .                   pctsrf_new(:,is_ter))
     29c
     30cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
     31      CALL histwrite_phy(nid_hf,"t2m",itau_w,zt2m)
     32c
     33cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
     34      CALL histwrite_phy(nid_hf,"q2m",itau_w,zq2m)
    3935c
    4036      DO i = 1, klon
    4137         zx_tmp_fi2d(i) = paprs(i,1)
    4238      ENDDO
    43       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    44       CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1,
    45      .               ndex2d)
     39cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     40      CALL histwrite_phy(nid_hf,"psol",itau_w,zx_tmp_fi2d)
    4641c
    4742      DO i = 1, klon
    4843         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    4944      ENDDO
    50       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    51       CALL histwrite(nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     45cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     46      CALL histwrite_phy(nid_hf,"precip",itau_w,zx_tmp_fi2d)
    5247c
    5348c ENSEMBLES BEG
    54       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    55       CALL histwrite(nid_hf,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    56 c
    57       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    58       CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    59 c
    60 c
    61       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    62       CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    63 c
    64       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
    65       CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     49cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
     50      CALL histwrite_phy(nid_hf,"tsol",itau_w,zxtsol)
     51c
     52cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     53      CALL histwrite_phy(nid_hf,"slp",itau_w,slp)
     54c
     55cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
     56      CALL histwrite_phy(nid_hf,"u10m",itau_w,zu10m)
     57c
     58cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
     59      CALL histwrite_phy(nid_hf,"v10m",itau_w,zv10m)
    6660c
    6761      DO i=1, klon
    6862       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    6963      ENDDO
    70       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    71       CALL histwrite(nid_hf,"wind10m",itau_w,zx_tmp_2d,
    72      $     iim*jjmp1,ndex2d)
     64cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     65      CALL histwrite_phy(nid_hf,"wind10m",itau_w,zx_tmp_fi2d)
    7366c
    7467      DO k=1, nlevSTD
     
    8578      IF(bb2.EQ."500") THEN
    8679c
    87       CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
    88       CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d,
    89      $       iim*jjmp1,ndex2d)
     80cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
     81      CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w, philevSTD(:,k))
    9082      ENDIF !bb2.EQ."500"
    9183      ENDDO
     
    10193cIM 140904 END
    10294cIM 140904   CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
    103       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    104       CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     95cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     96      CALL histwrite_phy(nid_hf,"cldt",itau_w,zx_tmp_fi2d)
    10597c
    10698      zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter)
    107       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    108       CALL histwrite(nid_hf,"SWnetOR",itau_w,
    109      $     zx_tmp_2d,iim*jjmp1,ndex2d)
     99cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     100      CALL histwrite_phy(nid_hf,"SWnetOR",itau_w, zx_tmp_fi2d)
    110101c
    111102      zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol(1:klon))
    112       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    113       CALL histwrite(nid_hf,"SWdownOR",itau_w,
    114      $     zx_tmp_2d,iim*jjmp1,ndex2d)
    115 c
    116       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    117       CALL histwrite(nid_hf,"LWdownOR",itau_w,zx_tmp_2d,iim*jjmp1,
    118      $     ndex2d)
     103cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     104      CALL histwrite_phy(nid_hf,"SWdownOR",itau_w, zx_tmp_fi2d)
     105c
     106cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     107      CALL histwrite_phy(nid_hf,"LWdownOR",itau_w,sollwdown)
    119108c
    120109c
     
    137126     $   bb2.EQ."500".OR.bb2.EQ."200") THEN
    138127c
    139       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
    140       CALL histwrite(nid_hf,"t"//bb2,itau_w,zx_tmp_2d,
    141      $       iim*jjmp1,ndex2d)
     128cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
     129      CALL histwrite_phy(nid_hf,"t"//bb2,itau_w, tlevSTD(:,k))
    142130c
    143131      IF(bb2.NE."500") THEN !bb2.NE."500"
    144132c
    145       CALL gr_fi_ecrit(1, klon,iim,jjmp1,philevSTD(:,k),zx_tmp_2d)
    146       CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d,
    147      $       iim*jjmp1,ndex2d)
     133cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,philevSTD(:,k),zx_tmp_2d)
     134      CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w,philevSTD(:,k))
    148135      ENDIF !bb2.NE."500"
    149136c
    150       CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
    151       CALL histwrite(nid_hf,"q"//bb2,itau_w,zx_tmp_2d,
    152      $       iim*jjmp1,ndex2d)
    153 c
    154       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
    155       CALL histwrite(nid_hf,"u"//bb2,itau_w,zx_tmp_2d,
    156      $       iim*jjmp1,ndex2d)
    157 c
    158       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
    159       CALL histwrite(nid_hf,"v"//bb2,itau_w,zx_tmp_2d,
    160      $       iim*jjmp1,ndex2d)
     137cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
     138      CALL histwrite_phy(nid_hf,"q"//bb2,itau_w, qlevSTD(:,k))
     139c
     140cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
     141      CALL histwrite_phy(nid_hf,"u"//bb2,itau_w,ulevSTD(:,k))
     142c
     143cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
     144      CALL histwrite_phy(nid_hf,"v"//bb2,itau_w, vlevSTD(:,k))
    161145c
    162146      ENDIF !bb2.EQ."850".OR.bb2.EQ."700"
     
    164148c
    165149      IF(1.EQ.0) THEN
    166       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    167       CALL histwrite(nid_hf,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    168 c
    169       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    170       CALL histwrite(nid_hf,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     150cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
     151      CALL histwrite_phy(nid_hf,"cdrm",itau_w,cdragm)
     152c
     153cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
     154      CALL histwrite_phy(nid_hf,"cdrh",itau_w,cdragh)
    171155      ENDIF !(1.EQ.0) THEN
    172156c
     
    199183        IF(bb2.EQ."850".or.bb2.EQ."200") THEN
    200184c
    201         CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
    202         CALL histwrite(nid_hf,"u"//bb2,itau_w,zx_tmp_2d,
    203      $       iim*jjmp1,ndex2d)
    204 c
    205         CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
    206         CALL histwrite(nid_hf,"v"//bb2,itau_w,zx_tmp_2d,
    207      $       iim*jjmp1,ndex2d)
     185cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
     186        CALL histwrite_phy(nid_hf,"u"//bb2,itau_w,ulevSTD(:,k))
     187c
     188cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
     189        CALL histwrite_phy(nid_hf,"v"//bb2,itau_w,vlevSTD(:,k))
    208190c
    209191        ENDIF !bb2.EQ."850".or.bb2.EQ."200"
     
    211193      ENDDO !nlevSTD
    212194c
    213       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    214       CALL histwrite(nid_hf,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     195cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     196      CALL histwrite_phy(nid_hf,"topl",itau_w,toplw)
    215197c
    216198      DO i = 1, klon
    217199         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    218200      ENDDO
    219       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    220       CALL histwrite(nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    221 c
    222       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    223       CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     201cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     202      CALL histwrite_phy(nid_hf,"precip",itau_w,zx_tmp_fi2d)
     203c
     204cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     205      CALL histwrite_phy(nid_hf,"slp",itau_w,slp)
    224206c
    225207cIM 280504 BEG
     
    241223        IF(bb2.EQ."850".or.bb2.EQ."500") THEN
    242224c
    243          CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
    244          CALL histwrite(nid_hf,"t"//bb2,itau_w,zx_tmp_2d,
    245      $       iim*jjmp1,ndex2d)
    246 c
    247          CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
    248          CALL histwrite(nid_hf,"q"//bb2,itau_w,zx_tmp_2d,
    249      $       iim*jjmp1,ndex2d)
     225cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
     226         CALL histwrite_phy(nid_hf,"t"//bb2,itau_w,tlevSTD(:,k))
     227c
     228cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d)
     229         CALL histwrite_phy(nid_hf,"q"//bb2,itau_w, qlevSTD(:,k))
    250230c
    251231        ENDIF !bb2.EQ."850".or.bb2.EQ."500"
     
    253233        IF(bb2.EQ."500") THEN
    254234c
    255          CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
    256          CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d,
    257      $       iim*jjmp1,ndex2d)
    258 c
    259         CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d)
    260         CALL histwrite(nid_hf,"w"//bb2,itau_w,zx_tmp_2d,
    261      $       iim*jjmp1,ndex2d)
     235cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d)
     236         CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w, philevSTD(:,k))
     237c
     238cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d)
     239        CALL histwrite_phy(nid_hf,"w"//bb2,itau_w, wlevSTD(:,k))
    262240c
    263241        ENDIF !bb2.EQ."500"
     
    265243        IF(bb3.EQ."50") THEN
    266244c
    267          CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
    268          CALL histwrite(nid_hf,"t"//bb3,itau_w,zx_tmp_2d,
    269      $       iim*jjmp1,ndex2d)
    270 c
    271         CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
    272         CALL histwrite(nid_hf,"u"//bb3,itau_w,zx_tmp_2d,
    273      $       iim*jjmp1,ndex2d)
    274 c
    275         CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
    276         CALL histwrite(nid_hf,"v"//bb3,itau_w,zx_tmp_2d,
    277      $       iim*jjmp1,ndex2d)
     245cym         CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)
     246         CALL histwrite_phy(nid_hf,"t"//bb3,itau_w, tlevSTD(:,k))
     247c
     248cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d)
     249        CALL histwrite_phy(nid_hf,"u"//bb3,itau_w, ulevSTD(:,k))
     250c
     251cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d)
     252        CALL histwrite_phy(nid_hf,"v"//bb3,itau_w, vlevSTD(:,k))
    278253c
    279254        ENDIF !bb3.EQ."50"
     
    281256       ENDDO !k=1, nlevSTD
    282257c
    283       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    284       CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    285 c
    286       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
    287       CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    288 c
    289       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
    290       CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,
    291      $               ndex2d)
    292 c
    293       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
    294       CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,
    295      $               ndex2d)
     258cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
     259      CALL histwrite_phy(nid_hf,"u10m",itau_w,zu10m)
     260c
     261cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
     262      CALL histwrite_phy(nid_hf,"v10m",itau_w,zv10m)
     263c
     264cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
     265      CALL histwrite_phy(nid_hf,"t2m",itau_w, zt2m)
     266c
     267cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
     268      CALL histwrite_phy(nid_hf,"q2m",itau_w,zq2m)
    296269c
    297270      DO i = 1, klon
    298271         zx_tmp_fi2d(i) = paprs(i,1)
    299272      ENDDO
    300       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    301       CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1,
    302      $               ndex2d)
     273cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     274      CALL histwrite_phy(nid_hf,"psol",itau_w,zx_tmp_fi2d)
    303275c
    304276cIM 140904 BEG
     
    308280cIM 140904 END
    309281cIM 140904   CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
    310       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    311       CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     282cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     283      CALL histwrite_phy(nid_hf,"cldt",itau_w,zx_tmp_fi2d)
    312284c
    313285      zx_tmp_fi2d(1 : klon) = zxfluxu(1 : klon, 1)
    314       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    315       CALL histwrite(nid_hf,"taux",itau_w,
    316      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     286cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     287      CALL histwrite_phy(nid_hf,"taux",itau_w,zx_tmp_fi2d)
    317288C
    318289      zx_tmp_fi2d(1 : klon) = zxfluxv(1 : klon, 1)
    319       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    320       CALL histwrite(nid_hf,"tauy",itau_w,
    321      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    322 c
    323       CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
    324       CALL histwrite(nid_hf,"prw",itau_w,zx_tmp_2d,
    325      $               iim*jjmp1,ndex2d)
     290cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     291      CALL histwrite_phy(nid_hf,"tauy",itau_w,zx_tmp_fi2d)
     292c
     293cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
     294      CALL histwrite_phy(nid_hf,"prw",itau_w,prw)
    326295c
    327296      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
    328       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    329       CALL histwrite(nid_hf,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    330 c
    331       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
    332       CALL histwrite(nid_hf,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     297cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     298      CALL histwrite_phy(nid_hf,"sens",itau_w,zx_tmp_fi2d)
     299c
     300cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
     301      CALL histwrite_phy(nid_hf,"flat",itau_w,zxfluxlat)
    333302c
    334303c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
    335 c     CALL histwrite(nid_hf,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
    336 c    $               ndex2d)
     304c     CALL histwrite_phy(nid_hf,"snow_mass",itau_w,zsnow_mass)
    337305c
    338306      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
    339       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    340       CALL histwrite(nid_hf, "SWdnSFC",itau_w,zx_tmp_2d,
    341      $                               iim*jjmp1,ndex2d)
     307cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     308      CALL histwrite_phy(nid_hf, "SWdnSFC",itau_w,zx_tmp_fi2d)
    342309c
    343310      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
    344       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    345       CALL histwrite(nid_hf, "SWupSFC",itau_w,zx_tmp_2d,
    346      $                               iim*jjmp1,ndex2d)
    347 c
    348       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    349       CALL histwrite(nid_hf,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    350      $               ndex2d)
     311cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     312      CALL histwrite_phy(nid_hf, "SWupSFC",itau_w,zx_tmp_fi2d)
     313c
     314cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     315      CALL histwrite_phy(nid_hf,"LWdnSFC",itau_w,sollwdown)
    351316c
    352317cIM 090904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
    353318cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
    354319      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    355       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    356       CALL histwrite(nid_hf,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    357      $               ndex2d)                   
     320cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     321      CALL histwrite_phy(nid_hf,"LWupSFC",itau_w,zx_tmp_fi2d)                   
    358322c
    359323      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
    360       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    361       CALL histwrite(nid_hf, "SWdnTOA",itau_w,zx_tmp_2d,
    362      $                               iim*jjmp1,ndex2d)
     324cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     325      CALL histwrite_phy(nid_hf, "SWdnTOA",itau_w,zx_tmp_fi2d)
    363326c
    364327      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
    365       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    366       CALL histwrite(nid_hf, "SWupTOA",itau_w,zx_tmp_2d,
    367      $                               iim*jjmp1,ndex2d)
    368 c
    369       CALL gr_fi_ecrit(nbteta,klon,iim,jjmp1,PVteta,zx_tmp_3dte)
     328cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     329      CALL histwrite_phy(nid_hf, "SWupTOA",itau_w,zx_tmp_fi2d)
     330c
     331      IF (monocpu) THEN
     332cym      CALL gr_fi_ecrit(nbteta,klon,iim,jjmp1,PVteta,zx_tmp_3dte)
    370333      DO k=1, nbteta
    371        CALL histwrite(nid_hf,"PV"//ctetaSTD(k),
    372      .      itau_w,zx_tmp_3dte(:,:,k),iim*jjmp1,ndex2d)
     334       CALL histwrite_phy(nid_hf,"PV"//ctetaSTD(k),
     335     .      itau_w,PVteta)
    373336      ENDDO !k=1, nbteta
     337      ENDIF
    374338c
    375339c
     
    384348c
    385349      IF (ok_sync) THEN
     350c$OMP MASTER
    386351        call histsync(nid_hf)
     352c$OMP END MASTER
    387353      ENDIF
    388354
  • LMDZ4/trunk/libf/phylmd/write_histhf3d.h

    r644 r766  
     1
    12c
    23c $Header$
     
    1011c Champs 3D:
    1112c
    12       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    13       CALL histwrite(nid_hf3d,"temp",itau_w,zx_tmp_3d,
    14      .                                   iim*jjmp1*klev,ndex3d)
     13cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     14      CALL histwrite_phy(nid_hf3d,"temp",itau_w,t_seri)
    1515c
    16       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
    17       CALL histwrite(nid_hf3d,"ovap",itau_w,zx_tmp_3d,
    18      .                                   iim*jjmp1*klev,ndex3d)
     16cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     17      CALL histwrite_phy(nid_hf3d,"ovap",itau_w,qx(:,:,ivap))
    1918c
    20       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    21       CALL histwrite(nid_hf3d,"vitu",itau_w,zx_tmp_3d,
    22      .                                   iim*jjmp1*klev,ndex3d)
     19cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     20      CALL histwrite_phy(nid_hf3d,"vitu",itau_w,u_seri)
    2321c
    24       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    25       CALL histwrite(nid_hf3d,"vitv",itau_w,zx_tmp_3d,
    26      .                                   iim*jjmp1*klev,ndex3d)
    27 c
     22cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     23      CALL histwrite_phy(nid_hf3d,"vitv",itau_w,v_seri)
    2824      if (ok_sync) then
     25c$OMP MASTER
    2926        call histsync(nid_hf3d)
     27c$OMP END MASTER     
    3028      endif
  • LMDZ4/trunk/libf/phylmd/write_histins.h

    r684 r766  
    1111      itau_w = itau_phy + itap
    1212
    13       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    14       CALL histwrite(nid_ins,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    15 c
    16       CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    17       CALL histwrite(nid_ins,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     13cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
     14      CALL histwrite_phy(nid_ins,"phis",itau_w,pphis)
     15c
     16cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
     17      CALL histwrite_phy(nid_ins,"aire",itau_w,airephy)
    1818
    1919      DO i = 1, klon
    2020         zx_tmp_fi2d(i) = paprs(i,1)
    2121      ENDDO
    22       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    23       CALL histwrite(nid_ins,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     22cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     23      CALL histwrite_phy(nid_ins,"psol",itau_w,zx_tmp_fi2d)
    2424c
    2525      DO i = 1, klon
    2626         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    2727      ENDDO
    28       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    29       CALL histwrite(nid_ins,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     28cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     29      CALL histwrite_phy(nid_ins,"precip",itau_w,zx_tmp_fi2d)
    3030c
    3131      DO i = 1, klon
    3232         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
    3333      ENDDO
    34       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    35       CALL histwrite(nid_ins,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     34cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)   
     35      CALL histwrite_phy(nid_ins,"plul",itau_w,zx_tmp_fi2d)
    3636c
    3737      DO i = 1, klon
    3838         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
    3939      ENDDO
    40       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    41       CALL histwrite(nid_ins,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    42 
    43       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    44       CALL histwrite(nid_ins,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     40cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     41      CALL histwrite_phy(nid_ins,"pluc",itau_w,zx_tmp_fi2d)
     42
     43cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
     44      CALL histwrite_phy(nid_ins,"tsol",itau_w,zxtsol)
    4545cccIM
    46       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m, zx_tmp_2d)
    47       CALL histwrite(nid_ins,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    48 c
    49       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m, zx_tmp_2d)
    50       CALL histwrite(nid_ins,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    51 c
    52       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m, zx_tmp_2d)
    53       CALL histwrite(nid_ins,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    54 C
    55       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m, zx_tmp_2d)
    56       CALL histwrite(nid_ins,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    57 c
    58       CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
    59       CALL histwrite(nid_ins,"snow",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    60 
    61       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    62       CALL histwrite(nid_ins,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    63 c
    64       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    65       CALL histwrite(nid_ins,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    66 c
    67       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    68       CALL histwrite(nid_ins,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    69 c
    70       CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
    71       CALL histwrite(nid_ins,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    72 c
    73       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    74       CALL histwrite(nid_ins,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    75 c
    76       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    77       CALL histwrite(nid_ins,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    78 c
    79       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    80       CALL histwrite(nid_ins,"solldown",itau_w,zx_tmp_2d,iim*jjmp1,
    81      .                ndex2d)
    82 c
    83       CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
    84       CALL histwrite(nid_ins,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     46cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m, zx_tmp_2d)
     47      CALL histwrite_phy(nid_ins,"t2m",itau_w,zt2m)
     48c
     49cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m, zx_tmp_2d)
     50      CALL histwrite_phy(nid_ins,"q2m",itau_w,zq2m)
     51c
     52cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m, zx_tmp_2d)
     53      CALL histwrite_phy(nid_ins,"u10m",itau_w,zu10m)
     54C
     55cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m, zx_tmp_2d)
     56      CALL histwrite_phy(nid_ins,"v10m",itau_w,zv10m)
     57c
     58cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
     59      CALL histwrite_phy(nid_ins,"snow",itau_w,snow_fall)
     60
     61cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
     62      CALL histwrite_phy(nid_ins,"cdrm",itau_w,cdragm)
     63c
     64cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
     65      CALL histwrite_phy(nid_ins,"cdrh",itau_w,cdragh)
     66c
     67cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     68      CALL histwrite_phy(nid_ins,"topl",itau_w,toplw)
     69c
     70cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
     71      CALL histwrite_phy(nid_ins,"evap",itau_w,evap)
     72c
     73cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
     74      CALL histwrite_phy(nid_ins,"sols",itau_w,solsw)
     75c
     76cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
     77      CALL histwrite_phy(nid_ins,"soll",itau_w,sollw)
     78c
     79cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     80      CALL histwrite_phy(nid_ins,"solldown",itau_w,sollwdown)
     81c
     82cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
     83      CALL histwrite_phy(nid_ins,"bils",itau_w,bils)
    8584c
    8685      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
    8786c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d)
    88       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    89       CALL histwrite(nid_ins,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    90 c
    91       CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
    92       CALL histwrite(nid_ins,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    93 c
    94       CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_oce),zx_tmp_2d)
    95       CALL histwrite(nid_ins,"dtsvdfo",itau_w,zx_tmp_2d,iim*jjmp1,
    96      .               ndex2d)
    97 c
    98       CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_ter),zx_tmp_2d)
    99       CALL histwrite(nid_ins,"dtsvdft",itau_w,zx_tmp_2d,iim*jjmp1,
    100      .               ndex2d)
    101 c
    102       CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_lic),zx_tmp_2d)
    103       CALL histwrite(nid_ins,"dtsvdfg",itau_w,zx_tmp_2d,iim*jjmp1,
    104      .               ndex2d)
    105 c
    106       CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_sic),zx_tmp_2d)
    107       CALL histwrite(nid_ins,"dtsvdfi",itau_w,zx_tmp_2d,iim*jjmp1,
    108      .               ndex2d)
     87cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     88      CALL histwrite_phy(nid_ins,"sens",itau_w,zx_tmp_fi2d)
     89c
     90cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
     91      CALL histwrite_phy(nid_ins,"fder",itau_w,fder)
     92c
     93cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_oce),zx_tmp_2d)
     94      CALL histwrite_phy(nid_ins,"dtsvdfo",itau_w,d_ts(:,is_oce))
     95c
     96cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_ter),zx_tmp_2d)
     97      CALL histwrite_phy(nid_ins,"dtsvdft",itau_w,d_ts(:,is_ter))
     98c
     99cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_lic),zx_tmp_2d)
     100      CALL histwrite_phy(nid_ins,"dtsvdfg",itau_w, d_ts(:,is_lic))
     101c
     102cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_sic),zx_tmp_2d)
     103      CALL histwrite_phy(nid_ins,"dtsvdfi",itau_w,d_ts(:,is_sic))
    109104
    110105      DO nsrf = 1, nbsrf
    111106CXXX
    112107        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    113         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    114         CALL histwrite(nid_ins,"pourc_"//clnsurf(nsrf),itau_w,
    115      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     108cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     109        CALL histwrite_phy(nid_ins,"pourc_"//clnsurf(nsrf),itau_w,
     110     $                zx_tmp_fi2d)
    116111C
    117112        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    118         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    119         CALL histwrite(nid_ins,"fract_"//clnsurf(nsrf),itau_w,
    120      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     113cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     114        CALL histwrite_phy(nid_ins,"fract_"//clnsurf(nsrf),itau_w,
     115     $      zx_tmp_fi2d)
    121116C
    122117        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    123         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    124         CALL histwrite(nid_ins,"sens_"//clnsurf(nsrf),itau_w,
    125      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     118cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     119        CALL histwrite_phy(nid_ins,"sens_"//clnsurf(nsrf),itau_w,
     120     $      zx_tmp_fi2d)
    126121C
    127122        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    128         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    129         CALL histwrite(nid_ins,"lat_"//clnsurf(nsrf),itau_w,
    130      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     123cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     124        CALL histwrite_phy(nid_ins,"lat_"//clnsurf(nsrf),itau_w,
     125     $      zx_tmp_fi2d)
    131126C
    132127        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    133         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    134         CALL histwrite(nid_ins,"tsol_"//clnsurf(nsrf),itau_w,
    135      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     128cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     129        CALL histwrite_phy(nid_ins,"tsol_"//clnsurf(nsrf),itau_w,
     130     $      zx_tmp_fi2d)
    136131C
    137132        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    138         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    139         CALL histwrite(nid_ins,"taux_"//clnsurf(nsrf),itau_w,
    140      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     133cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     134        CALL histwrite_phy(nid_ins,"taux_"//clnsurf(nsrf),itau_w,
     135     $      zx_tmp_fi2d)
    141136C     
    142137        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    143         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    144         CALL histwrite(nid_ins,"tauy_"//clnsurf(nsrf),itau_w,
    145      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     138cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     139        CALL histwrite_phy(nid_ins,"tauy_"//clnsurf(nsrf),itau_w,
     140     $     zx_tmp_fi2d)
    146141C
    147142        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
    148         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    149         CALL histwrite(nid_ins,"rugs_"//clnsurf(nsrf),itau_w,
    150      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     143cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     144        CALL histwrite_phy(nid_ins,"rugs_"//clnsurf(nsrf),itau_w,
     145     $      zx_tmp_fi2d)
    151146C
    152147        zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf)
    153         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    154         CALL histwrite(nid_ins,"albe_"//clnsurf(nsrf),itau_w,
    155      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     148cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     149        CALL histwrite_phy(nid_ins,"albe_"//clnsurf(nsrf),itau_w,
     150     $      zx_tmp_fi2d)
    156151C
    157152      END DO 
    158       CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
    159       CALL histwrite(nid_ins,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    160       CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
    161       CALL histwrite(nid_ins,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     153cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
     154      CALL histwrite_phy(nid_ins,"albs",itau_w,albsol)
     155     
     156cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
     157      CALL histwrite_phy(nid_ins,"albslw",itau_w,albsollw)
     158
    162159c
    163160cIM: 140404   CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d)
    164161c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
    165 c     CALL histwrite(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     162c     CALL histwrite_phy(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
    166163c    .               ndex2d)
    167164c
    168       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d)
    169       CALL histwrite(nid_ins,"rugs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     165cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d)
     166      CALL histwrite_phy(nid_ins,"rugs",itau_w,zxrugs)
    170167c
    171168cIM cf. AM 081204 BEG
     
    174171c
    175172c
    176       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
    177       CALL histwrite(nid_ins,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    178 c
    179       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
    180       CALL histwrite(nid_ins,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    181 c
    182       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
    183       CALL histwrite(nid_ins,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    184 c
    185       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
    186       CALL histwrite(nid_ins,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1,
    187      .               ndex2d)
    188 c
    189       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
    190       CALL histwrite(nid_ins,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1,
    191      .               ndex2d)
    192 c
    193       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
    194       CALL histwrite(nid_ins,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1,
    195      .               ndex2d)
    196 c
    197       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
    198       CALL histwrite(nid_ins,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1,
    199      .               ndex2d)
    200 c
    201       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
    202       CALL histwrite(nid_ins,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1,
    203      .               ndex2d)
    204 c
    205       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
    206       CALL histwrite(nid_ins,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1,
    207      .               ndex2d)
    208 c
    209       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
    210       CALL histwrite(nid_ins,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1,
    211      .               ndex2d)
     173cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
     174      CALL histwrite_phy(nid_ins,"s_pblh",itau_w,s_pblh)
     175c
     176cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
     177      CALL histwrite_phy(nid_ins,"s_pblt",itau_w,s_pblt)
     178c
     179cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
     180      CALL histwrite_phy(nid_ins,"s_lcl",itau_w,s_lcl)
     181c
     182cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
     183      CALL histwrite_phy(nid_ins,"s_capCL",itau_w,s_capCL)
     184c
     185cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
     186      CALL histwrite_phy(nid_ins,"s_oliqCL",itau_w,s_oliqCL)
     187c
     188cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
     189      CALL histwrite_phy(nid_ins,"s_cteiCL",itau_w,s_cteiCL)
     190c
     191cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
     192      CALL histwrite_phy(nid_ins,"s_therm",itau_w,s_therm)
     193c
     194cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
     195      CALL histwrite_phy(nid_ins,"s_trmb1",itau_w,s_trmb1)
     196c
     197cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
     198      CALL histwrite_phy(nid_ins,"s_trmb2",itau_w,s_trmb2)
     199c
     200cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
     201      CALL histwrite_phy(nid_ins,"s_trmb3",itau_w,s_trmb3)
    212202c
    213203cIM cf. AM 081204 END
     
    215205c Champs 3D:
    216206c
    217       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    218       CALL histwrite(nid_ins,"temp",itau_w,zx_tmp_3d,
    219      .                                   iim*jjmp1*klev,ndex3d)
    220 c
    221       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    222       CALL histwrite(nid_ins,"vitu",itau_w,zx_tmp_3d,
    223      .                                   iim*jjmp1*klev,ndex3d)
    224 c
    225       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    226       CALL histwrite(nid_ins,"vitv",itau_w,zx_tmp_3d,
    227      .                                   iim*jjmp1*klev,ndex3d)
    228 c
    229       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    230       CALL histwrite(nid_ins,"geop",itau_w,zx_tmp_3d,
    231      .                                   iim*jjmp1*klev,ndex3d)
    232 c
    233       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    234       CALL histwrite(nid_ins,"pres",itau_w,zx_tmp_3d,
    235      .                                   iim*jjmp1*klev,ndex3d)
    236 c
    237       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
    238       CALL histwrite(nid_ins,"dtvdf",itau_w,zx_tmp_3d,
    239      .                                   iim*jjmp1*klev,ndex3d)
    240 c
    241       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
    242       CALL histwrite(nid_ins,"dqvdf",itau_w,zx_tmp_3d,
    243      .                                   iim*jjmp1*klev,ndex3d)
     207cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     208      CALL histwrite_phy(nid_ins,"temp",itau_w,t_seri)
     209c
     210cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     211      CALL histwrite_phy(nid_ins,"vitu",itau_w,u_seri)
     212c
     213cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     214      CALL histwrite_phy(nid_ins,"vitv",itau_w,v_seri)
     215c
     216cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     217      CALL histwrite_phy(nid_ins,"geop",itau_w,zphi)
     218c
     219cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     220      CALL histwrite_phy(nid_ins,"pres",itau_w,pplay)
     221c
     222cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d)
     223      CALL histwrite_phy(nid_ins,"dtvdf",itau_w,d_t_vdf)
     224c
     225cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d)
     226      CALL histwrite_phy(nid_ins,"dqvdf",itau_w,d_q_vdf)
    244227
    245228c
    246229      if (ok_sync) then
     230c$OMP MASTER
    247231        call histsync(nid_ins)
     232c$OMP END MASTER
    248233      endif
    249234      ENDIF
  • LMDZ4/trunk/libf/phylmd/write_histmth.h

    r684 r766  
    1616c Champs 2D:
    1717c
    18       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    19       CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     18cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
     19      CALL histwrite_phy(nid_mth,"phis",itau_w,pphis)
    2020C
    2121cIM 310804   CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    22       CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    23       CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     22cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
     23      CALL histwrite_phy(nid_mth,"aire",itau_w,airephy)
    2424c
    2525      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100.
    26       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    27       CALL histwrite(nid_mth,"pourc_"//clnsurf(is_ter),itau_w,
    28      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     26cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     27      CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_ter),itau_w,
     28     $                   zx_tmp_fi2d)
    2929c
    3030      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)
    31       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    32       CALL histwrite(nid_mth,"fract_"//clnsurf(is_ter),itau_w,
    33      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    34 c
    35       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    36       CALL histwrite(nid_mth,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     31cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     32      CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_ter),itau_w,
     33     $                   zx_tmp_fi2d)
     34c
     35cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     36      CALL histwrite_phy(nid_mth,"slp",itau_w,slp)
    3737
    38       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    39       CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    40 c
    41       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
    42       CALL histwrite(nid_mth,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     38cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
     39      CALL histwrite_phy(nid_mth,"tsol",itau_w,zxtsol)
     40c
     41cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
     42      CALL histwrite_phy(nid_mth,"t2m",itau_w,zt2m)
    4343c
    4444c ENSEMBLES BEG
    45       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    46       CALL histwrite(nid_mth,"t2m_min",itau_w,zx_tmp_2d,
    47      .               iim*jjmp1,ndex2d)
    48 c
    49       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    50       CALL histwrite(nid_mth,"t2m_max",itau_w,zx_tmp_2d,
    51      .               iim*jjmp1,ndex2d)
     45cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     46      CALL histwrite_phy(nid_mth,"t2m_min",itau_w,zt2m)
     47c
     48cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     49      CALL histwrite_phy(nid_mth,"t2m_max",itau_w,zt2m)
    5250c
    5351c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsoil(:,1,is_ter),zx_tmp_2d)
    5452c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsol(:,is_ter),zx_tmp_2d)
    5553c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ztsol,zx_tmp_2d)
    56 c     CALL histwrite(nid_mth,"tsoil",itau_w,zx_tmp_2d,
     54c     CALL histwrite_phy(nid_mth,"tsoil",itau_w,zx_tmp_2d,
    5755c    .               iim*jjmp1,ndex2d)
    5856c
     
    6058       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    6159      ENDDO
    62       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    63       CALL histwrite(nid_mth,"wind10m",itau_w,zx_tmp_2d,
    64      $     iim*jjmp1,ndex2d)
     60cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     61      CALL histwrite_phy(nid_mth,"wind10m",itau_w,zx_tmp_fi2d)
    6562c
    6663      DO i = 1, klon
    6764         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
    6865      ENDDO
    69       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    70       CALL histwrite(nid_mth,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     66cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     67      CALL histwrite_phy(nid_mth,"sicf",itau_w,zx_tmp_fi2d)
    7168c
    7269c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    73 c     CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
     70c     CALL histwrite_phy(nid_mth,"temp",itau_w,zx_tmp_3d,
    7471c    .                                   iim*jjmp1*klev,ndex3d)
    7572c
    7673c ENSEMBLES END
    7774c
    78       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
    79       CALL histwrite(nid_mth,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    80 c
    81       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    82       CALL histwrite(nid_mth,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    83 C
    84       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
    85       CALL histwrite(nid_mth,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     75cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
     76      CALL histwrite_phy(nid_mth,"q2m",itau_w,zq2m)
     77c
     78cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
     79      CALL histwrite_phy(nid_mth,"u10m",itau_w,zu10m)
     80C
     81cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
     82      CALL histwrite_phy(nid_mth,"v10m",itau_w,zv10m)
    8683C
    8784      DO i = 1, klon
    8885         zx_tmp_fi2d(i) = paprs(i,1)
    8986      ENDDO
    90       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    91       CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    92 c
    93       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)
    94       CALL histwrite(nid_mth,"qsurf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     87cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     88      CALL histwrite_phy(nid_mth,"psol",itau_w,zx_tmp_fi2d)
     89c
     90cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)
     91      CALL histwrite_phy(nid_mth,"qsurf",itau_w,zxqsurf)
    9592c
    9693      if (.not. ok_veget) then
    97           CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d)
    98           CALL histwrite(nid_mth,"qsol",itau_w,zx_tmp_2d,iim*jjmp1
    99      $        ,ndex2d)
     94cym          CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d)
     95          CALL histwrite_phy(nid_mth,"qsol",itau_w,qsol)
    10096      endif
    10197c
     
    10399         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    104100      ENDDO
    105       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    106       CALL histwrite(nid_mth,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    107 c
    108       CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d)
    109       CALL histwrite(nid_mth,"ndayrain",itau_w,zx_tmp_2d,
    110      $               iim*jjmp1,ndex2d)
     101cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     102      CALL histwrite_phy(nid_mth,"precip",itau_w,zx_tmp_fi2d)
     103c
     104cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d)
     105      CALL histwrite_phy(nid_mth,"ndayrain",itau_w,nday_rain)
    111106c
    112107      DO i = 1, klon
    113108         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
    114109      ENDDO
    115       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    116       CALL histwrite(nid_mth,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     110cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     111      CALL histwrite_phy(nid_mth,"plul",itau_w,zx_tmp_fi2d)
    117112c
    118113      DO i = 1, klon
    119114         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
    120115      ENDDO
    121       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    122       CALL histwrite(nid_mth,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    123 c
    124       CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
    125       CALL histwrite(nid_mth,"snow",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     116cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     117      CALL histwrite_phy(nid_mth,"pluc",itau_w,zx_tmp_fi2d)
     118c
     119cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
     120      CALL histwrite_phy(nid_mth,"snow",itau_w,snow_fall)
    126121c
    127122c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
     
    129124c    .               ndex2d)
    130125c
    131       CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
    132       CALL histwrite(nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    133 c
    134       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
    135       CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    136 c
    137       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
    138       CALL histwrite(nid_mth,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    139 c
    140       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    141       CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    142 c
    143       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
    144       CALL histwrite(nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     126cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
     127      CALL histwrite_phy(nid_mth,"evap",itau_w,evap)
     128c
     129cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
     130      CALL histwrite_phy(nid_mth,"tops",itau_w,topsw)
     131c
     132cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
     133      CALL histwrite_phy(nid_mth,"tops0",itau_w,topsw0)
     134c
     135cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     136      CALL histwrite_phy(nid_mth,"topl",itau_w,toplw)
     137c
     138cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
     139      CALL histwrite_phy(nid_mth,"topl0",itau_w,toplw0)
    145140c
    146141      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
    147       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    148       CALL histwrite(nid_mth, "SWupTOA",itau_w,zx_tmp_2d,
    149      .                               iim*jjmp1,ndex2d)
     142cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     143      CALL histwrite_phy(nid_mth, "SWupTOA",itau_w,zx_tmp_fi2d)
     144c
    150145c
    151146      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
    152       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    153       CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d,
    154      .                               iim*jjmp1,ndex2d)
     147cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     148      CALL histwrite_phy(nid_mth, "SWupTOAclr",itau_w,zx_tmp_fi2d)
    155149c
    156150      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
    157       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    158       CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d,
    159      .                               iim*jjmp1,ndex2d)
     151cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     152      CALL histwrite_phy(nid_mth, "SWdnTOA",itau_w,zx_tmp_fi2d)
    160153c
    161154      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
    162       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    163       CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d,
    164      .                               iim*jjmp1,ndex2d)
    165 c
    166       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d)
    167       CALL histwrite(nid_mth,"SWup200",itau_w,zx_tmp_2d,
    168      $     iim*jjmp1,ndex2d)
    169 c
    170       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d)
    171       CALL histwrite(nid_mth,"SWup200clr",itau_w,zx_tmp_2d,
    172      $     iim*jjmp1,ndex2d)
    173 c
    174       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d)
    175       CALL histwrite(nid_mth,"SWdn200",itau_w,zx_tmp_2d,
    176      $     iim*jjmp1,ndex2d)
    177 c
    178       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d)
    179       CALL histwrite(nid_mth,"SWdn200clr",itau_w,zx_tmp_2d,
    180      $     iim*jjmp1,ndex2d)
    181 c
    182       CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d)
    183       CALL histwrite(nid_mth,"LWup200",itau_w,zx_tmp_2d,
    184      $     iim*jjmp1,ndex2d)
    185 c
    186       CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d)
    187       CALL histwrite(nid_mth,"LWup200clr",itau_w,zx_tmp_2d,
    188      $     iim*jjmp1,ndex2d)
     155cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     156      CALL histwrite_phy(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_fi2d)
     157c
     158cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d)
     159      CALL histwrite_phy(nid_mth,"SWup200",itau_w,SWup200)
     160c
     161cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d)
     162      CALL histwrite_phy(nid_mth,"SWup200clr",itau_w,SWup200clr)
     163c
     164cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d)
     165      CALL histwrite_phy(nid_mth,"SWdn200",itau_w,SWdn200)
     166c
     167cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d)
     168      CALL histwrite_phy(nid_mth,"SWdn200clr",itau_w,SWdn200clr)
     169c
     170cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d)
     171      CALL histwrite_phy(nid_mth,"LWup200",itau_w,LWup200)
     172c
     173cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d)
     174      CALL histwrite_phy(nid_mth,"LWup200clr",itau_w,LWup200clr)
    189175c
    190176      zx_tmp_fi2d(1:klon)=-1*LWdn200(1:klon)
    191       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    192       CALL histwrite(nid_mth,"LWdn200",itau_w,zx_tmp_2d,
    193      $     iim*jjmp1,ndex2d)
     177cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     178      CALL histwrite_phy(nid_mth,"LWdn200",itau_w,zx_tmp_fi2d)
    194179c
    195180      zx_tmp_fi2d(1:klon)=-1*LWdn200clr(1:klon)
    196       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    197       CALL histwrite(nid_mth,"LWdn200clr",itau_w,zx_tmp_2d,
    198      $     iim*jjmp1,ndex2d)
     181cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     182      CALL histwrite_phy(nid_mth,"LWdn200clr",itau_w,zx_tmp_fi2d)
    199183c
    200184c200 END
    201       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    202       CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    203 c
    204       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
    205       CALL histwrite(nid_mth,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    206 c
    207       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    208       CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    209 c
    210       CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)
    211       CALL histwrite(nid_mth,"radsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    212 c
    213       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
    214       CALL histwrite(nid_mth,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     185cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
     186      CALL histwrite_phy(nid_mth,"sols",itau_w,solsw)
     187c
     188cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
     189      CALL histwrite_phy(nid_mth,"sols0",itau_w,solsw0)
     190c
     191cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
     192      CALL histwrite_phy(nid_mth,"soll",itau_w,sollw)
     193c
     194cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)
     195      CALL histwrite_phy(nid_mth,"radsol",itau_w,radsol)
     196c
     197cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
     198      CALL histwrite_phy(nid_mth,"soll0",itau_w,sollw0)
    215199c
    216200c      zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1)
    217201      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
    218       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    219       CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d,
    220      .                               iim*jjmp1,ndex2d)
     202cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     203      CALL histwrite_phy(nid_mth, "SWupSFC",itau_w,zx_tmp_fi2d)
    221204c
    222205c      zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1)
    223206      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
    224       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    225       CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d,
    226      .                               iim*jjmp1,ndex2d)
     207cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     208      CALL histwrite_phy(nid_mth, "SWupSFCclr",itau_w,zx_tmp_fi2d)
    227209c
    228210c      zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1)
    229211      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
    230       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    231       CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d,
    232      .                               iim*jjmp1,ndex2d)
     212cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     213      CALL histwrite_phy(nid_mth, "SWdnSFC",itau_w,zx_tmp_fi2d)
    233214c
    234215c      zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1)
    235216      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
    236       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    237       CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d,
    238      .                               iim*jjmp1,ndex2d)
     217cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     218      CALL histwrite_phy(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_fi2d)
    239219c
    240220cIM 080904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
    241221cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
    242222      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    243       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    244       CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    245      .               ndex2d)
     223cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     224      CALL histwrite_phy(nid_mth,"LWupSFC",itau_w,zx_tmp_fi2d)
    246225c
    247226      DO i=1, klon
     
    252231cIM 130904   zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon)
    253232      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
    254       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    255       CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1,
    256      .               ndex2d)
    257 c
    258       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    259       CALL histwrite(nid_mth,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    260      .               ndex2d)
     233cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     234      CALL histwrite_phy(nid_mth,"LWupSFCclr",itau_w,zx_tmp_fi2d)
     235c
     236cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     237      CALL histwrite_phy(nid_mth,"LWdnSFC",itau_w,sollwdown)
    261238c
    262239c     DO i=1, klon
     
    265242c     ENDDO !i=1, klon
    266243c
    267       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d)
    268       CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d,
    269      $               iim*jjmp1,ndex2d)
    270 c
    271       CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
    272       CALL histwrite(nid_mth,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     244cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d)
     245      CALL histwrite_phy(nid_mth,"LWdnSFCclr",itau_w,sollwdownclr)
     246c
     247cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
     248      CALL histwrite_phy(nid_mth,"bils",itau_w,bils)
    273249c
    274250      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
    275251c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d)
    276       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    277       CALL histwrite(nid_mth,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    278 c
    279       CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
    280       CALL histwrite(nid_mth,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     252cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     253      CALL histwrite_phy(nid_mth,"sens",itau_w,zx_tmp_fi2d)
     254c
     255cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
     256      CALL histwrite_phy(nid_mth,"fder",itau_w,fder)
    281257c
    282258c
     
    294270c
    295271c
    296        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d)
    297        CALL histwrite(nid_mth,"ffonte",itau_w,zx_tmp_2d,iim*jjmp1,
    298      $                ndex2d)
    299 c
    300        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d)
    301        CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1,
    302      $                ndex2d)
    303 c
     272cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d)
     273       CALL histwrite_phy(nid_mth,"ffonte",itau_w,zxffonte)
     274c
     275cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d)
     276       CALL histwrite_phy(nid_mth,"fqcalving",itau_w,zxfqcalving)
     277
     278cym       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqfonte,zx_tmp_2d)
     279       CALL histwrite_phy(nid_mth,"fqfonte",itau_w,zxfqfonte)
     280
    304281       DO nsrf = 1, nbsrf
    305282        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    306         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    307         CALL histwrite(nid_mth,"taux_"//clnsurf(nsrf),itau_w,
    308      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     283cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     284        CALL histwrite_phy(nid_mth,"taux_"//clnsurf(nsrf),itau_w,
     285     $      zx_tmp_fi2d)
    309286C     
    310287        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    311         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    312         CALL histwrite(nid_mth,"tauy_"//clnsurf(nsrf),itau_w,
    313      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     288cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     289        CALL histwrite_phy(nid_mth,"tauy_"//clnsurf(nsrf),itau_w,
     290     $      zx_tmp_fi2d)
    314291       ENDDO
    315292c
     
    318295       IF(nsrf.GT.2) THEN
    319296        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    320         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    321         CALL histwrite(nid_mth,"pourc_"//clnsurf(nsrf),itau_w,
    322      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     297cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     298        CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(nsrf),itau_w,
     299     &                     zx_tmp_fi2d)
    323300c
    324301        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    325         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    326         CALL histwrite(nid_mth,"fract_"//clnsurf(nsrf),itau_w,
    327      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     302cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     303        CALL histwrite_phy(nid_mth,"fract_"//clnsurf(nsrf),itau_w,
     304     $      zx_tmp_fi2d)
    328305       ENDIF !nsrf.GT.2
    329306C
    330307        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    331         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    332         CALL histwrite(nid_mth,"tsol_"//clnsurf(nsrf),itau_w,
    333      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     308cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     309        CALL histwrite_phy(nid_mth,"tsol_"//clnsurf(nsrf),itau_w,
     310     $      zx_tmp_fi2d)
    334311C
    335312        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    336         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    337         CALL histwrite(nid_mth,"sens_"//clnsurf(nsrf),itau_w,
    338      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     313cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     314        CALL histwrite_phy(nid_mth,"sens_"//clnsurf(nsrf),itau_w,
     315     $      zx_tmp_fi2d)
    339316C
    340317        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    341         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    342         CALL histwrite(nid_mth,"lat_"//clnsurf(nsrf),itau_w,
    343      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     318cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     319        CALL histwrite_phy(nid_mth,"lat_"//clnsurf(nsrf),itau_w,
     320     $      zx_tmp_fi2d)
    344321C
    345322        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
    346         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    347         CALL histwrite(nid_mth,"flw_"//clnsurf(nsrf),itau_w,
    348      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     323cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     324        CALL histwrite_phy(nid_mth,"flw_"//clnsurf(nsrf),itau_w,
     325     $      zx_tmp_fi2d)
    349326c
    350327        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
    351         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    352         CALL histwrite(nid_mth,"fsw_"//clnsurf(nsrf),itau_w,
    353      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     328cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     329        CALL histwrite_phy(nid_mth,"fsw_"//clnsurf(nsrf),itau_w,
     330     $      zx_tmp_fi2d)
    354331C
    355332        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
    356         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    357         CALL histwrite(nid_mth,"wbils_"//clnsurf(nsrf),itau_w,
    358      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     333cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     334        CALL histwrite_phy(nid_mth,"wbils_"//clnsurf(nsrf),itau_w,
     335     $      zx_tmp_fi2d)
    359336C
    360337        zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
    361         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    362         CALL histwrite(nid_mth,"wbilo_"//clnsurf(nsrf),itau_w,
    363      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     338cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     339        CALL histwrite_phy(nid_mth,"wbilo_"//clnsurf(nsrf),itau_w,
     340     $      zx_tmp_fi2d)
    364341C
    365342       IF(1.EQ.0) THEN
    366343C
    367344        zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf)
    368         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    369         CALL histwrite(nid_mth,"evapour_"//clnsurf(nsrf),itau_w,
    370      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     345cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     346        CALL histwrite_phy(nid_mth,"evapour_"//clnsurf(nsrf),itau_w,
     347     $      zx_tmp_fi2d)
    371348C
    372349        zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon))
    373350     $                        *pctsrf(1:klon,nsrf)
    374         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    375         CALL histwrite(nid_mth,"prepour_"//clnsurf(nsrf),itau_w,
    376      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     351cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     352        CALL histwrite_phy(nid_mth,"prepour_"//clnsurf(nsrf),itau_w,
     353     $      zx_tmp_fi2d)
    377354C
    378355       ENDIF !(1.EQ.0) THEN
     
    380357      END DO 
    381358c
    382       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    383       CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    384 c
    385       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    386       CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    387 c
    388       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
    389       CALL histwrite(nid_mth,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    390 c
    391       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
    392       CALL histwrite(nid_mth,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    393 c
    394       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
    395       CALL histwrite(nid_mth,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    396 c
    397       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
    398       CALL histwrite(nid_mth,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    399 c
    400       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
    401       CALL histwrite(nid_mth,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     359cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
     360      CALL histwrite_phy(nid_mth,"cdrm",itau_w,cdragm)
     361c
     362cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
     363      CALL histwrite_phy(nid_mth,"cdrh",itau_w,cdragh)
     364c
     365cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
     366      CALL histwrite_phy(nid_mth,"cldl",itau_w,cldl)
     367c
     368cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
     369      CALL histwrite_phy(nid_mth,"cldm",itau_w,cldm)
     370c
     371cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
     372      CALL histwrite_phy(nid_mth,"cldh",itau_w,cldh)
     373c
     374cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)
     375      CALL histwrite_phy(nid_mth,"cldt",itau_w,cldt)
     376c
     377cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
     378      CALL histwrite_phy(nid_mth,"cldq",itau_w,cldq)
    402379c
    403380      zx_tmp_fi2d(1:klon) = flwp(1:klon)
    404       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    405       CALL histwrite(nid_mth,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     381cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     382      CALL histwrite_phy(nid_mth,"lwp",itau_w,zx_tmp_fi2d)
    406383c
    407384      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
    408       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    409       CALL histwrite(nid_mth,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    410 c
    411       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
    412       CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    413 c
    414       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
    415       CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    416 c
    417       CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)
    418       CALL histwrite(nid_mth,"uq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    419 c
    420       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)
    421       CALL histwrite(nid_mth,"vq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     385cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     386      CALL histwrite_phy(nid_mth,"iwp",itau_w,zx_tmp_fi2d)
     387c
     388cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
     389      CALL histwrite_phy(nid_mth,"ue",itau_w,ue)
     390c
     391cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
     392      CALL histwrite_phy(nid_mth,"ve",itau_w,ve)
     393c
     394cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)
     395      CALL histwrite_phy(nid_mth,"uq",itau_w,uq)
     396c
     397cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)
     398      CALL histwrite_phy(nid_mth,"vq",itau_w,vq)
    422399cKE43
    423400      IF (iflag_con.GE.3) THEN ! sb
    424401c
    425       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)
    426       CALL histwrite(nid_mth,"cape",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    427 c
    428       CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)
    429       CALL histwrite(nid_mth,"pbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    430 c
    431       CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)
    432       CALL histwrite(nid_mth,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    433 c
    434       CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)
    435       CALL histwrite(nid_mth,"fbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     402cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)
     403      CALL histwrite_phy(nid_mth,"cape",itau_w,cape)
     404c
     405cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)
     406      CALL histwrite_phy(nid_mth,"pbase",itau_w,pbase)
     407c
     408cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)
     409      CALL histwrite_phy(nid_mth,"ptop",itau_w,ema_pct)
     410c
     411cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)
     412      CALL histwrite_phy(nid_mth,"fbase",itau_w,ema_cbmf)
    436413c
    437414c34EK
    438415c
    439       CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
    440       CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d,
    441      .               iim*jjmp1,ndex2d)
     416cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
     417      CALL histwrite_phy(nid_mth,"prw",itau_w,prw)
    442418c
    443419      ENDIF !iflag_con.GE.3
     
    448424c
    449425c
    450       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
    451       CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    452 c
    453       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
    454       CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    455 c
    456       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
    457       CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    458 c
    459       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
    460       CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1,
    461      .               ndex2d)
    462 c
    463       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
    464       CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1,
    465      .               ndex2d)
    466 c
    467       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
    468       CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1,
    469      .               ndex2d)
    470 c
    471       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
    472       CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1,
    473      .               ndex2d)
    474 c
    475       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
    476       CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1,
    477      .               ndex2d)
    478 c
    479       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
    480       CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1,
    481      .               ndex2d)
    482 c
    483       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
    484       CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1,
    485      .               ndex2d)
     426cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
     427      CALL histwrite_phy(nid_mth,"s_pblh",itau_w,s_pblh)
     428c
     429cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
     430      CALL histwrite_phy(nid_mth,"s_pblt",itau_w,s_pblt)
     431c
     432cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
     433      CALL histwrite_phy(nid_mth,"s_lcl",itau_w,s_lcl)
     434c
     435cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
     436      CALL histwrite_phy(nid_mth,"s_capCL",itau_w,s_capCL)
     437c
     438cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
     439      CALL histwrite_phy(nid_mth,"s_oliqCL",itau_w,s_oliqCL)
     440c
     441cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
     442      CALL histwrite_phy(nid_mth,"s_cteiCL",itau_w,s_cteiCL)
     443c
     444cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
     445      CALL histwrite_phy(nid_mth,"s_therm",itau_w,s_therm)
     446c
     447cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
     448      CALL histwrite_phy(nid_mth,"s_trmb1",itau_w,s_trmb1)
     449c
     450cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
     451      CALL histwrite_phy(nid_mth,"s_trmb2",itau_w,s_trmb2)
     452c
     453cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
     454      CALL histwrite_phy(nid_mth,"s_trmb3",itau_w,s_trmb3)
    486455c
    487456cIM cf. AM 081204 END
     
    502471     $   bb2.EQ."500".OR.bb2.EQ."200") THEN
    503472c
    504         CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d)
    505         CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d,
    506      $       iim*jjmp1,ndex2d)
    507 c
    508         CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d)
    509         CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d,
    510      $       iim*jjmp1,ndex2d)
    511 c
    512       CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d)
    513       CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d,
    514      $     iim*jjmp1,ndex2d)
    515 c
    516       CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d)
    517       CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d,
    518      $     iim*jjmp1,ndex2d)
     473cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d)
     474        CALL histwrite_phy(nid_mth,"u"//bb2,itau_w,usumSTD(:,k,2))
     475c
     476cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d)
     477        CALL histwrite_phy(nid_mth,"v"//bb2,itau_w,vsumSTD(:,k,2))
     478c
     479cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d)
     480      CALL histwrite_phy(nid_mth,"w"//bb2,itau_w,wsumSTD(:,k,2))
     481c
     482cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d)
     483      CALL histwrite_phy(nid_mth,"phi"//bb2,itau_w,phisumSTD(:,k,2))
    519484c
    520485      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.
     
    529494      ENDDO
    530495c
    531       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    532       CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d,
    533      .     iim*jjmp1,ndex2d)
     496cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     497      CALL histwrite_phy(nid_mth,"fluxo",itau_w,zx_tmp_fi2d)
    534498c
    535499      DO i=1, klon
     
    541505      ENDDO
    542506c
    543       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    544       CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d,
    545      .     iim*jjmp1,ndex2d)
     507cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     508      CALL histwrite_phy(nid_mth,"fluxg",itau_w,zx_tmp_fi2d)
    546509c
    547510      DO i=1, klon
     
    556519      ENDDO
    557520c
    558       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    559       CALL histwrite(nid_mth,"t_oce_sic",itau_w,zx_tmp_2d,
    560      .     iim*jjmp1,ndex2d)
     521cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     522      CALL histwrite_phy(nid_mth,"t_oce_sic",itau_w,zx_tmp_fi2d)
    561523c
    562524      IF (OCEAN.EQ.'force ') THEN
     
    571533      ENDIF
    572534      ENDDO
    573       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    574       CALL histwrite(nid_mth,"lmt_bils",itau_w,
    575      .     zx_tmp_2d,iim*jjmp1,ndex2d)
     535cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     536      CALL histwrite_phy(nid_mth,"lmt_bils",itau_w,zx_tmp_fi2d)
    576537c
    577538      ELSE IF (OCEAN.EQ.'slab  ') THEN
     
    586547      ENDIF
    587548      ENDDO
    588       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    589       CALL histwrite(nid_mth,"slab_bils",itau_w,
    590      .     zx_tmp_2d,iim*jjmp1,ndex2d)
     549cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     550      CALL histwrite_phy(nid_mth,"slab_bils",itau_w,zx_tmp_fi2d)
    591551c
    592552      DO i=1, klon
     
    598558       ENDIF
    599559      ENDDO !i=1, klon
    600       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    601       CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d,
    602      .     iim*jjmp1,ndex2d)
    603 c
    604       CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
    605       CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d,
    606      .     iim*jjmp1,ndex2d)
    607 c
    608       CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
    609       CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d,
    610      .     iim*jjmp1,ndex2d)
     560cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     561      CALL histwrite_phy(nid_mth,"tslab",itau_w,zx_tmp_fi2d)
     562c
     563cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
     564      CALL histwrite_phy(nid_mth,"seaice",itau_w,seaice)
     565c
     566cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
     567      CALL histwrite_phy(nid_mth,"siceh",itau_w, seaice/1000.)
    611568c
    612569      ENDIF !OCEAN.EQ.force/slab
     
    619576C
    620577c
    621       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
    622       CALL histwrite(nid_mth,"lwcon",itau_w,zx_tmp_3d,
    623      .               iim*jjmp1*klev,ndex3d)
    624 c
    625       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
    626       CALL histwrite(nid_mth,"iwcon",itau_w,zx_tmp_3d,
    627      .               iim*jjmp1*klev,ndex3d)
    628 c
    629       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    630       CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
    631      .                                   iim*jjmp1*klev,ndex3d)
     578cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
     579      CALL histwrite_phy(nid_mth,"lwcon",itau_w,flwc)
     580c
     581cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
     582      CALL histwrite_phy(nid_mth,"iwcon",itau_w,fiwc)
     583c
     584cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     585      CALL histwrite_phy(nid_mth,"temp",itau_w,t_seri)
    632586c
    633587c#ifdef histmthNMC
     
    635589c#endif
    636590c
    637       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
    638       CALL histwrite(nid_mth,"ovap",itau_w,zx_tmp_3d,
    639      .                                   iim*jjmp1*klev,ndex3d)
     591cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     592      CALL histwrite_phy(nid_mth,"ovap",itau_w,qx(:,:,ivap))
    640593c
    641594c     zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/
     
    645598c    .                                   iim*jjmp1*klev,ndex3d)
    646599c
    647       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    648       CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d,
    649      .                                   iim*jjmp1*klev,ndex3d)
    650 c
    651       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    652       CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d,
    653      .                                   iim*jjmp1*klev,ndex3d)
    654 c
    655       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    656       CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d,
    657      .                                   iim*jjmp1*klev,ndex3d)
    658 c
    659       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    660       CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d,
    661      .                                   iim*jjmp1*klev,ndex3d)
    662 c
    663       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    664       CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d,
    665      .                                   iim*jjmp1*klev,ndex3d)
    666 c
    667       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d)
    668       CALL histwrite(nid_mth,"rneb",itau_w,zx_tmp_3d,
    669      .                                   iim*jjmp1*klev,ndex3d)
    670 c
    671       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
    672       CALL histwrite(nid_mth,"rnebcon",itau_w,zx_tmp_3d,
    673      .                                   iim*jjmp1*klev,ndex3d)
    674 c
    675       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d)
    676       CALL histwrite(nid_mth,"rhum",itau_w,zx_tmp_3d,
    677      .                                   iim*jjmp1*klev,ndex3d)
    678 c
     600cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     601      CALL histwrite_phy(nid_mth,"geop",itau_w,zphi)
     602c
     603cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     604      CALL histwrite_phy(nid_mth,"vitu",itau_w,u_seri)
     605c
     606cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     607      CALL histwrite_phy(nid_mth,"vitv",itau_w,v_seri)
     608c
     609cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
     610      CALL histwrite_phy(nid_mth,"vitw",itau_w,omega)
     611c
     612cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     613      CALL histwrite_phy(nid_mth,"pres",itau_w,pplay)
     614c
     615cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d)
     616      CALL histwrite_phy(nid_mth,"rneb",itau_w,cldfra)
     617c
     618cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
     619      CALL histwrite_phy(nid_mth,"rnebcon",itau_w,rnebcon)
     620c
     621cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d)
     622      CALL histwrite_phy(nid_mth,"rhum",itau_w,zx_rh)
     623
    679624      DO k=1, klev
    680625       DO i=1, klon
     
    691636c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d)
    692637c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d)
    693       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    694       CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d,
    695      .                                   iim*jjmp1*klev,ndex3d)
    696 c
    697       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    698       CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d,
    699      .                                   iim*jjmp1*klev,ndex3d)
    700 c
    701       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap),
    702      .                 zx_tmp_3d)
    703       CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d,
    704      .                                   iim*jjmp1*klev,ndex3d)
     638cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     639      CALL histwrite_phy(nid_mth,"ozone",itau_w,zx_tmp_fi3d)
     640c
     641cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
     642      CALL histwrite_phy(nid_mth,"dtphy",itau_w,d_t)
     643c
     644cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap),
     645cym     .                 zx_tmp_3d)
     646      CALL histwrite_phy(nid_mth,"dqphy",itau_w, d_qx(:,:,ivap))
     647cIM 22.03.04 END
    705648c
    706649      ENDIF !lev_histmth.GE.2
     
    711654c
    712655        zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf)
    713         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    714         CALL histwrite(nid_mth,"albe_"//clnsurf(nsrf),itau_w,
    715      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     656cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     657        CALL histwrite_phy(nid_mth,"albe_"//clnsurf(nsrf),itau_w,
     658     $      zx_tmp_fi2d)
    716659C
    717660        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
    718         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    719         CALL histwrite(nid_mth,"rugs_"//clnsurf(nsrf),itau_w,
    720      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     661cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     662        CALL histwrite_phy(nid_mth,"rugs_"//clnsurf(nsrf),itau_w,
     663     $      zx_tmp_fi2d)
    721664c
    722665      zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
    723       CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)
    724       CALL histwrite(nid_mth,"ages_"//clnsurf(nsrf),itau_w
    725      $    ,zx_tmp_2d,iim*jjmp1,ndex2d)
     666cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)
     667      CALL histwrite_phy(nid_mth,"ages_"//clnsurf(nsrf),itau_w
     668     $    ,zx_tmp_fi2d)
    726669c
    727670      ENDDO !nsrf=1, nbsrf
    728671c
    729       CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
    730       CALL histwrite(nid_mth,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    731 c
    732       CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
    733       CALL histwrite(nid_mth,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     672cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
     673      CALL histwrite_phy(nid_mth,"albs",itau_w,albsol)
     674c
     675cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
     676      CALL histwrite_phy(nid_mth,"albslw",itau_w,albsollw)
    734677c
    735678      ENDIF !lev_histmth.GE.3
     
    738681      IF(lev_histmth.GE.4) THEN
    739682c
    740       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d)
    741       CALL histwrite(nid_mth,"clwcon",itau_w,zx_tmp_3d,
    742      .                                   iim*jjmp1*klev,ndex3d)
    743 c
     683cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d)
     684      CALL histwrite_phy(nid_mth,"clwcon",itau_w,clwcon0)
     685
    744686      IF (iflag_con.GE.3) THEN
    745687c
    746       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
    747       CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d,
    748      .                                   iim*jjmp1*klev,ndex3d)
    749 c
    750       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d)
    751       CALL histwrite(nid_mth,"upwd",itau_w,zx_tmp_3d,
    752      .                                   iim*jjmp1*klev,ndex3d)
    753 c
    754       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d)
    755       CALL histwrite(nid_mth,"dnwd",itau_w,zx_tmp_3d,
    756      .                                   iim*jjmp1*klev,ndex3d)
    757 c
    758       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d)
    759       CALL histwrite(nid_mth,"dnwd0",itau_w,zx_tmp_3d,
    760      .                                   iim*jjmp1*klev,ndex3d)
     688cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
     689      CALL histwrite_phy(nid_mth,"Ma",itau_w,Ma)
     690c
     691cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d)
     692      CALL histwrite_phy(nid_mth,"upwd",itau_w,upwd)
     693c
     694cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d)
     695      CALL histwrite_phy(nid_mth,"dnwd",itau_w,dnwd)
     696c
     697cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d)
     698      CALL histwrite_phy(nid_mth,"dnwd0",itau_w,dnwd0)
    761699c
    762700      ENDIF !iflag_con.GE.3
    763701c
    764       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    765       CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d,
    766      .                                   iim*jjmp1*klev,ndex3d)
    767 c
    768       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
    769       CALL histwrite(nid_mth,"dqdyn",itau_w,zx_tmp_3d,
    770      .                                   iim*jjmp1*klev,ndex3d)
     702cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
     703      CALL histwrite_phy(nid_mth,"dtdyn",itau_w,d_t_dyn)
     704c
     705cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
     706      CALL histwrite_phy(nid_mth,"dqdyn",itau_w,d_q_dyn)
    771707c
    772708cIM: 101003 : K/30min ==> K/s
    773709      zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys
    774       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    775       CALL histwrite(nid_mth,"dtcon",itau_w,zx_tmp_3d,
    776      .                                   iim*jjmp1*klev,ndex3d)
     710cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     711      CALL histwrite_phy(nid_mth,"dtcon",itau_w,zx_tmp_fi3d)
    777712c
    778713      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    779       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    780       CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d,
    781      .                                   iim*jjmp1*klev,ndex3d)
     714cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     715      CALL histwrite_phy(nid_mth,"dqcon",itau_w,zx_tmp_fi3d)
    782716c
    783717cIM: 101003 : K/30min ==> K/s
    784718      zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
    785       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    786       CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d,
    787      .                                   iim*jjmp1*klev,ndex3d)
     719cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     720      CALL histwrite_phy(nid_mth,"dtlsc",itau_w,zx_tmp_fi3d)
     721cIM: 071003
    788722cIM: 101003 : K/30min ==> K/s
    789723      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
    790724     .                             d_t_eva(1:klon,1:klev))/pdtphys
    791       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
    792       CALL histwrite(nid_mth,"dtlschr",itau_w,zx_tmp_3d,
    793      .                                   iim*jjmp1*klev,ndex3d)
     725cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
     726      CALL histwrite_phy(nid_mth,"dtlschr",itau_w,zx_tmp_fi3d)
    794727c
    795728      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
    796       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    797       CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d,
    798      .                                   iim*jjmp1*klev,ndex3d)
     729cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     730      CALL histwrite_phy(nid_mth,"dqlsc",itau_w,zx_tmp_fi3d)
    799731c
    800732cIM: 101003 : K/30min ==> K/s
    801733      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
    802       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    803       CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d,
    804      .                                   iim*jjmp1*klev,ndex3d)
     734cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     735      CALL histwrite_phy(nid_mth,"dtvdf",itau_w,zx_tmp_fi3d)
    805736c
    806737      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
    807       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    808       CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d,
    809      .                                   iim*jjmp1*klev,ndex3d)
     738cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     739      CALL histwrite_phy(nid_mth,"dqvdf",itau_w,zx_tmp_fi3d)
    810740c
    811741cIM: 101003 : K/30min ==> K/s
    812742      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
    813       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    814       CALL histwrite(nid_mth,"dteva",itau_w,zx_tmp_3d,
    815      .                                   iim*jjmp1*klev,ndex3d)
     743cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     744      CALL histwrite_phy(nid_mth,"dteva",itau_w,zx_tmp_fi3d)
    816745c
    817746      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
    818       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    819       CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d,
    820      .                                   iim*jjmp1*klev,ndex3d)
     747cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     748      CALL histwrite_phy(nid_mth,"dqeva",itau_w,zx_tmp_fi3d)
    821749c
    822750      zpt_conv = 0.
    823751      where (ptconv) zpt_conv = 1.
    824       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d)
    825       CALL histwrite(nid_mth,"ptconv",itau_w,zx_tmp_3d,
    826      .                                   iim*(jjmp1)*klev,ndex3d)
    827 c
    828       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d)
    829       CALL histwrite(nid_mth,"ratqs",itau_w,zx_tmp_3d,
    830      .                                   iim*(jjmp1)*klev,ndex3d)
     752cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d)
     753      CALL histwrite_phy(nid_mth,"ptconv",itau_w,zpt_conv)
     754c
     755cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d)
     756      CALL histwrite_phy(nid_mth,"ratqs",itau_w,ratqs)
    831757c
    832758cIM: 101003 : K/30min ==> K/s
    833759      zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys
    834       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    835       CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d,
    836      .                                   iim*jjmp1*klev,ndex3d)
     760cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     761      CALL histwrite_phy(nid_mth,"dtajs",itau_w,zx_tmp_fi3d)
    837762c
    838763      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
    839       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    840       CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d,
    841      .                                   iim*jjmp1*klev,ndex3d)
     764cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     765      CALL histwrite_phy(nid_mth,"dqajs",itau_w,zx_tmp_fi3d)
    842766c
    843767cIM: 101003 : K/day ==> K/s
    844768      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    845       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    846       CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d,
    847      .                                   iim*jjmp1*klev,ndex3d)
     769cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     770      CALL histwrite_phy(nid_mth,"dtswr",itau_w,zx_tmp_fi3d)
    848771c
    849772cIM: 101003 : K/day ==> K/s     
    850773      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
    851       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    852       CALL histwrite(nid_mth,"dtsw0",itau_w,zx_tmp_3d,
    853      .                                   iim*jjmp1*klev,ndex3d)
     774cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     775      CALL histwrite_phy(nid_mth,"dtsw0",itau_w,zx_tmp_fi3d)
    854776c
    855777cIM: 101003 : K/day ==> K/s     
    856778      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    857       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    858       CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d,
    859      .                                   iim*jjmp1*klev,ndex3d)
     779cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     780      CALL histwrite_phy(nid_mth,"dtlwr",itau_w,zx_tmp_fi3d)
    860781c
    861782cIM: 101003 : K/day ==> K/s     
    862783      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
    863       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    864       CALL histwrite(nid_mth,"dtlw0",itau_w,zx_tmp_3d,
    865      .                                   iim*jjmp1*klev,ndex3d)
     784cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     785      CALL histwrite_phy(nid_mth,"dtlw0",itau_w,zx_tmp_fi3d)
    866786c
    867787cIM: 101003 : deja en K/s     
    868788      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
    869       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    870       CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d,
    871      .                                   iim*jjmp1*klev,ndex3d)
     789cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     790      CALL histwrite_phy(nid_mth,"dtec",itau_w,zx_tmp_fi3d)
    872791c
    873792      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
    874       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    875       CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d,
    876      .                                   iim*jjmp1*klev,ndex3d)
     793cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     794      CALL histwrite_phy(nid_mth,"duvdf",itau_w,zx_tmp_fi3d)
    877795c
    878796      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
    879       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    880       CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d,
    881      .                                   iim*jjmp1*klev,ndex3d)
     797cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     798      CALL histwrite_phy(nid_mth,"dvvdf",itau_w,zx_tmp_fi3d)
    882799c
    883800      IF (ok_orodr) THEN
    884801      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
    885       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    886       CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d,
    887      .                                   iim*jjmp1*klev,ndex3d)
     802cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     803      CALL histwrite_phy(nid_mth,"duoro",itau_w,zx_tmp_fi3d)
    888804c
    889805      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
    890       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    891       CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d,
    892      .                                   iim*jjmp1*klev,ndex3d)
     806cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     807      CALL histwrite_phy(nid_mth,"dvoro",itau_w,zx_tmp_fi3d)
    893808c
    894809      ENDIF
     
    896811      IF (ok_orolf) THEN
    897812      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
    898       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    899       CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d,
    900      .                                   iim*jjmp1*klev,ndex3d)
     813cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     814      CALL histwrite_phy(nid_mth,"dulif",itau_w,zx_tmp_fi3d)
    901815c
    902816      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
    903       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    904       CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d,
    905      .                                   iim*jjmp1*klev,ndex3d)
     817cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     818      CALL histwrite_phy(nid_mth,"dvlif",itau_w,zx_tmp_fi3d)
    906819      ENDIF
    907820C
    908821      IF (nqmax.GE.3) THEN
    909822      DO iq=3,nqmax
    910          CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
    911          CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d,
    912      .                                   iim*jjmp1*klev,ndex3d)
     823cym         CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
     824         CALL histwrite_phy(nid_mth,tnom(iq),itau_w,qx(:,:,iq))
    913825      ENDDO
    914826      ENDIF
     
    922834c Champs 2D:
    923835c
    924       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis/RG,zx_tmp_2d)
    925       CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     836cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis/RG,zx_tmp_2d)
     837      CALL histwrite_phy(nid_mth,"phis",itau_w,pphis/RG)
    926838C
    927839cIM 310804   CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)
    928       CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    929       CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     840cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
     841      CALL histwrite_phy(nid_mth,"aire",itau_w,airephy)
    930842c
    931843      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100.
    932       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
    933       CALL histwrite(nid_mth,"pourc_"//clnsurf(is_ter),itau_w,
    934      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     844cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     845      CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_ter),itau_w,
     846     $      zx_tmp_fi2d)
    935847c
    936848      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)
    937       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
    938       CALL histwrite(nid_mth,"fract_"//clnsurf(is_ter),itau_w,
    939      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     849cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     850      CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_ter),itau_w,
     851     $      zx_tmp_fi2d)
    940852c
    941853      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic)* 100.
    942       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
    943       CALL histwrite(nid_mth,"pourc_"//clnsurf(is_lic),itau_w,
    944      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     854cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     855      CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_lic),itau_w,
     856     $      zx_tmp_fi2d)
    945857c
    946858      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic)
    947       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
    948       CALL histwrite(nid_mth,"fract_"//clnsurf(is_lic),itau_w,
    949      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     859cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)
     860      CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_lic),itau_w,
     861     $      zx_tmp_fi2d)
    950862c
    951863      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic)* 100.
    952       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    953       CALL histwrite(nid_mth,"pourc_"//clnsurf(is_sic),itau_w,
    954      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     864cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     865      CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_sic),itau_w,
     866     $      zx_tmp_fi2d)
    955867c
    956868      zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic)
    957       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    958       CALL histwrite(nid_mth,"fract_"//clnsurf(is_sic),itau_w,
    959      $      zx_tmp_2d,iim*jjmp1,ndex2d)
    960 c
    961       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
    962       CALL histwrite(nid_mth,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     869cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     870      CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_sic),itau_w,
     871     $      zx_tmp_fi2d)
     872c
     873cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)
     874      CALL histwrite_phy(nid_mth,"flat",itau_w,zxfluxlat)
    963875c
    964876      zx_tmp_fi2d(1 : klon) = topsw(1:klon)-toplw(1:klon)
    965       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    966       CALL histwrite(nid_mth,"bilTOA",itau_w,
    967      .               zx_tmp_2d,iim*jjmp1,ndex2d)
     877cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     878      CALL histwrite_phy(nid_mth,"bilTOA",itau_w,zx_tmp_fi2d)
    968879c
    969880c     IF(itap.EQ.ecrit_mth) THEN
     
    976887c       ENDDO
    977888c       CALL gr_fi_ecrit(1, klon,iim,jjmp1, tops01,zx_tmp_2d)
    978 c       CALL histwrite(nid_mth,"tops01",itau_w,zx_tmp_2d,
     889c       CALL histwrite_phy(nid_mth,"tops01",itau_w,zx_tmp_2d,
    979890c    .       iim*jjmp1,ndex2d)
    980891c     ENDIF !itap.EQ.ecrit_mth
     
    989900       ENDDO !l
    990901c
    991       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t,zx_tmp_3d)
    992       CALL histwrite(nid_mth,"dtdia",itau_w,zx_tmp_3d,
    993      $       iim*jjmp1*klev,ndex3d)
     902cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t,zx_tmp_3d)
     903      CALL histwrite_phy(nid_mth,"dtdia",itau_w,d_t)
    994904c
    995905c temperature tendency due to SW radiation
     
    1000910       ENDDO !l
    1001911c
    1002       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
    1003       CALL histwrite(nid_mth,"dtsw",itau_w,zx_tmp_3d,
    1004      $       iim*jjmp1*klev,ndex3d)
     912cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     913      CALL histwrite_phy(nid_mth,"dtsw",itau_w,zx_tmp_fi3d)
    1005914c
    1006915c temperature tendency due to LW radiation
     
    1011920       ENDDO !l
    1012921c
    1013       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
    1014       CALL histwrite(nid_mth,"dtlw",itau_w,zx_tmp_3d,
    1015      $       iim*jjmp1*klev,ndex3d)
     922cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     923      CALL histwrite_phy(nid_mth,"dtlw",itau_w,zx_tmp_fi3d)
    1016924c
    1017925c  temperature tendency due to moist convective processes
     
    1022930       ENDDO !l
    1023931c
    1024       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
    1025       CALL histwrite(nid_mth,"dtcon",itau_w,zx_tmp_3d,
    1026      $       iim*jjmp1*klev,ndex3d)
     932cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     933      CALL histwrite_phy(nid_mth,"dtcon",itau_w,zx_tmp_fi3d)
    1027934c
    1028935c temperature tendency due to dry convective processes
     
    1033940       ENDDO !l
    1034941c
    1035       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
    1036       CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d,
    1037      $       iim*jjmp1*klev,ndex3d)
     942cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     943      CALL histwrite_phy(nid_mth,"dtajs",itau_w,zx_tmp_fi3d)
    1038944c
    1039945c  temperature tendency due to large scale precipitation
     
    1044950       ENDDO !l
    1045951c
    1046       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
    1047       CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d,
    1048      $       iim*jjmp1*klev,ndex3d)
     952cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     953      CALL histwrite_phy(nid_mth,"dtlsc",itau_w,zx_tmp_fi3d)
    1049954c
    1050955c  total moisture tendency due to diabatic processes
     
    1056961       ENDDO !l
    1057962c
    1058       CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
    1059       CALL histwrite(nid_mth,"dqdia",itau_w,zx_tmp_3d,
    1060      $       iim*jjmp1*klev,ndex3d)
     963cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d)
     964      CALL histwrite_phy(nid_mth,"dqdia",itau_w,zx_tmp_fi3d)
    1061965c
    1062966cBEG 210404 BEG
     
    1071975      ENDIF !(ok_orodr.AND.ok_orolf) THEN
    1072976c
    1073       CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u_oli,zx_tmp_3d)
    1074       CALL histwrite(nid_mth,"duoli",itau_w,zx_tmp_3d,
    1075      $       iim*jjmp1*klev,ndex3d)
    1076 c
    1077       CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v_oli,zx_tmp_3d)
    1078       CALL histwrite(nid_mth,"dvoli",itau_w,zx_tmp_3d,
    1079      $       iim*jjmp1*klev,ndex3d)
     977cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u_oli,zx_tmp_3d)
     978      CALL histwrite_phy(nid_mth,"duoli",itau_w,d_u_oli)
     979c
     980cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v_oli,zx_tmp_3d)
     981      CALL histwrite_phy(nid_mth,"dvoli",itau_w,d_v_oli)
    1080982c
    1081983      zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys
    1082       CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1083       CALL histwrite(nid_mth,"ducon",itau_w,zx_tmp_3d,
    1084      $       iim*jjmp1*klev,ndex3d)
     984cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     985      CALL histwrite_phy(nid_mth,"ducon",itau_w,zx_tmp_fi3d)
    1085986c
    1086987      zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys
    1087       CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1088       CALL histwrite(nid_mth,"dvcon",itau_w,zx_tmp_3d,
    1089      $       iim*jjmp1*klev,ndex3d)
    1090 c
    1091       CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u,zx_tmp_3d)
    1092       CALL histwrite(nid_mth,"dutot",itau_w,zx_tmp_3d,
    1093      $       iim*jjmp1*klev,ndex3d)
    1094 c
    1095       CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v,zx_tmp_3d)
    1096       CALL histwrite(nid_mth,"dvtot",itau_w,zx_tmp_3d,
    1097      $       iim*jjmp1*klev,ndex3d)
     988cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     989      CALL histwrite_phy(nid_mth,"dvcon",itau_w,zx_tmp_fi3d)
     990c
     991cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u,zx_tmp_3d)
     992      CALL histwrite_phy(nid_mth,"dutot",itau_w,d_u)
     993c
     994cym      CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v,zx_tmp_3d)
     995      CALL histwrite_phy(nid_mth,"dvtot",itau_w,d_v)
    1098996
    1099997cEND 210404 END
     
    1101999c cldtrue
    11021000c     CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldtrue,zx_tmp_3d)
    1103 c     CALL histwrite(nid_mth,"cldtrue",itau_w,zx_tmp_3d,
     1001c     CALL histwrite_phy(nid_mth,"cldtrue",itau_w,zx_tmp_3d,
    11041002c    $       iim*jjmp1*klev,ndex3d)
    11051003c
    11061004c     CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldTOA,zx_tmp_3d)
    1107 c     CALL histwrite(nid_mth,"cldTOA",itau_w,zx_tmp_3d,
     1005c     CALL histwrite_phy(nid_mth,"cldTOA",itau_w,zx_tmp_3d,
    11081006c    $       iim*jjmp1*klev,ndex3d)
    11091007c
    11101008c     CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldSFC,zx_tmp_3d)
    1111 c     CALL histwrite(nid_mth,"cldSFC",itau_w,zx_tmp_3d,
     1009c     CALL histwrite_phy(nid_mth,"cldSFC",itau_w,zx_tmp_3d,
    11121010c    $       iim*jjmp1*klev,ndex3d)
    11131011c
     
    11161014       zx_tmp_fi2d(i)=zustrdr(i)+zustrli(i)
    11171015      ENDDO
    1118       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1119       CALL histwrite(nid_mth,"GWDtaux",
    1120      $               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1016cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1017      CALL histwrite_phy(nid_mth,"GWDtaux",itau_w,zx_tmp_fi2d)
    11211018c
    11221019      DO i=1, klon
     
    11241021       zx_tmp_fi2d(i)=zvstrdr(i)+zvstrli(i)
    11251022      ENDDO
    1126       CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1127       CALL histwrite(nid_mth,"GWDtauy",
    1128      $               itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1023cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1024      CALL histwrite_phy(nid_mth,"GWDtauy",itau_w,zx_tmp_fi2d)
    11291025c
    11301026c220404 END
    11311027cAMIP2 END
    11321028c
    1133       CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
    1134       CALL histwrite(nid_mth,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1029cym     CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)
     1030      CALL histwrite_phy(nid_mth,"slp",itau_w,slp)
    11351031
    1136       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
    1137       CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1138 c
    1139       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
    1140       CALL histwrite(nid_mth,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1032cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)
     1033      CALL histwrite_phy(nid_mth,"tsol",itau_w,zxtsol)
     1034c
     1035cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)
     1036      CALL histwrite_phy(nid_mth,"t2m",itau_w,zt2m)
    11411037c
    11421038c ENSEMBLES BEG
    1143       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    1144       CALL histwrite(nid_mth,"t2m_min",itau_w,zx_tmp_2d,
    1145      .               iim*jjmp1,ndex2d)
    1146 c
    1147       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
    1148       CALL histwrite(nid_mth,"t2m_max",itau_w,zx_tmp_2d,
    1149      .               iim*jjmp1,ndex2d)
     1039cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     1040      CALL histwrite_phy(nid_mth,"t2m_min",itau_w,zt2m)
     1041c
     1042cym     CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d)
     1043      CALL histwrite_phy(nid_mth,"t2m_max",itau_w,zt2m)
    11501044c
    11511045c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsoil(:,1,is_ter),zx_tmp_2d)
    11521046c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsol(:,is_ter),zx_tmp_2d)
    11531047c     CALL gr_fi_ecrit(1,klon,iim,jjmp1,ztsol,zx_tmp_2d)
    1154 c     CALL histwrite(nid_mth,"tsoil",itau_w,zx_tmp_2d,
     1048c     CALL histwrite_phy(nid_mth,"tsoil",itau_w,zx_tmp_2d,
    11551049c    .               iim*jjmp1,ndex2d)
    11561050c
     
    11581052       zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))
    11591053      ENDDO
    1160       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1161       CALL histwrite(nid_mth,"wind10m",itau_w,zx_tmp_2d,
    1162      $     iim*jjmp1,ndex2d)
     1054cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1055      CALL histwrite_phy(nid_mth,"wind10m",itau_w,zx_tmp_fi2d)
    11631056c
    11641057      DO i = 1, klon
    11651058         zx_tmp_fi2d(i) = pctsrf(i,is_sic)
    11661059      ENDDO
    1167       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1168       CALL histwrite(nid_mth,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1060cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1061      CALL histwrite_phy(nid_mth,"sicf",itau_w,zx_tmp_fi2d)
    11691062c
    11701063c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    1171 c     CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
     1064c     CALL histwrite_phy(nid_mth,"temp",itau_w,zx_tmp_3d,
    11721065c    .                                   iim*jjmp1*klev,ndex3d)
    11731066c
    11741067c ENSEMBLES END
    11751068c
    1176       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
    1177       CALL histwrite(nid_mth,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1178 c
    1179       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
    1180       CALL histwrite(nid_mth,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1181 C
    1182       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
    1183       CALL histwrite(nid_mth,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1069cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)
     1070      CALL histwrite_phy(nid_mth,"q2m",itau_w,zq2m)
     1071c
     1072cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)
     1073      CALL histwrite_phy(nid_mth,"u10m",itau_w,zu10m)
     1074C
     1075cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)
     1076      CALL histwrite_phy(nid_mth,"v10m",itau_w,zv10m)
    11841077C
    11851078      DO i = 1, klon
    11861079         zx_tmp_fi2d(i) = paprs(i,1)
    11871080      ENDDO
    1188       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1189       CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1190 c
    1191       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)
    1192       CALL histwrite(nid_mth,"qsurf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1081cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1082      CALL histwrite_phy(nid_mth,"psol",itau_w,zx_tmp_fi2d)
     1083c
     1084cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)
     1085      CALL histwrite_phy(nid_mth,"qsurf",itau_w,zxqsurf)
    11931086c
    11941087      if (.not. ok_veget) then
    1195           CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d)
    1196           CALL histwrite(nid_mth,"qsol",itau_w,zx_tmp_2d,iim*jjmp1
    1197      $        ,ndex2d)
     1088cym          CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d)
     1089          CALL histwrite_phy(nid_mth,"qsol",itau_w,qsol)
    11981090      endif
    11991091c
     
    12011093         zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i)
    12021094      ENDDO
    1203       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1204       CALL histwrite(nid_mth,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1205 c
    1206       CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d)
    1207       CALL histwrite(nid_mth,"ndayrain",itau_w,zx_tmp_2d,
    1208      $               iim*jjmp1,ndex2d)
     1095cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1096      CALL histwrite_phy(nid_mth,"precip",itau_w,zx_tmp_fi2d)
     1097c
     1098cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d)
     1099      CALL histwrite_phy(nid_mth,"ndayrain",itau_w,nday_rain)
    12091100c
    12101101      DO i = 1, klon
    12111102         zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i)
    12121103      ENDDO
    1213       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1214       CALL histwrite(nid_mth,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1104cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1105      CALL histwrite_phy(nid_mth,"plul",itau_w,zx_tmp_fi2d)
    12151106c
    12161107      DO i = 1, klon
    12171108         zx_tmp_fi2d(i) = rain_con(i) + snow_con(i)
    12181109      ENDDO
    1219       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1220       CALL histwrite(nid_mth,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1221 c
    1222       CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
    1223       CALL histwrite(nid_mth,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1110cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1111      CALL histwrite_phy(nid_mth,"pluc",itau_w,zx_tmp_fi2d)
     1112c
     1113cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)
     1114      CALL histwrite_phy(nid_mth,"snowf",itau_w,snow_fall)
    12241115c
    12251116c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d)
    1226 c     CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
     1117c     CALL histwrite_phy(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,
    12271118c    .               ndex2d)
    12281119c
    1229       CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
    1230       CALL histwrite(nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1231 c
    1232       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
    1233       CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1234 c
    1235       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
    1236       CALL histwrite(nid_mth,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1237 c
    1238       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    1239       CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1240 c
    1241       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
    1242       CALL histwrite(nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1120cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)
     1121      CALL histwrite_phy(nid_mth,"evap",itau_w,evap)
     1122c
     1123cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
     1124      CALL histwrite_phy(nid_mth,"tops",itau_w,topsw)
     1125c
     1126cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)
     1127      CALL histwrite_phy(nid_mth,"tops0",itau_w,topsw0)
     1128c
     1129cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
     1130      CALL histwrite_phy(nid_mth,"topl",itau_w,toplw)
     1131c
     1132cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)
     1133      CALL histwrite_phy(nid_mth,"topl0",itau_w,toplw0)
    12431134c
    12441135      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
    1245       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1246       CALL histwrite(nid_mth, "SWupTOA",itau_w,zx_tmp_2d,
    1247      .                               iim*jjmp1,ndex2d)
     1136cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1137      CALL histwrite_phy(nid_mth, "SWupTOA",itau_w,zx_tmp_fi2d)
    12481138c
    12491139c
    12501140      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
    1251       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1252       CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d,
    1253      .                               iim*jjmp1,ndex2d)
     1141cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1142      CALL histwrite_phy(nid_mth, "SWupTOAclr",itau_w,zx_tmp_fi2d)
    12541143c
    12551144      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
    1256       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1257       CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d,
    1258      .                               iim*jjmp1,ndex2d)
     1145cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1146      CALL histwrite_phy(nid_mth, "SWdnTOA",itau_w,zx_tmp_fi2d)
    12591147c
    12601148      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
    1261       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1262       CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d,
    1263      .                               iim*jjmp1,ndex2d)
    1264 c
    1265       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d)
    1266       CALL histwrite(nid_mth,"SWup200",itau_w,zx_tmp_2d,
    1267      $     iim*jjmp1,ndex2d)
    1268 c
    1269       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d)
    1270       CALL histwrite(nid_mth,"SWup200clr",itau_w,zx_tmp_2d,
    1271      $     iim*jjmp1,ndex2d)
    1272 c
    1273       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d)
    1274       CALL histwrite(nid_mth,"SWdn200",itau_w,zx_tmp_2d,
    1275      $     iim*jjmp1,ndex2d)
    1276 c
    1277       CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d)
    1278       CALL histwrite(nid_mth,"SWdn200clr",itau_w,zx_tmp_2d,
    1279      $     iim*jjmp1,ndex2d)
    1280 c
    1281       CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d)
    1282       CALL histwrite(nid_mth,"LWup200",itau_w,zx_tmp_2d,
    1283      $     iim*jjmp1,ndex2d)
    1284 c
    1285       CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d)
    1286       CALL histwrite(nid_mth,"LWup200clr",itau_w,zx_tmp_2d,
    1287      $     iim*jjmp1,ndex2d)
     1149cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1150      CALL histwrite_phy(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_fi2d)
     1151c
     1152cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d)
     1153      CALL histwrite_phy(nid_mth,"SWup200",itau_w,SWup200)
     1154c
     1155cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d)
     1156      CALL histwrite_phy(nid_mth,"SWup200clr",itau_w,SWup200clr)
     1157c
     1158cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d)
     1159      CALL histwrite_phy(nid_mth,"SWdn200",itau_w,SWdn200)
     1160c
     1161cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d)
     1162      CALL histwrite_phy(nid_mth,"SWdn200clr",itau_w,SWdn200clr)
     1163c
     1164cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d)
     1165      CALL histwrite_phy(nid_mth,"LWup200",itau_w,LWup200)
     1166c
     1167cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d)
     1168      CALL histwrite_phy(nid_mth,"LWup200clr",itau_w,LWup200clr)
    12881169c
    12891170      zx_tmp_fi2d(1:klon)=-1*LWdn200(1:klon)
    1290       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1291       CALL histwrite(nid_mth,"LWdn200",itau_w,zx_tmp_2d,
    1292      $     iim*jjmp1,ndex2d)
     1171cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1172      CALL histwrite_phy(nid_mth,"LWdn200",itau_w,zx_tmp_fi2d)
    12931173c
    12941174      zx_tmp_fi2d(1:klon)=-1*LWdn200clr(1:klon)
    1295       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1296       CALL histwrite(nid_mth,"LWdn200clr",itau_w,zx_tmp_2d,
    1297      $     iim*jjmp1,ndex2d)
     1175cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1176      CALL histwrite_phy(nid_mth,"LWdn200clr",itau_w,zx_tmp_fi2d)
    12981177c
    12991178c200 END
    1300       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    1301       CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1302 c
    1303       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
    1304       CALL histwrite(nid_mth,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1305 c
    1306       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    1307       CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1308 c
    1309       CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)
    1310       CALL histwrite(nid_mth,"radsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1311 c
    1312       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
    1313       CALL histwrite(nid_mth,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1179cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
     1180      CALL histwrite_phy(nid_mth,"sols",itau_w,solsw)
     1181c
     1182cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)
     1183      CALL histwrite_phy(nid_mth,"sols0",itau_w,solsw0)
     1184c
     1185cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
     1186      CALL histwrite_phy(nid_mth,"soll",itau_w,sollw)
     1187c
     1188cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)
     1189      CALL histwrite_phy(nid_mth,"radsol",itau_w,radsol)
     1190c
     1191cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)
     1192      CALL histwrite_phy(nid_mth,"soll0",itau_w,sollw0)
    13141193c
    13151194c      zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1)
    13161195      zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
    1317       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1318       CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d,
    1319      .                               iim*jjmp1,ndex2d)
     1196cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1197      CALL histwrite_phy(nid_mth, "SWupSFC",itau_w,zx_tmp_fi2d)
    13201198c
    13211199c      zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1)
    13221200      zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
    1323       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1324       CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d,
    1325      .                               iim*jjmp1,ndex2d)
     1201cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1202      CALL histwrite_phy(nid_mth, "SWupSFCclr",itau_w,zx_tmp_fi2d)
    13261203c
    13271204c      zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1)
    13281205      zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
    1329       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1330       CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d,
    1331      .                               iim*jjmp1,ndex2d)
     1206cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1207      CALL histwrite_phy(nid_mth, "SWdnSFC",itau_w,zx_tmp_fi2d)
    13321208c
    13331209c      zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1)
    13341210      zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
    1335       CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1336       CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d,
    1337      .                               iim*jjmp1,ndex2d)
     1211cym      CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1212      CALL histwrite_phy(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_fi2d)
    13381213c
    13391214cIM 080904   zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon)
    13401215cIM 130904   zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon)
    13411216      zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
    1342       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    1343       CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    1344      .               ndex2d)
     1217cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     1218      CALL histwrite_phy(nid_mth,"LWupSFC",itau_w,zx_tmp_fi2d)
    13451219c
    13461220      DO i=1, klon
     
    13511225cIM 130904   zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon)
    13521226      zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon)
    1353       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
    1354       CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1,
    1355      .               ndex2d)
    1356 c
    1357       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
    1358       CALL histwrite(nid_mth,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1,
    1359      .               ndex2d)
     1227cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d)
     1228      CALL histwrite_phy(nid_mth,"LWupSFCclr",itau_w,zx_tmp_fi2d)
     1229c
     1230cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d)
     1231      CALL histwrite_phy(nid_mth,"LWdnSFC",itau_w,sollwdown)
    13601232c
    13611233c     DO i=1, klon
     
    13641236c     ENDDO !i=1, klon
    13651237c
    1366       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d)
    1367       CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d,
    1368      $               iim*jjmp1,ndex2d)
    1369 c
    1370       CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
    1371       CALL histwrite(nid_mth,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1238cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d)
     1239      CALL histwrite_phy(nid_mth,"LWdnSFCclr",itau_w,sollwdownclr)
     1240c
     1241cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)
     1242      CALL histwrite_phy(nid_mth,"bils",itau_w,bils)
    13721243c
    13731244      zx_tmp_fi2d(1:klon)=-1*sens(1:klon)
    13741245c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d)
    1375       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1376       CALL histwrite(nid_mth,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1377 c
    1378       CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
    1379       CALL histwrite(nid_mth,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1246cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1247      CALL histwrite_phy(nid_mth,"sens",itau_w,zx_tmp_fi2d)
     1248c
     1249cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)
     1250      CALL histwrite_phy(nid_mth,"fder",itau_w,fder)
    13801251c
    13811252c
     
    13841255c      ENDDO
    13851256c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1386 c      CALL histwrite(nid_mth,"frtu",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1257c      CALL histwrite_phy(nid_mth,"frtu",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    13871258c
    13881259c      DO i = 1, klon
     
    13901261c      ENDDO
    13911262c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1392 c      CALL histwrite(nid_mth,"frtv",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1393 c
    1394 c
    1395        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d)
    1396        CALL histwrite(nid_mth,"ffonte",itau_w,zx_tmp_2d,iim*jjmp1,
    1397      $                ndex2d)
    1398 c
    1399        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d)
    1400        CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1,
    1401      $                ndex2d)
     1263c      CALL histwrite_phy(nid_mth,"frtv",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1264c
     1265c
     1266cym       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d)
     1267       CALL histwrite_phy(nid_mth,"ffonte",itau_w,zxffonte)
     1268c
     1269cym       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d)
     1270       CALL histwrite_phy(nid_mth,"fqcalving",itau_w,zxfqcalving)
    14021271c
    14031272       DO nsrf = 1, nbsrf
    14041273        zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    1405         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1406         CALL histwrite(nid_mth,"taux_"//clnsurf(nsrf),itau_w,
    1407      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1274cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1275        CALL histwrite_phy(nid_mth,"taux_"//clnsurf(nsrf),itau_w,
     1276     $      zx_tmp_fi2d)
    14081277C     
    14091278        zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    1410         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1411         CALL histwrite(nid_mth,"tauy_"//clnsurf(nsrf),itau_w,
    1412      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1279cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1280        CALL histwrite_phy(nid_mth,"tauy_"//clnsurf(nsrf),itau_w,
     1281     $      zx_tmp_fi2d)
    14131282       ENDDO
    14141283c
    14151284        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce)*100.
    1416         CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1417         CALL histwrite(nid_mth,"pourc_"//clnsurf(is_oce),itau_w,
    1418      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1285cym        CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1286        CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_oce),itau_w,
     1287     $      zx_tmp_fi2d)
    14191288c
    14201289        zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce)
    1421         CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
    1422         CALL histwrite(nid_mth,"fract_"//clnsurf(is_oce),itau_w,
    1423      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1290cym        CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)
     1291        CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_oce),itau_w,
     1292     $      zx_tmp_fi2d)
    14241293c
    14251294      DO nsrf = 1, nbsrf
     
    14271296C
    14281297        zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    1429         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1430         CALL histwrite(nid_mth,"tsol_"//clnsurf(nsrf),itau_w,
    1431      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1298cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1299        CALL histwrite_phy(nid_mth,"tsol_"//clnsurf(nsrf),itau_w,
     1300     $      zx_tmp_fi2d)
    14321301C
    14331302        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    1434         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1435         CALL histwrite(nid_mth,"sens_"//clnsurf(nsrf),itau_w,
    1436      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1303cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1304        CALL histwrite_phy(nid_mth,"sens_"//clnsurf(nsrf),itau_w,
     1305     $      zx_tmp_fi2d)
    14371306C
    14381307        zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    1439         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1440         CALL histwrite(nid_mth,"lat_"//clnsurf(nsrf),itau_w,
    1441      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1308cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1309        CALL histwrite_phy(nid_mth,"lat_"//clnsurf(nsrf),itau_w,
     1310     $      zx_tmp_fi2d)
    14421311C
    14431312        zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
    1444         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1445         CALL histwrite(nid_mth,"flw_"//clnsurf(nsrf),itau_w,
    1446      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1313cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1314        CALL histwrite_phy(nid_mth,"flw_"//clnsurf(nsrf),itau_w,
     1315     $      zx_tmp_fi2d)
    14471316c
    14481317        zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
    1449         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1450         CALL histwrite(nid_mth,"fsw_"//clnsurf(nsrf),itau_w,
    1451      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1318cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1319        CALL histwrite_phy(nid_mth,"fsw_"//clnsurf(nsrf),itau_w,
     1320     $      zx_tmp_fi2d)
    14521321C
    14531322        zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
    1454         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1455         CALL histwrite(nid_mth,"wbils_"//clnsurf(nsrf),itau_w,
    1456      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1323cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1324        CALL histwrite_phy(nid_mth,"wbils_"//clnsurf(nsrf),itau_w,
     1325     $      zx_tmp_fi2d)
    14571326C
    14581327        zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
    1459         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1460         CALL histwrite(nid_mth,"wbilo_"//clnsurf(nsrf),itau_w,
    1461      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1328cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1329        CALL histwrite_phy(nid_mth,"wbilo_"//clnsurf(nsrf),itau_w,
     1330     $      zx_tmp_fi2d)
    14621331C
    14631332       IF(1.EQ.0) THEN
    14641333C
    14651334        zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf)
    1466         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1467         CALL histwrite(nid_mth,"evapour_"//clnsurf(nsrf),itau_w,
    1468      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1335cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1336        CALL histwrite_phy(nid_mth,"evapour_"//clnsurf(nsrf),itau_w,
     1337     $      zx_tmp_fi2d)
    14691338C
    14701339        zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon))
    14711340     $                        *pctsrf(1:klon,nsrf)
    1472         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1473         CALL histwrite(nid_mth,"prepour_"//clnsurf(nsrf),itau_w,
    1474      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1341cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1342        CALL histwrite_phy(nid_mth,"prepour_"//clnsurf(nsrf),itau_w,
     1343     $      zx_tmp_fi2d)
    14751344C
    14761345       ENDIF !(1.EQ.0) THEN
     
    14781347      END DO 
    14791348c
    1480       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    1481       CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1482 c
    1483       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    1484       CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1485 c
    1486       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
    1487       CALL histwrite(nid_mth,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1488 c
    1489       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
    1490       CALL histwrite(nid_mth,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1491 c
    1492       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
    1493       CALL histwrite(nid_mth,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1494 c
    1495       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt*100.,zx_tmp_2d)
    1496       CALL histwrite(nid_mth,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1497 c
    1498       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
    1499       CALL histwrite(nid_mth,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1349cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
     1350      CALL histwrite_phy(nid_mth,"cdrm",itau_w,cdragm)
     1351c
     1352cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
     1353      CALL histwrite_phy(nid_mth,"cdrh",itau_w,cdragh)
     1354c
     1355cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)
     1356      CALL histwrite_phy(nid_mth,"cldl",itau_w,cldl)
     1357c
     1358cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)
     1359      CALL histwrite_phy(nid_mth,"cldm",itau_w,cldm)
     1360c
     1361cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)
     1362      CALL histwrite_phy(nid_mth,"cldh",itau_w,cldh)
     1363c
     1364cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt*100.,zx_tmp_2d)
     1365      CALL histwrite_phy(nid_mth,"cldt",itau_w,cldt*100.)
     1366c
     1367cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)
     1368      CALL histwrite_phy(nid_mth,"cldq",itau_w,cldq)
    15001369c
    15011370      zx_tmp_fi2d(1:klon) = flwp(1:klon)
    1502       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1503       CALL histwrite(nid_mth,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1371cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1372      CALL histwrite_phy(nid_mth,"lwp",itau_w,zx_tmp_fi2d)
    15041373c
    15051374      zx_tmp_fi2d(1:klon) = fiwp(1:klon)
    1506       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1507       CALL histwrite(nid_mth,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1508 c
    1509       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
    1510       CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1511 c
    1512       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
    1513       CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1514 c
    1515       CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)
    1516       CALL histwrite(nid_mth,"uq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1517 c
    1518       CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)
    1519       CALL histwrite(nid_mth,"vq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1375cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1376      CALL histwrite_phy(nid_mth,"iwp",itau_w,zx_tmp_fi2d)
     1377c
     1378cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
     1379      CALL histwrite_phy(nid_mth,"ue",itau_w,ue)
     1380c
     1381cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
     1382      CALL histwrite_phy(nid_mth,"ve",itau_w,ve)
     1383c
     1384cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)
     1385      CALL histwrite_phy(nid_mth,"uq",itau_w,uq)
     1386c
     1387cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)
     1388      CALL histwrite_phy(nid_mth,"vq",itau_w,vq)
    15201389cKE43
    15211390      IF (iflag_con.GE.3) THEN ! sb
    15221391c
    1523       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)
    1524       CALL histwrite(nid_mth,"cape",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1525 c
    1526       CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)
    1527       CALL histwrite(nid_mth,"pbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1528 c
    1529       CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)
    1530       CALL histwrite(nid_mth,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1531 c
    1532       CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)
    1533       CALL histwrite(nid_mth,"fbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1392cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)
     1393      CALL histwrite_phy(nid_mth,"cape",itau_w,cape)
     1394c
     1395cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)
     1396      CALL histwrite_phy(nid_mth,"pbase",itau_w,pbase)
     1397c
     1398cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)
     1399      CALL histwrite_phy(nid_mth,"ptop",itau_w,ema_pct)
     1400c
     1401cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)
     1402      CALL histwrite_phy(nid_mth,"fbase",itau_w,ema_cbmf)
    15341403c
    15351404c34EK
    15361405c
    1537       CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
    1538       CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d,
    1539      .               iim*jjmp1,ndex2d)
     1406cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d)
     1407      CALL histwrite_phy(nid_mth,"prw",itau_w,prw)
    15401408c
    15411409      ENDIF !iflag_con.GE.3
     
    15451413c
    15461414c
    1547       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
    1548       CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1549 c
    1550       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
    1551       CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1552 c
    1553       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
    1554       CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1555 c
    1556       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
    1557       CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1,
    1558      .               ndex2d)
    1559 c
    1560       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
    1561       CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1,
    1562      .               ndex2d)
    1563 c
    1564       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
    1565       CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1,
    1566      .               ndex2d)
    1567 c
    1568       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
    1569       CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1,
    1570      .               ndex2d)
    1571 c
    1572       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
    1573       CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1,
    1574      .               ndex2d)
    1575 c
    1576       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
    1577       CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1,
    1578      .               ndex2d)
    1579 c
    1580       CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
    1581       CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1,
    1582      .               ndex2d)
     1415cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d)
     1416      CALL histwrite_phy(nid_mth,"s_pblh",itau_w,s_pblh)
     1417c
     1418cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d)
     1419      CALL histwrite_phy(nid_mth,"s_pblt",itau_w,s_pblt)
     1420c
     1421cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d)
     1422      CALL histwrite_phy(nid_mth,"s_lcl",itau_w,s_lcl)
     1423c
     1424cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d)
     1425      CALL histwrite_phy(nid_mth,"s_capCL",itau_w,s_capCL)
     1426c
     1427cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d)
     1428      CALL histwrite_phy(nid_mth,"s_oliqCL",itau_w,s_oliqCL)
     1429c
     1430cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d)
     1431      CALL histwrite_phy(nid_mth,"s_cteiCL",itau_w,s_cteiCL)
     1432c
     1433cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d)
     1434      CALL histwrite_phy(nid_mth,"s_therm",itau_w,s_therm)
     1435c
     1436cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d)
     1437      CALL histwrite_phy(nid_mth,"s_trmb1",itau_w,s_trmb1)
     1438c
     1439cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d)
     1440      CALL histwrite_phy(nid_mth,"s_trmb2",itau_w,s_trmb2)
     1441c
     1442cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d)
     1443      CALL histwrite_phy(nid_mth,"s_trmb3",itau_w,s_trmb3)
    15831444c
    15841445cIM cf. AM 081204 END
     
    16001461     $   .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN
    16011462c
    1602         CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d)
    1603         CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d,
    1604      $       iim*jjmp1,ndex2d)
    1605 c
    1606         CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d)
    1607         CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d,
    1608      $       iim*jjmp1,ndex2d)
    1609 c
    1610       CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d)
    1611       CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d,
    1612      $     iim*jjmp1,ndex2d)
    1613 c
    1614       CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d)
    1615       CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d,
    1616      $     iim*jjmp1,ndex2d)
     1463cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d)
     1464        CALL histwrite_phy(nid_mth,"u"//bb2,itau_w,usumSTD(:,k,2))
     1465c
     1466cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d)
     1467        CALL histwrite_phy(nid_mth,"v"//bb2,itau_w,vsumSTD(:,k,2))
     1468c
     1469cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d)
     1470      CALL histwrite_phy(nid_mth,"w"//bb2,itau_w,wsumSTD(:,k,2))
     1471c
     1472cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d)
     1473      CALL histwrite_phy(nid_mth,"phi"//bb2,itau_w,phisumSTD(:,k,2))
    16171474c
    16181475      ENDIF !(bb2.EQ."850".OR.bb2.EQ."700"
     
    16271484      ENDDO
    16281485c
    1629       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1630       CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d,
    1631      .     iim*jjmp1,ndex2d)
     1486cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1487      CALL histwrite_phy(nid_mth,"fluxo",itau_w,zx_tmp_fi2d)
    16321488c
    16331489      DO i=1, klon
     
    16391495      ENDDO
    16401496c
    1641       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1642       CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d,
    1643      .     iim*jjmp1,ndex2d)
     1497cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1498      CALL histwrite_phy(nid_mth,"fluxg",itau_w,zx_tmp_fi2d)
    16441499c
    16451500      DO i=1, klon
     
    16541509      ENDDO
    16551510c
    1656       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1657       CALL histwrite(nid_mth,"t_oce_sic",itau_w,zx_tmp_2d,
    1658      .     iim*jjmp1,ndex2d)
     1511cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1512      CALL histwrite_phy(nid_mth,"t_oce_sic",itau_w,zx_tmp_fi2d)
    16591513c
    16601514      IF (OCEAN.EQ.'force ') THEN
     
    16691523      ENDIF
    16701524      ENDDO
    1671       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1672       CALL histwrite(nid_mth,"lmt_bils",itau_w,
    1673      .     zx_tmp_2d,iim*jjmp1,ndex2d)
     1525cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1526      CALL histwrite_phy(nid_mth,"lmt_bils",itau_w,
     1527     .     zx_tmp_fi2d)
    16741528c
    16751529      ELSE IF (OCEAN.EQ.'slab  ') THEN
     
    16851539      ENDIF
    16861540      ENDDO
    1687       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1688       CALL histwrite(nid_mth,"slab_bils",itau_w,
    1689      .     zx_tmp_2d,iim*jjmp1,ndex2d)
     1541cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1542      CALL histwrite_phy(nid_mth,"slab_bils",itau_w,
     1543     .     zx_tmp_fi2d)
    16901544c
    16911545      DO i=1, klon
     
    16971551       ENDIF
    16981552      ENDDO !i=1, klon
    1699       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    1700       CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d,
    1701      .     iim*jjmp1,ndex2d)
    1702 c
    1703       CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
    1704       CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d,
    1705      .     iim*jjmp1,ndex2d)
    1706 c
    1707       CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
    1708       CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d,
    1709      .     iim*jjmp1,ndex2d)
     1553cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
     1554      CALL histwrite_phy(nid_mth,"tslab",itau_w,zx_tmp_fi2d)
     1555c
     1556cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d)
     1557      CALL histwrite_phy(nid_mth,"seaice",itau_w,seaice)
     1558c
     1559cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d)
     1560      CALL histwrite_phy(nid_mth,"siceh",itau_w,seaice/1000.)
    17101561c
    17111562      ENDIF !OCEAN.EQ.force/slab
     
    17181569C
    17191570c
    1720       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
    1721       CALL histwrite(nid_mth,"lwcon",itau_w,zx_tmp_3d,
    1722      .               iim*jjmp1*klev,ndex3d)
    1723 c
    1724       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
    1725       CALL histwrite(nid_mth,"iwcon",itau_w,zx_tmp_3d,
    1726      .               iim*jjmp1*klev,ndex3d)
    1727 c
    1728       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    1729       CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
    1730      .                                   iim*jjmp1*klev,ndex3d)
     1571cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d)
     1572      CALL histwrite_phy(nid_mth,"lwcon",itau_w,flwc)
     1573c
     1574cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d)
     1575      CALL histwrite_phy(nid_mth,"iwcon",itau_w,fiwc)
     1576c
     1577cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
     1578      CALL histwrite_phy(nid_mth,"temp",itau_w,t_seri)
    17311579c
    17321580c#ifdef histmthNMC
     
    17341582c#endif
    17351583c
    1736       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
    1737       CALL histwrite(nid_mth,"ovap",itau_w,zx_tmp_3d,
    1738      .                                   iim*jjmp1*klev,ndex3d)
     1584cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d)
     1585      CALL histwrite_phy(nid_mth,"ovap",itau_w, qx(:,:,ivap))
    17391586c
    17401587c     zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/
    17411588c    .                         (1-qx(1:klon,1:klev,ivap))
    17421589c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
    1743 c     CALL histwrite(nid_mth,"wvap",itau_w,zx_tmp_3d,
     1590c     CALL histwrite_phy(nid_mth,"wvap",itau_w,zx_tmp_3d,
    17441591c    .                                   iim*jjmp1*klev,ndex3d)
    17451592c
    1746       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    1747       CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d,
    1748      .                                   iim*jjmp1*klev,ndex3d)
    1749 c
    1750       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    1751       CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d,
    1752      .                                   iim*jjmp1*klev,ndex3d)
    1753 c
    1754       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    1755       CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d,
    1756      .                                   iim*jjmp1*klev,ndex3d)
    1757 c
    1758       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    1759       CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d,
    1760      .                                   iim*jjmp1*klev,ndex3d)
    1761 c
    1762       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    1763       CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d,
    1764      .                                   iim*jjmp1*klev,ndex3d)
    1765 c
    1766       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra*100., zx_tmp_3d)
    1767       CALL histwrite(nid_mth,"rneb",itau_w,zx_tmp_3d,
    1768      .                                   iim*jjmp1*klev,ndex3d)
    1769 c
    1770       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
    1771       CALL histwrite(nid_mth,"rnebcon",itau_w,zx_tmp_3d,
    1772      .                                   iim*jjmp1*klev,ndex3d)
    1773 c
    1774       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d)
    1775       CALL histwrite(nid_mth,"rhum",itau_w,zx_tmp_3d,
    1776      .                                   iim*jjmp1*klev,ndex3d)
     1593cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
     1594      CALL histwrite_phy(nid_mth,"geop",itau_w,zphi)
     1595c
     1596cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
     1597      CALL histwrite_phy(nid_mth,"vitu",itau_w,u_seri)
     1598c
     1599cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     1600      CALL histwrite_phy(nid_mth,"vitv",itau_w,v_seri)
     1601c
     1602cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
     1603      CALL histwrite_phy(nid_mth,"vitw",itau_w,omega)
     1604c
     1605cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
     1606      CALL histwrite_phy(nid_mth,"pres",itau_w,pplay)
     1607c
     1608cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra*100., zx_tmp_3d)
     1609      CALL histwrite_phy(nid_mth,"rneb",itau_w,cldfra*100.)
     1610c
     1611cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d)
     1612      CALL histwrite_phy(nid_mth,"rnebcon",itau_w,rnebcon)
     1613c
     1614cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d)
     1615      CALL histwrite_phy(nid_mth,"rhum",itau_w,zx_rh)
    17771616c
    17781617      DO k=1, klev
     
    17901629c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d)
    17911630c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d)
    1792       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1793       CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d,
    1794      .                                   iim*jjmp1*klev,ndex3d)
    1795 c
    1796       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    1797       CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d,
    1798      .                                   iim*jjmp1*klev,ndex3d)
    1799 c
    1800       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap),
    1801      .                 zx_tmp_3d)
    1802       CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d,
    1803      .                                   iim*jjmp1*klev,ndex3d)
     1631cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1632      CALL histwrite_phy(nid_mth,"ozone",itau_w,zx_tmp_fi3d)
     1633c
     1634cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
     1635      CALL histwrite_phy(nid_mth,"dtphy",itau_w,d_t)
     1636c
     1637cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap),zx_tmp_3d)
     1638      CALL histwrite_phy(nid_mth,"dqphy",itau_w,d_qx(:,:,ivap))
    18041639c
    18051640      ENDIF !lev_histmth.GE.2
     
    18101645c
    18111646        zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf)
    1812         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1813         CALL histwrite(nid_mth,"albe_"//clnsurf(nsrf),itau_w,
    1814      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1647cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1648        CALL histwrite_phy(nid_mth,"albe_"//clnsurf(nsrf),itau_w,
     1649     $      zx_tmp_fi2d)
    18151650C
    18161651        zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf)
    1817         CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
    1818         CALL histwrite(nid_mth,"rugs_"//clnsurf(nsrf),itau_w,
    1819      $      zx_tmp_2d,iim*jjmp1,ndex2d)
     1652cym        CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)
     1653        CALL histwrite_phy(nid_mth,"rugs_"//clnsurf(nsrf),itau_w,
     1654     $      zx_tmp_fi2d)
    18201655c
    18211656      zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf)
    1822       CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)
    1823       CALL histwrite(nid_mth,"ages_"//clnsurf(nsrf),itau_w
    1824      $    ,zx_tmp_2d,iim*jjmp1,ndex2d)
     1657cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)
     1658      CALL histwrite_phy(nid_mth,"ages_"//clnsurf(nsrf),itau_w
     1659     $    ,agesno)
    18251660c
    18261661      ENDDO !nsrf=1, nbsrf
    18271662c
    1828       CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
    1829       CALL histwrite(nid_mth,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    1830 c
    1831       CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
    1832       CALL histwrite(nid_mth,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
     1663cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)
     1664      CALL histwrite_phy(nid_mth,"albs",itau_w,albsol)
     1665c
     1666cym      CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)
     1667      CALL histwrite_phy(nid_mth,"albslw",itau_w,albsollw)
    18331668c
    18341669      ENDIF !lev_histmth.GE.3
     
    18371672      IF(lev_histmth.GE.4) THEN
    18381673c
    1839       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d)
    1840       CALL histwrite(nid_mth,"clwcon",itau_w,zx_tmp_3d,
    1841      .                                   iim*jjmp1*klev,ndex3d)
     1674cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d)
     1675      CALL histwrite_phy(nid_mth,"clwcon",itau_w,clwcon0)
    18421676c
    18431677      IF (iflag_con.GE.3) THEN
    18441678c
    1845       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
    1846       CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d,
    1847      .                                   iim*jjmp1*klev,ndex3d)
    1848 c
    1849       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d)
    1850       CALL histwrite(nid_mth,"upwd",itau_w,zx_tmp_3d,
    1851      .                                   iim*jjmp1*klev,ndex3d)
    1852 c
    1853       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d)
    1854       CALL histwrite(nid_mth,"dnwd",itau_w,zx_tmp_3d,
    1855      .                                   iim*jjmp1*klev,ndex3d)
    1856 c
    1857       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d)
    1858       CALL histwrite(nid_mth,"dnwd0",itau_w,zx_tmp_3d,
    1859      .                                   iim*jjmp1*klev,ndex3d)
     1679cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d)
     1680      CALL histwrite_phy(nid_mth,"Ma",itau_w,Ma)
     1681c
     1682cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d)
     1683      CALL histwrite_phy(nid_mth,"upwd",itau_w,upwd)
     1684c
     1685cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d)
     1686      CALL histwrite_phy(nid_mth,"dnwd",itau_w,dnwd)
     1687c
     1688cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d)
     1689      CALL histwrite_phy(nid_mth,"dnwd0",itau_w,dnwd0)
    18601690c
    18611691      ENDIF !iflag_con.GE.3
    18621692c
    1863       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    1864       CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d,
    1865      .                                   iim*jjmp1*klev,ndex3d)
    1866 c
    1867       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
    1868       CALL histwrite(nid_mth,"dqdyn",itau_w,zx_tmp_3d,
    1869      .                                   iim*jjmp1*klev,ndex3d)
     1693cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
     1694      CALL histwrite_phy(nid_mth,"dtdyn",itau_w,d_t_dyn)
     1695c
     1696cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d)
     1697      CALL histwrite_phy(nid_mth,"dqdyn",itau_w,d_q_dyn)
    18701698c
    18711699cIM: 101003 : K/30min ==> K/s
    18721700c
    18731701      zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    1874       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1875       CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d,
    1876      .                                   iim*jjmp1*klev,ndex3d)
     1702cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1703      CALL histwrite_phy(nid_mth,"dqcon",itau_w,zx_tmp_fi3d)
    18771704c
    18781705cIM: 101003 : K/30min ==> K/s
    18791706      zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+
    18801707     .                             d_t_eva(1:klon,1:klev))/pdtphys
    1881       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
    1882       CALL histwrite(nid_mth,"dtlschr",itau_w,zx_tmp_3d,
    1883      .                                   iim*jjmp1*klev,ndex3d)
     1708cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d)
     1709      CALL histwrite_phy(nid_mth,"dtlschr",itau_w,zx_tmp_fi3d)
    18841710c
    18851711      zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
    1886       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1887       CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d,
    1888      .                                   iim*jjmp1*klev,ndex3d)
     1712cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1713      CALL histwrite_phy(nid_mth,"dqlsc",itau_w,zx_tmp_fi3d)
    18891714c
    18901715cIM: 101003 : K/30min ==> K/s
    18911716      zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys
    1892       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1893       CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d,
    1894      .                                   iim*jjmp1*klev,ndex3d)
     1717cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1718      CALL histwrite_phy(nid_mth,"dtvdf",itau_w,zx_tmp_fi3d)
    18951719c
    18961720      zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys
    1897       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1898       CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d,
    1899      .                                   iim*jjmp1*klev,ndex3d)
     1721cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1722      CALL histwrite_phy(nid_mth,"dqvdf",itau_w,zx_tmp_fi3d)
    19001723c
    19011724cIM: 101003 : K/30min ==> K/s
    19021725      zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys
    1903       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1904       CALL histwrite(nid_mth,"dteva",itau_w,zx_tmp_3d,
    1905      .                                   iim*jjmp1*klev,ndex3d)
     1726cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1727      CALL histwrite_phy(nid_mth,"dteva",itau_w,zx_tmp_fi3d)
    19061728c
    19071729      zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys
    1908       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1909       CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d,
    1910      .                                   iim*jjmp1*klev,ndex3d)
     1730cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1731      CALL histwrite_phy(nid_mth,"dqeva",itau_w,zx_tmp_fi3d)
    19111732c
    19121733      zpt_conv = 0.
    19131734      where (ptconv) zpt_conv = 1.
    1914       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d)
    1915       CALL histwrite(nid_mth,"ptconv",itau_w,zx_tmp_3d,
    1916      .                                   iim*(jjmp1)*klev,ndex3d)
    1917 c
    1918       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d)
    1919       CALL histwrite(nid_mth,"ratqs",itau_w,zx_tmp_3d,
    1920      .                                   iim*(jjmp1)*klev,ndex3d)
     1735cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d)
     1736      CALL histwrite_phy(nid_mth,"ptconv",itau_w,zpt_conv)
     1737c
     1738cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d)
     1739      CALL histwrite_phy(nid_mth,"ratqs",itau_w,ratqs)
    19211740c
    19221741      zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys
    1923       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1924       CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d,
    1925      .                                   iim*jjmp1*klev,ndex3d)
     1742cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1743      CALL histwrite_phy(nid_mth,"dqajs",itau_w,zx_tmp_fi3d)
    19261744c
    19271745cIM: 101003 : K/day ==> K/s
    19281746      zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    1929       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1930       CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d,
    1931      .                                   iim*jjmp1*klev,ndex3d)
     1747cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1748      CALL histwrite_phy(nid_mth,"dtswr",itau_w,zx_tmp_fi3d)
    19321749c
    19331750cIM: 101003 : K/day ==> K/s     
    19341751      zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY
    1935       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1936       CALL histwrite(nid_mth,"dtsw0",itau_w,zx_tmp_3d,
    1937      .                                   iim*jjmp1*klev,ndex3d)
     1752cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1753      CALL histwrite_phy(nid_mth,"dtsw0",itau_w,zx_tmp_fi3d)
    19381754c
    19391755cIM: 101003 : K/day ==> K/s     
    19401756      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    1941       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1942       CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d,
    1943      .                                   iim*jjmp1*klev,ndex3d)
     1757cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1758      CALL histwrite_phy(nid_mth,"dtlwr",itau_w,zx_tmp_fi3d)
    19441759c
    19451760cIM: 101003 : K/day ==> K/s     
    19461761      zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY
    1947       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1948       CALL histwrite(nid_mth,"dtlw0",itau_w,zx_tmp_3d,
    1949      .                                   iim*jjmp1*klev,ndex3d)
     1762cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1763      CALL histwrite_phy(nid_mth,"dtlw0",itau_w,zx_tmp_fi3d)
    19501764c
    19511765cIM: 101003 : deja en K/s     
    19521766      zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
    1953       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1954       CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d,
    1955      .                                   iim*jjmp1*klev,ndex3d)
     1767cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1768      CALL histwrite_phy(nid_mth,"dtec",itau_w,zx_tmp_fi3d)
    19561769c
    19571770      zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys
    1958       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1959       CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d,
    1960      .                                   iim*jjmp1*klev,ndex3d)
     1771cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1772      CALL histwrite_phy(nid_mth,"duvdf",itau_w,zx_tmp_fi3d)
    19611773c
    19621774      zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys
    1963       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1964       CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d,
    1965      .                                   iim*jjmp1*klev,ndex3d)
     1775cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1776      CALL histwrite_phy(nid_mth,"dvvdf",itau_w,zx_tmp_fi3d)
    19661777c
    19671778      IF (ok_orodr) THEN
    19681779      zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys
    1969       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1970       CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d,
    1971      .                                   iim*jjmp1*klev,ndex3d)
     1780cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1781      CALL histwrite_phy(nid_mth,"duoro",itau_w,zx_tmp_fi3d)
    19721782c
    19731783      zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys
    1974       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1975       CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d,
    1976      .                                   iim*jjmp1*klev,ndex3d)
     1784cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1785      CALL histwrite_phy(nid_mth,"dvoro",itau_w,zx_tmp_fi3d)
    19771786c
    19781787      ENDIF
     
    19801789      IF (ok_orolf) THEN
    19811790      zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys
    1982       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1983       CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d,
    1984      .                                   iim*jjmp1*klev,ndex3d)
     1791cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1792      CALL histwrite_phy(nid_mth,"dulif",itau_w,zx_tmp_fi3d)
    19851793c
    19861794      zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys
    1987       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    1988       CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d,
    1989      .                                   iim*jjmp1*klev,ndex3d)
     1795cym      CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
     1796      CALL histwrite_phy(nid_mth,"dvlif",itau_w,zx_tmp_fi3d)
    19901797      ENDIF
    19911798C
    19921799      IF (nqmax.GE.3) THEN
    19931800      DO iq=3,nqmax
    1994          CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
    1995          CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d,
    1996      .                                   iim*jjmp1*klev,ndex3d)
     1801cym         CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
     1802         CALL histwrite_phy(nid_mth,tnom(iq),itau_w,qx(:,:,iq))
    19971803      ENDDO
    19981804      ENDIF
     
    20031809c
    20041810      if (ok_sync) then
     1811c$OMP MASTER
    20051812        call histsync(nid_mth)
     1813c$OMP END MASTER
    20061814      endif
    20071815c
  • LMDZ4/trunk/libf/phylmd/write_histmthNMC.h

    r694 r766  
    1313      IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
    1414ccc
    15        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2),
    16      $      zx_tmp_NC)
    17        CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_NC,
    18      $       iim*jjmp1*nlevSTD,ndex3d)
     15cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2),
     16cym     $      zx_tmp_NC)
     17       CALL histwrite_phy(nid_nmc,"temp",itau_w,tsumSTD(:,:,2))
    1918c
    20        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2),
    21      $     zx_tmp_NC)
    22        CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_NC,
    23      $       iim*jjmp1*nlevSTD,ndex3d)
     19cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2),
     20cym     $     zx_tmp_NC)
     21       CALL histwrite_phy(nid_nmc,"phi",itau_w,phisumSTD(:,:,2))
    2422c
    25        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2),
    26      $     zx_tmp_NC)
    27        CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_NC,
    28      $       iim*jjmp1*nlevSTD,ndex3d)
     23cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2),
     24cym     $     zx_tmp_NC)
     25       CALL histwrite_phy(nid_nmc,"q",itau_w,qsumSTD(:,:,2))
    2926c
    30        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2),
    31      $     zx_tmp_NC)
    32        CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_NC,
    33      $       iim*jjmp1*nlevSTD,ndex3d)
     27cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2),
     28cym     $     zx_tmp_NC)
     29       CALL histwrite_phy(nid_nmc,"rh",itau_w,rhsumSTD(:,:,2))
    3430c
    35        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2),
    36      $     zx_tmp_NC)
    37        CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_NC,
    38      $       iim*jjmp1*nlevSTD,ndex3d)
     31cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2),
     32cym     $     zx_tmp_NC)
     33       CALL histwrite_phy(nid_nmc,"u",itau_w,usumSTD(:,:,2))
    3934c
    40        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2),
    41      $     zx_tmp_NC)
    42        CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_NC,
    43      $       iim*jjmp1*nlevSTD,ndex3d)
     35cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2),
     36cym     $     zx_tmp_NC)
     37       CALL histwrite_phy(nid_nmc,"v",itau_w,vsumSTD(:,:,2))
    4438ccc
    4539      ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
    4640ccc
    47        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3),
    48      $     zx_tmp_NC)
    49        CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_NC,
    50      $       iim*jjmp1*nlevSTD,ndex3d)
     41cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3),
     42cym     $     zx_tmp_NC)
     43       CALL histwrite_phy(nid_nmc,"temp",itau_w,tsumSTD(:,:,3))
    5144c
    52        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3),
    53      $     zx_tmp_NC)
    54        CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_NC,
    55      $       iim*jjmp1*nlevSTD,ndex3d)
     45cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3),
     46cym     $     zx_tmp_NC)
     47       CALL histwrite_phy(nid_nmc,"phi",itau_w,phisumSTD(:,:,3))
    5648c
    57        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3),
    58      $     zx_tmp_NC)
    59        CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_NC,
    60      $       iim*jjmp1*nlevSTD,ndex3d)
     49cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3),
     50cym     $     zx_tmp_NC)
     51       CALL histwrite_phy(nid_nmc,"q",itau_w,qsumSTD(:,:,3))
    6152c
    62        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3),
    63      $     zx_tmp_NC)
    64        CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_NC,
    65      $       iim*jjmp1*nlevSTD,ndex3d)
     53cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3),
     54cym     $     zx_tmp_NC)
     55       CALL histwrite_phy(nid_nmc,"rh",itau_w,rhsumSTD(:,:,3))
    6656c
    67        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3),
    68      $     zx_tmp_NC)
    69        CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_NC,
    70      $       iim*jjmp1*nlevSTD,ndex3d)
     57cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3),
     58cym     $     zx_tmp_NC)
     59       CALL histwrite_phy(nid_nmc,"u",itau_w,usumSTD(:,:,3))
    7160c
    72        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3),
    73      $     zx_tmp_NC)
    74        CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_NC,
    75      $       iim*jjmp1*nlevSTD,ndex3d)
     61cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3),
     62cym     $     zx_tmp_NC)
     63       CALL histwrite_phy(nid_nmc,"v",itau_w,vsumSTD(:,:,3))
    7664c
    77        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3),
    78      $     zx_tmp_NC)
    79        CALL histwrite(nid_nmc,"w",itau_w,zx_tmp_NC,
    80      $       iim*jjmp1*nlevSTD,ndex3d)
     65cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3),
     66cym     $     zx_tmp_NC)
     67       CALL histwrite_phy(nid_nmc,"w",itau_w,wsumSTD(:,:,3))
    8168c
    8269       DO k=1, nlevSTD
     
    9077       ENDDO !k=1, nlevSTD
    9178c
    92        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fiNC,zx_tmp_NC)
    93        CALL histwrite(nid_nmc,"psbg",itau_w,zx_tmp_NC,
    94      $       iim*jjmp1*nlevSTD,ndex3d)
     79cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fiNC,zx_tmp_NC)
     80       CALL histwrite_phy(nid_nmc,"psbg",itau_w,zx_tmp_fiNC)
    9581c
    96        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3),
    97      $     zx_tmp_NC)
    98        CALL histwrite(nid_nmc,"uv",itau_w,zx_tmp_NC,
    99      $       iim*jjmp1*nlevSTD,ndex3d)
     82cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3),
     83cym     $     zx_tmp_NC)
     84       CALL histwrite_phy(nid_nmc,"uv",itau_w,uvsumSTD(:,:,3))
    10085c
    101        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3),
    102      $     zx_tmp_NC)
    103        CALL histwrite(nid_nmc,"vq",itau_w,zx_tmp_NC,
    104      $       iim*jjmp1*nlevSTD,ndex3d)
     86cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3),
     87cym     $     zx_tmp_NC)
     88       CALL histwrite_phy(nid_nmc,"vq",itau_w,vqsumSTD(:,:,3))
    10589c
    106        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3),
    107      $     zx_tmp_NC)
    108        CALL histwrite(nid_nmc,"vT",itau_w,zx_tmp_NC,
    109      $       iim*jjmp1*nlevSTD,ndex3d)
     90cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3),
     91cym     $     zx_tmp_NC)
     92       CALL histwrite_phy(nid_nmc,"vT",itau_w,vTsumSTD(:,:,3))
    11093c
    111        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3),
    112      $     zx_tmp_NC)
    113        CALL histwrite(nid_nmc,"wq",itau_w,zx_tmp_NC,
    114      $       iim*jjmp1*nlevSTD,ndex3d)
     94cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3),
     95cym     $     zx_tmp_NC)
     96       CALL histwrite_phy(nid_nmc,"wq",itau_w,wqsumSTD(:,:,3))
    11597c
    116        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3),
    117      $     zx_tmp_NC)
    118        CALL histwrite(nid_nmc,"vphi",itau_w,zx_tmp_NC,
    119      $       iim*jjmp1*nlevSTD,ndex3d)
     98cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3),
     99cym     $     zx_tmp_NC)
     100       CALL histwrite_phy(nid_nmc,"vphi",itau_w,vphisumSTD(:,:,3))
    120101c
    121        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3),
    122      $     zx_tmp_NC)
    123        CALL histwrite(nid_nmc,"wT",itau_w,zx_tmp_NC,
    124      $       iim*jjmp1*nlevSTD,ndex3d)
     102cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3),
     103cym     $     zx_tmp_NC)
     104       CALL histwrite_phy(nid_nmc,"wT",itau_w,wTsumSTD(:,:,3))
    125105c
    126        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3),
    127      $     zx_tmp_NC)
    128        CALL histwrite(nid_nmc,"uxu",itau_w,zx_tmp_NC,
    129      $       iim*jjmp1*nlevSTD,ndex3d)
     106cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3),
     107cym     $     zx_tmp_NC)
     108       CALL histwrite_phy(nid_nmc,"uxu",itau_w,u2sumSTD(:,:,3))
    130109c
    131        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3),
    132      $     zx_tmp_NC)
    133        CALL histwrite(nid_nmc,"vxv",itau_w,zx_tmp_NC,
    134      $       iim*jjmp1*nlevSTD,ndex3d)
     110cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3),
     111cym     $     zx_tmp_NC)
     112       CALL histwrite_phy(nid_nmc,"vxv",itau_w,v2sumSTD(:,:,3))
    135113c
    136        CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3),
    137      $     zx_tmp_NC)
    138        CALL histwrite(nid_nmc,"TxT",itau_w,zx_tmp_NC,
    139      $       iim*jjmp1*nlevSTD,ndex3d)
     114cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3),
     115cym     $     zx_tmp_NC)
     116       CALL histwrite_phy(nid_nmc,"TxT",itau_w,T2sumSTD(:,:,3))
    140117c
    141118      ENDIF !type_run
    142119c
    143120      if (ok_sync) then
     121c$OMP MASTER
    144122        call histsync(nid_nmc)
     123c$OMP END MASTER
    145124      endif
    146125
  • LMDZ4/trunk/libf/phylmd/write_histrac.h

    r684 r766  
    22! $Header$
    33!
     4#ifndef INCA
    45      ndex = 0
    56      ndex2d = 0
     
    89      itau_w = itau_phy + nstep
    910
    10       CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
    11       CALL histwrite(nid_tra,"phis",itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
     11cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)
     12      CALL histwrite_phy(nid_tra,"phis",itau_w,pphis)
    1213C
    13       CALL gr_fi_ecrit(1,klon,iim,jjm+1,airephy,zx_tmp_2d)     
    14       CALL histwrite(nid_tra,"aire",itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    15 #ifdef INCA
    16       CALL gr_fi_ecrit(1, klon,iim,jjm+1, ps,zx_tmp_2d)
    17       CALL histwrite(nid_tra,"ps",itau_w,zx_tmp_2d,
    18      .     iim*(jjm+1),ndex2d)
    19 
    20       CALL gr_fi_ecrit(1, klon,iim,jjm+1, ptrop,zx_tmp_2d)
    21       CALL histwrite(nid_tra,"ptrop",itau_w,zx_tmp_2d,
    22      .     iim*(jjm+1),ndex2d)
    23 
    24 C   3d FIELDS
    25 
    26       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri, zx_tmp_3d)
    27       CALL histwrite(nid_tra,"temp",itau_w,zx_tmp_3d,
    28      .                                   iim*(jjm+1)*klev,ndex3d)
    29 
    30       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,u, zx_tmp_3d)
    31       CALL histwrite(nid_tra,"u",itau_w,zx_tmp_3d,
    32      .                                   iim*(jjm+1)*klev,ndex3d)
    33 
    34       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,v, zx_tmp_3d)
    35       CALL histwrite(nid_tra,"v",itau_w,zx_tmp_3d,
    36      .                                   iim*(jjm+1)*klev,ndex3d)
    37 
    38       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,sh, zx_tmp_3d)
    39       CALL histwrite(nid_tra,"h2o",itau_w,zx_tmp_3d,
    40      .                                   iim*(jjm+1)*klev,ndex3d)
    41 
    42       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pdel, zx_tmp_3d)
    43       CALL histwrite(nid_tra,"pdel",itau_w,zx_tmp_3d,
    44      .                                   iim*(jjm+1)*klev,ndex3d)
    45 
    46       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay, zx_tmp_3d)
    47       CALL histwrite(nid_tra,"pmid",itau_w,zx_tmp_3d,
    48      .                                   iim*(jjm+1)*klev,ndex3d)
    49 
    50 ! Ajout Anne
    51 #ifdef INCA_AER
    52       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,airm, zx_tmp_3d)
    53       CALL histwrite(nid_tra,"airm",itau_w,zx_tmp_3d,
    54      .                                   iim*(jjm+1)*klev,ndex)
    55 #endif
    56 
    57 ! Fin ajout Anne
    58 
    59 #ifdef INCA
    60 #ifdef INCAINFO
    61 #ifdef INCA_NMHC
    62       DO it=1, phtcnt
    63       WRITE(str2,'(i2.2)') it
    64       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,it),
    65      .     zx_tmp_3d)
    66       CALL histwrite(nid_tra,"j"//str2,itau_w,zx_tmp_3d,
    67      .                                   iim*(jjm+1)*klev,ndex3d)
    68       ENDDO
    69 
    70       DO it=1, hetcnt
    71       WRITE(str2,'(i2.2)') it
    72       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,it),
    73      .     zx_tmp_3d)
    74       CALL histwrite(nid_tra,"w"//str2,itau_w,zx_tmp_3d,
    75      .                                   iim*(jjm+1)*klev,ndex3d)
    76       ENDDO
    77 
    78       DO it=1, extcnt
    79       WRITE(str2,'(i2.2)') it
    80       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,it),
    81      .     zx_tmp_3d)
    82       CALL histwrite(nid_tra,"ext"//str2,itau_w,zx_tmp_3d,
    83      .                                   iim*(jjm+1)*klev,ndex3d)
    84       ENDDO
    85 #endif
    86 #ifdef INCA_CH4
    87        DO it=1, phtcnt
    88       WRITE(str2,'(i2.2)') it
    89       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,it),
    90      .     zx_tmp_3d)
    91       CALL histwrite(nid_tra,"j"//str2,itau_w,zx_tmp_3d,
    92      .                                   iim*(jjm+1)*klev,ndex3d)
    93       ENDDO
    94 
    95       DO it=1, hetcnt
    96       WRITE(str2,'(i2.2)') it
    97       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,it),
    98      .     zx_tmp_3d)
    99       CALL histwrite(nid_tra,"w"//str2,itau_w,zx_tmp_3d,
    100      .                                   iim*(jjm+1)*klev,ndex3d)
    101       ENDDO
    102 
    103       DO it=1, extcnt
    104       WRITE(str2,'(i2.2)') it
    105       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,it),
    106      .     zx_tmp_3d)
    107       CALL histwrite(nid_tra,"ext"//str2,itau_w,zx_tmp_3d,
    108      .                                   iim*(jjm+1)*klev,ndex3d)
    109       ENDDO
    110 #endif
    111 
    112       DO it=1, nfs
    113       WRITE(str2,'(i2.2)') it
    114       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,invariants(1,1,it),
    115      .     zx_tmp_3d)
    116       CALL histwrite(nid_tra,"INV"//str2,itau_w,zx_tmp_3d,
    117      .                                   iim*(jjm+1)*klev,ndex3d)
    118       ENDDO
    119 #else
    120 #ifdef INCA_NMHC
    121       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,2),
    122      .     zx_tmp_3d)
    123       CALL histwrite(nid_tra,"jO3",itau_w,zx_tmp_3d,
    124      .                                   iim*(jjm+1)*klev,ndex3d)
    125 
    126       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,4),
    127      .     zx_tmp_3d)
    128       CALL histwrite(nid_tra,"jNO2",itau_w,zx_tmp_3d,
    129      .                                   iim*(jjm+1)*klev,ndex3d)
    130 
    131       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,13),
    132      .     zx_tmp_3d)
    133       CALL histwrite(nid_tra,"jH2O2",itau_w,zx_tmp_3d,
    134      .                                   iim*(jjm+1)*klev,ndex3d)
    135 
    136       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,1),
    137      .     zx_tmp_3d)
    138       CALL histwrite(nid_tra,"wHNO3",itau_w,zx_tmp_3d,
    139      .                                   iim*(jjm+1)*klev,ndex3d)
    140 
    141       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,krates(1,1,1),
    142      .     zx_tmp_3d)
    143       CALL histwrite(nid_tra,"kN2O5",itau_w,zx_tmp_3d,
    144      .                                   iim*(jjm+1)*klev,ndex3d)
    145 
    146       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,1),
    147      .     zx_tmp_3d)
    148       CALL histwrite(nid_tra,"LghtNO",itau_w,zx_tmp_3d,
    149      .                                   iim*(jjm+1)*klev,ndex3d)
    150 #endif
    151 #ifdef INCA_CH4
    152       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,2),
    153      .     zx_tmp_3d)
    154       CALL histwrite(nid_tra,"jO3",itau_w,zx_tmp_3d,
    155      .                                   iim*(jjm+1)*klev,ndex3d)
    156 
    157       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,4),
    158      .     zx_tmp_3d)
    159       CALL histwrite(nid_tra,"jNO2",itau_w,zx_tmp_3d,
    160      .                                   iim*(jjm+1)*klev,ndex3d)
    161 
    162       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,13),
    163      .     zx_tmp_3d)
    164       CALL histwrite(nid_tra,"jH2O2",itau_w,zx_tmp_3d,
    165      .                                   iim*(jjm+1)*klev,ndex3d)
    166 
    167       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,1),
    168      .     zx_tmp_3d)
    169       CALL histwrite(nid_tra,"wHNO3",itau_w,zx_tmp_3d,
    170      .                                   iim*(jjm+1)*klev,ndex3d)
    171 
    172       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,krates(1,1,1),
    173      .     zx_tmp_3d)
    174       CALL histwrite(nid_tra,"kN2O5",itau_w,zx_tmp_3d,
    175      .                                   iim*(jjm+1)*klev,ndex3d)
    176       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,1),
    177      .     zx_tmp_3d)
    178       CALL histwrite(nid_tra,"LghtNO",itau_w,zx_tmp_3d,
    179      .                                   iim*(jjm+1)*klev,ndex3d)
    180 #endif
    181 #endif
    182 !      DO it=1, grpcnt
    183 !
    184 !      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d)
    185 !      zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it)
    186 !      CALL histwrite(nid_tra,grpsym(it),itau_w,zx_tmp_3d,
    187 !     .                                   iim*(jjm+1)*klev,ndex3d)
    188 !      ENDDO
    189 #endif
    190 
    191 #ifdef INCA_AER
    192 
    193       it = id_CIDUSTM
    194        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,scavcoef_st(1,1,it),
    195      .                  zx_tmp_3d)
    196        CALL histwrite(nid_tra2,"scavcoef_st",itau_w,zx_tmp_3d,
    197      .                  iim*(jjm+1)*klev,ndex3d)
    198        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,scavcoef_cv(1,1,it),
    199      .                  zx_tmp_3d)
    200        CALL histwrite(nid_tra2,"scavcoef_cv",itau_w,zx_tmp_3d,
    201      .                  iim*(jjm+1)*klev,ndex3d)
    202 
    203        CALL gr_fi_ecrit(1, klon,iim,jjm+1,angst(1),zx_tmp_2d)
    204        CALL histwrite(nid_tra2,"AngstroemComp",itau_w,zx_tmp_2d,
    205      .                     iim*(jjm+1),ndex2d)
    206 
    207        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,totaerh2o(1,1), zx_tmp_3d)
    208        CALL histwrite(nid_tra2,"TOTAERH2O",itau_w,zx_tmp_3d,
    209      .                     iim*(jjm+1)*klev,ndex3d)
    210 
    211 #endif
    212 #endif
     14cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,airephy,zx_tmp_2d)     
     15      CALL histwrite_phy(nid_tra,"aire",itau_w,airephy)
    21316
    21417      DO it=1,nqmax
    21518C champs 2D
    216 #ifdef INCA
    217       IF ( prt_flag_ts(it) == 0 ) CYCLE
    218 
    219       CALL gr_fi_ecrit(1, klon,iim,jjm+1, eflux(1,it),zx_tmp_2d)
    220       CALL histwrite(nid_tra,"Emi_"//solsym(it),itau_w,zx_tmp_2d,
    221      .     iim*(jjm+1),ndex2d)
    222 
    223       CALL gr_fi_ecrit(1, klon,iim,jjm+1, dvel(1,it),zx_tmp_2d)
    224       CALL histwrite(nid_tra,"Dep_"//solsym(it),itau_w,zx_tmp_2d,
    225      .     iim*(jjm+1),ndex2d)
    226 #ifdef INCA_AER
    227       call diag(airephy,tr_seri,.false.)
    228 
    229       CALL gr_fi_ecrit(1, klon,iim,jjm+1,dflux(1,it),zx_tmp_2d)
    230       CALL histwrite(nid_tra2,"Dry_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    231 
    232       IF  ((it .ge. trmx) .and. (it .le. trnx)) then
    233         CALL gr_fi_ecrit(1, klon,iim,jjm+1,sflux(1,it),zx_tmp_2d)
    234         CALL histwrite(nid_tra2,"Sed_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    235        
    236         CALL gr_fi_ecrit(1, klon,iim,jjm+1,wflux(1,it),zx_tmp_2d)
    237         CALL histwrite(nid_tra2,"Wet_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    238         CALL gr_fi_ecrit(1, klon,iim,jjm+1,wsflux(1,it),zx_tmp_2d)
    239         CALL histwrite(nid_tra2,"WetST_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    240         CALL gr_fi_ecrit(1, klon,iim,jjm+1,wcflux(1,it),zx_tmp_2d)
    241         CALL histwrite(nid_tra2,"WetCV_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    242        
    243         CALL gr_fi_ecrit(klev, klon,iim,jjm+1,eflux_alt(1,1,it),zx_tmp_3d)
    244         CALL histwrite(nid_tra2,"Emi_alt_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)
    245        
    246         CALL gr_fi_ecrit(1, klon,iim,jjm+1,aload(1,it),zx_tmp_2d)
    247         CALL histwrite(nid_tra2,"Load_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    248         CALL histwrite(nid_tra3,"Inst_Load_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    249 
    250         CALL gr_fi_ecrit(1, klon,iim,jjm+1,sconc(1,it),zx_tmp_2d)
    251         CALL histwrite(nid_tra2,"SConc_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    252 
    253         do la=1,las
    254           CALL gr_fi_ecrit(1, klon,iim,jjm+1,tausum(1,la,it),zx_tmp_2d)
    255           CALL histwrite(nid_tra2,"OD"//cla(la)//"_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
    256           CALL gr_fi_ecrit(klev, klon,iim,jjm+1,tau(1,1,la,it),zx_tmp_3d)
    257           CALL histwrite(nid_tra2,"OD3D"//cla(la)//"_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)
    258         enddo
    259 
    260         CALL gr_fi_ecrit(klev, klon,iim,jjm+1,md(1,1,it),zx_tmp_3d)
    261         CALL histwrite(nid_tra2,"MD_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)
    262 
    263         CALL gr_fi_ecrit(klev, klon,iim,jjm+1,mdw(1,1,it),zx_tmp_3d)
    264         CALL histwrite(nid_tra2,"MDW_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)
    265 
    266         CALL gr_fi_ecrit(klev, klon,iim,jjm+1,cload(1,1,it),zx_tmp_3d)
    267         CALL histwrite(nid_tra2,"CLOAD_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)
    26819
    26920
    270       endif
    271 
    272 
    273 #endif
    274 C champs 3D
    275        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d)
    276 
    277        !Prefer vmr to mmr for transported species
    278        if( adv_mass(it) /= 0. ) then
    279 #ifdef INCA_AER
    280          if (it .lt. trmx) then
    281 #endif
    282        zx_tmp_3d = zx_tmp_3d * dry_mass / adv_mass(it)
    283 #ifdef INCA_AER
    284          endif
    285 #endif
    286        else
    287 #ifdef INCA_CH4
    288        if ( solsym(it) == 'OX' ) then
    289        zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(id_o3)
    290        end if
    291 #endif
    292 #ifdef INCA_NMHC
    293        if ( solsym(it) == 'OX' ) then
    294        zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(id_o3)
    295        end if
    296 #endif
    297        end if
    298 
    299        CALL histwrite(nid_tra,solsym(it),itau_w,zx_tmp_3d,
    300      .                                   iim*(jjm+1)*klev,ndex3d)
    301 #else
    302 
    303        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d)
    304        CALL histwrite(nid_tra,tnom(it+2),itau_w,zx_tmp_3d,
    305      .                                   iim*(jjm+1)*klev,ndex3d)
     21cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d)
     22       CALL histwrite_phy(nid_tra,tnom(it+2),itau_w,tr_seri(:,:,it))
    30623       if (lessivage) THEN
    307        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,flestottr(1,1,it),zx_tmp_3d)
    308        CALL histwrite(nid_tra,"fl"//tnom(it+2),itau_w,zx_tmp_3d,
    309      .                                   iim*(jjm+1)*klev,ndex3d)
     24cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,flestottr(1,1,it),zx_tmp_3d)
     25       CALL histwrite_phy(nid_tra,"fl"//tnom(it+2),itau_w,
     26     .                                   flestottr(:,:,it))
    31027      endif
    31128     
    31229c----Olivia
    313        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_th(1,1,it),zx_tmp_3d)
    314        CALL histwrite(nid_tra,"d_tr_th_"//tnom(it+2),itau_w,zx_tmp_3d,
    315      .                                   iim*(jjm+1)*klev,ndex3d)
    316        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cv(1,1,it),zx_tmp_3d)
    317        CALL histwrite(nid_tra,"d_tr_cv_"//tnom(it+2),itau_w,zx_tmp_3d,
    318      .                                   iim*(jjm+1)*klev,ndex3d)
    319        CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cl(1,1,it),zx_tmp_3d)
    320        CALL histwrite(nid_tra,"d_tr_cl_"//tnom(it+2),itau_w,zx_tmp_3d,
    321      .                                   iim*(jjm+1)*klev,ndex3d)
     30cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_th(1,1,it),zx_tmp_3d)
     31       CALL histwrite_phy(nid_tra,"d_tr_th_"//tnom(it+2),itau_w,
     32     .                                           d_tr_th(:,:,it))
     33cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cv(1,1,it),zx_tmp_3d)
     34       CALL histwrite_phy(nid_tra,"d_tr_cv_"//tnom(it+2),itau_w,
     35     .                                           d_tr_cv(:,:,it))
     36cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cl(1,1,it),zx_tmp_3d)
     37       CALL histwrite_phy(nid_tra,"d_tr_cl_"//tnom(it+2),itau_w,
     38     .                                           d_tr_cl(:,:,it))
    32239c---fin Olivia     
    32340     
    324 #endif
    32541      ENDDO
    32642
    327 #ifdef INCA
    328 !#ifdef INCA_CH4
    329       CALL gr_fi_ecrit(1, klon,iim,jjm+1, o3_col(1), zx_tmp_2d)
    330       CALL histwrite(nid_tra,"O3_column",itau_w,zx_tmp_2d,
    331      .     iim*(jjm+1),ndex2d)
    33243
    333       CALL gr_fi_ecrit(1, klon,iim,jjm+1, co_col(1), zx_tmp_2d)
    334       CALL histwrite(nid_tra,"CO_column",itau_w,zx_tmp_2d,
    335      .     iim*(jjm+1),ndex2d)
     44C abder
     45cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,yu1,zx_tmp_2d)
     46         CALL histwrite_phy(nid_tra,"pyu1",itau_w,yu1)
    33647
    337       CALL gr_fi_ecrit(1, klon,iim,jjm+1, ch4_col(1), zx_tmp_2d)
    338       CALL histwrite(nid_tra,"CH4_column",itau_w,zx_tmp_2d,
    339      .     iim*(jjm+1),ndex2d)
     48cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,yv1,zx_tmp_2d)
     49         CALL histwrite_phy(nid_tra,"pyv1",itau_w,yv1)
    34050
    341       CALL gr_fi_ecrit(1, klon,iim,jjm+1, no2_col(1), zx_tmp_2d)
    342       CALL histwrite(nid_tra,"NO2_column",itau_w,zx_tmp_2d,
    343      .     iim*(jjm+1),ndex2d)
     51cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol1,zx_tmp_2d)
     52         CALL histwrite_phy(nid_tra,"ftsol1",itau_w,pftsol1)
    34453
    345       CALL gr_fi_ecrit(1, klon,iim,jjm+1, o3_st_flx(1), zx_tmp_2d)
    346       CALL histwrite(nid_tra,"O3_ste",itau_w,zx_tmp_2d,
    347      .     iim*(jjm+1),ndex2d)
     54cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol2,zx_tmp_2d)
     55         CALL histwrite_phy(nid_tra,"ftsol2",itau_w,pftsol2)
    34856
    349       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,o3_prod(1,1),
    350      .     zx_tmp_3d)
    351       CALL histwrite(nid_tra,"O3_prod",itau_w,zx_tmp_3d,
    352      .                                   iim*(jjm+1)*klev,ndex3d)
     57cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol3,zx_tmp_2d)
     58         CALL histwrite_phy(nid_tra,"ftsol3",itau_w,pftsol3)
    35359
    354       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,o3_loss(1,1),
    355      .     zx_tmp_3d)
    356       CALL histwrite(nid_tra,"O3_loss",itau_w,zx_tmp_3d,
    357      .                                   iim*(jjm+1)*klev,ndex3d)
    358 ! Ajout Anne
    359 #ifdef INCA_AER
    360 ! for sulfur cycle
     60cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol4,zx_tmp_2d)
     61         CALL histwrite_phy(nid_tra,"ftsol4",itau_w,pftsol4)
    36162
    362       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_dmsoh(1,1),
    363      .     zx_tmp_3d)
    364       CALL histwrite(nid_tra,"SO2_p_dmsoh",itau_w,zx_tmp_3d,
    365      .                                   iim*(jjm+1)*klev,ndex)
     63cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf1,zx_tmp_2d)
     64         CALL histwrite_phy(nid_tra,"psrf1",itau_w,ppsrf1)
    36665
    367       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_dmsno3(1,1),
    368      .     zx_tmp_3d)
    369       CALL histwrite(nid_tra,"SO2_p_dmsno3",itau_w,zx_tmp_3d,
    370      .                                   iim*(jjm+1)*klev,ndex)
     66cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf2,zx_tmp_2d)
     67         CALL histwrite_phy(nid_tra,"psrf2",itau_w,ppsrf2)
    37168
    372       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_h2soh(1,1),
    373      .     zx_tmp_3d)
    374       CALL histwrite(nid_tra,"SO2_p_h2soh",itau_w,zx_tmp_3d,
    375      .                                   iim*(jjm+1)*klev,ndex)
     69cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf3,zx_tmp_2d)
     70         CALL histwrite_phy(nid_tra,"psrf3",itau_w,ppsrf3)
    37671
    377       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_dmsooh(1,1),
    378      .     zx_tmp_3d)
    379       CALL histwrite(nid_tra,"SO2_p_dmsooh",itau_w,zx_tmp_3d,
    380      .                                   iim*(jjm+1)*klev,ndex)
     72cym      CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf4,zx_tmp_2d)
     73         CALL histwrite_phy(nid_tra,"psrf4",itau_w,ppsrf4)
     74cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay,zx_tmp_3d)
     75        CALL histwrite_phy(nid_tra,"pplay",itau_w,pplay)
    38176
    382       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,DMSO_p_dmsoh(1,1),
    383      .     zx_tmp_3d)
    384       CALL histwrite(nid_tra,"DMSO_p_dmsoh",itau_w,zx_tmp_3d,
    385      .                                   iim*(jjm+1)*klev,ndex)
    386 
    387       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASMSAM_p_dmsooh(1,1),
    388      .     zx_tmp_3d)
    389       CALL histwrite(nid_tra,"ASMSAM_p_dmsooh",itau_w,zx_tmp_3d,
    390      .                                   iim*(jjm+1)*klev,ndex)
    391 
    392       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASSO4M_p_so2oh(1,1),
    393      .     zx_tmp_3d)
    394       CALL histwrite(nid_tra,"ASSO4M_p_so2oh",itau_w,zx_tmp_3d,
    395      .                                   iim*(jjm+1)*klev,ndex)
    396       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASSO4M_p_so2h2o2(1,1),
    397      .     zx_tmp_3d)
    398       CALL histwrite(nid_tra,"ASSO4M_p_so2h2o2",itau_w,zx_tmp_3d,
    399      .                                   iim*(jjm+1)*klev,ndex)
    400 
    401       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASSO4M_p_so2o3(1,1),
    402      .     zx_tmp_3d)
    403       CALL histwrite(nid_tra,"ASSO4M_p_so2o3",itau_w,zx_tmp_3d,
    404      .                                   iim*(jjm+1)*klev,ndex)
    405 
    406 c closing the sulfur budget
    407       CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_so2(1,1), zx_tmp_3d)
    408       CALL histwrite(nid_tra,"Wet3D_SO2",itau_w,zx_tmp_3d,
    409      .     iim*(jjm+1)*klev,ndex)
    410       CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_dms(1,1), zx_tmp_3d)
    411       CALL histwrite(nid_tra,"Wet3D_DMS",itau_w,zx_tmp_3d,
    412      .     iim*(jjm+1)*klev,ndex)
    413       CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_hno3(1,1), zx_tmp_3d)
    414       CALL histwrite(nid_tra,"Wet3D_HNO3",itau_w,zx_tmp_3d,
    415      .     iim*(jjm+1)*klev,ndex)
    416       CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_h2o2(1,1), zx_tmp_3d)
    417       CALL histwrite(nid_tra,"Wet3D_H2O2",itau_w,zx_tmp_3d,
    418      .     iim*(jjm+1)*klev,ndex)
     77cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri,zx_tmp_3d)
     78        CALL histwrite_phy(nid_tra,"t",itau_w,t_seri)
     79cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfu,zx_tmp_3d)
     80        CALL histwrite_phy(nid_tra,"mfu",itau_w,pmfu)
     81cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfd,zx_tmp_3d)
     82        CALL histwrite_phy(nid_tra,"mfd",itau_w,pmfd)
     83cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_u,zx_tmp_3d)
     84        CALL histwrite_phy(nid_tra,"en_u",itau_w,pen_u)
     85cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_d,zx_tmp_3d)
     86        CALL histwrite_phy(nid_tra,"en_d",itau_w,pen_d)
     87cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_d,zx_tmp_3d)
     88        CALL histwrite_phy(nid_tra,"de_d",itau_w,pde_d)
     89cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_u,zx_tmp_3d)
     90        CALL histwrite_phy(nid_tra,"de_u",itau_w,pde_u)
     91cym      CALL gr_fi_ecrit(klev,klon,iim,jjm+1,coefh,zx_tmp_3d)
     92        CALL histwrite_phy(nid_tra,"coefh",itau_w,coefh)
    41993
    42094
    421       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,PH_HIST(1,1),
    422      .     zx_tmp_3d)
    423       CALL histwrite(nid_tra,"PH_HIST",itau_w,zx_tmp_3d,
    424      .                                   iim*(jjm+1)*klev,ndex)
    425 #endif
     95c abder
    42696
    427 #ifdef INCA_CH4
    428       DO it=1, grpcnt
    429 
    430       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d)
    431       zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it)
    432       CALL histwrite(nid_tra,grpsym(it),itau_w,zx_tmp_3d,
    433      .                                   iim*(jjm+1)*klev,ndex3d)
    434       ENDDO
     97      if (ok_sync) then
     98c$OMP MASTER
     99        call histsync(nid_tra)
     100c$OMP END MASTER
     101       endif
    435102
    436103#endif
    437104
    438105
    439 #ifdef INCA_NMHC
    440       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,CO2_basprod(1,1),
    441      .     zx_tmp_3d)
    442       CALL histwrite(nid_tra,"CO2_basprod",itau_w,zx_tmp_3d,
    443      .                                   iim*(jjm+1)*klev,ndex)
    444106
    445       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,CO2_nmhcprod(1,1),
    446      .     zx_tmp_3d)
    447       CALL histwrite(nid_tra,"CO2_nmhcprod",itau_w,zx_tmp_3d,
    448      .                                   iim*(jjm+1)*klev,ndex)
    449 
    450       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,CO2_radicalprod(1,1),
    451      .     zx_tmp_3d)
    452       CALL histwrite(nid_tra,"CO2_radicalprod",itau_w,zx_tmp_3d,
    453      .                                   iim*(jjm+1)*klev,ndex)
    454 
    455       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hno3_prod(1,1),
    456      .     zx_tmp_3d)
    457       CALL histwrite(nid_tra,"HNO3_prod",itau_w,zx_tmp_3d,
    458      .                                   iim*(jjm+1)*klev,ndex)
    459 
    460       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hno3_loss(1,1),
    461      .     zx_tmp_3d)
    462       CALL histwrite(nid_tra,"HNO3_loss",itau_w,zx_tmp_3d,
    463      .                                   iim*(jjm+1)*klev,ndex)
    464 
    465       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,co_prod(1,1),
    466      .     zx_tmp_3d)
    467       CALL histwrite(nid_tra,"CO_prod",itau_w,zx_tmp_3d,
    468      .                                   iim*(jjm+1)*klev,ndex)
    469 
    470       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,co_loss(1,1),
    471      .     zx_tmp_3d)
    472       CALL histwrite(nid_tra,"CO_loss",itau_w,zx_tmp_3d,
    473      .                                   iim*(jjm+1)*klev,ndex)
    474 
    475       DO it=1, grpcnt
    476 
    477       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d)
    478       zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it)
    479       CALL histwrite(nid_tra,grpsym(it),itau_w,zx_tmp_3d,
    480      .                                   iim*(jjm+1)*klev,ndex3d)
    481       ENDDO
    482 
    483 
    484 #endif
    485 
    486 ! Fin ajout Anne
    487 
    488 !     ... Special section for daytime averaging
    489 !       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,day_cnt(1,1),
    490 !    .       zx_tmp_3d)
    491 !       CALL histwrite(nid_tra,"day_cnt",itau_w,zx_tmp_3d,
    492 !    .                                  iim*(jjm+1)*klev,ndex3d)
    493 !       CALL gr_fi_ecrit(klev,klon,iim,jjm+1,no_daytime(1,1),
    494 !    .       zx_tmp_3d)
    495 !       CALL histwrite(nid_tra,"NO_day",itau_w,zx_tmp_3d,
    496 !    .                                  iim*(jjm+1)*klev,ndex3d)
    497 
    498 !#endif
    499 #else
    500 
    501 C abder
    502          CALL gr_fi_ecrit(1,klon,iim,jjm+1,yu1,zx_tmp_2d)
    503          CALL histwrite(nid_tra,"pyu1",itau_w,zx_tmp_2d,
    504      s                                  iim*(jjm+1),ndex2d)
    505 
    506          CALL gr_fi_ecrit(1,klon,iim,jjm+1,yv1,zx_tmp_2d)
    507          CALL histwrite(nid_tra,"pyv1",itau_w,zx_tmp_2d,
    508      s                                  iim*(jjm+1),ndex2d)
    509 
    510          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol1,zx_tmp_2d)
    511          CALL histwrite(nid_tra,"ftsol1",itau_w,zx_tmp_2d,
    512      s                                       iim*(jjm+1),ndex2d)
    513 
    514          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol2,zx_tmp_2d)
    515          CALL histwrite(nid_tra,"ftsol2",itau_w,zx_tmp_2d,
    516      s                                       iim*(jjm+1),ndex2d)
    517 
    518          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol3,zx_tmp_2d)
    519          CALL histwrite(nid_tra,"ftsol3",itau_w,zx_tmp_2d,
    520      s                                      iim*(jjm+1),ndex2d)
    521 
    522          CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol4,zx_tmp_2d)
    523          CALL histwrite(nid_tra,"ftsol4",itau_w,zx_tmp_2d,
    524      s                                      iim*(jjm+1),ndex2d)
    525 
    526          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf1,zx_tmp_2d)
    527          CALL histwrite(nid_tra,"psrf1",itau_w,zx_tmp_2d,
    528      s                                     iim*(jjm+1),ndex2d)
    529 
    530          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf2,zx_tmp_2d)
    531          CALL histwrite(nid_tra,"psrf2",itau_w,zx_tmp_2d,
    532      s                                     iim*(jjm+1),ndex2d)
    533 
    534          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf3,zx_tmp_2d)
    535          CALL histwrite(nid_tra,"psrf3",itau_w,zx_tmp_2d,
    536      s                                     iim*(jjm+1),ndex2d)
    537 
    538          CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf4,zx_tmp_2d)
    539          CALL histwrite(nid_tra,"psrf4",itau_w,zx_tmp_2d,
    540      s                                     iim*(jjm+1),ndex2d)
    541         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay,zx_tmp_3d)
    542         CALL histwrite(nid_tra,"pplay",itau_w,zx_tmp_3d,
    543      .                  iim*(jjm+1)*klev,ndex3d)
    544 
    545         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri,zx_tmp_3d)
    546         CALL histwrite(nid_tra,"t",itau_w,zx_tmp_3d,
    547      .                  iim*(jjm+1)*klev,ndex3d)
    548         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfu,zx_tmp_3d)
    549         CALL histwrite(nid_tra,"mfu",itau_w,zx_tmp_3d,
    550      .                  iim*(jjm+1)*klev,ndex3d)
    551         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfd,zx_tmp_3d)
    552         CALL histwrite(nid_tra,"mfd",itau_w,zx_tmp_3d,
    553      .                  iim*(jjm+1)*klev,ndex3d)
    554         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_u,zx_tmp_3d)
    555         CALL histwrite(nid_tra,"en_u",itau_w,zx_tmp_3d,
    556      .                  iim*(jjm+1)*klev,ndex3d)
    557         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_d,zx_tmp_3d)
    558         CALL histwrite(nid_tra,"en_d",itau_w,zx_tmp_3d,
    559      .                  iim*(jjm+1)*klev,ndex3d)
    560         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_d,zx_tmp_3d)
    561         CALL histwrite(nid_tra,"de_d",itau_w,zx_tmp_3d,
    562      .                  iim*(jjm+1)*klev,ndex3d)
    563         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_u,zx_tmp_3d)
    564         CALL histwrite(nid_tra,"de_u",itau_w,zx_tmp_3d,
    565      .                  iim*(jjm+1)*klev,ndex3d)
    566         CALL gr_fi_ecrit(klev,klon,iim,jjm+1,coefh,zx_tmp_3d)
    567         CALL histwrite(nid_tra,"coefh",itau_w,zx_tmp_3d,
    568      .                  iim*(jjm+1)*klev,ndex3d)
    569 
    570 
    571 c abder
    572 #endif
    573 
    574       if (ok_sync) then
    575          call histsync(nid_tra)
    576 #ifdef INCA_AER
    577          call histsync(nid_tra2)
    578          call histsync(nid_tra3)
    579 #endif
    580        endif
    581 
    582 
  • LMDZ4/trunk/libf/phylmd/write_paramLMDZ_phy.h

    r719 r766  
    11c
     2      IF (monocpu) THEN
     3     
    24      ndex2d = 0
    35      itau_w = itau_phy + itap
     
    301303     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    302304c
    303       zx_tmp_2d(1:iim,1:jjmp1)=ecrit_ins
     305      zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_ins)
    304306      CALL histwrite(nid_ctesGCM,"ecrit_ins",itau_w,
    305307     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    306308c
    307       zx_tmp_2d(1:iim,1:jjmp1)=ecrit_hf
     309      zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_hf)
    308310      CALL histwrite(nid_ctesGCM,"ecrit_hf",itau_w,
    309311     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    310312c
    311       zx_tmp_2d(1:iim,1:jjmp1)=ecrit_day
     313      zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_day)
    312314      CALL histwrite(nid_ctesGCM,"ecrit_day",itau_w,
    313315     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    314316c
    315       zx_tmp_2d(1:iim,1:jjmp1)=ecrit_mth
     317      zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_mth)
    316318      CALL histwrite(nid_ctesGCM,"ecrit_mth",itau_w,
    317319     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    318320c
    319       zx_tmp_2d(1:iim,1:jjmp1)=ecrit_tra
     321      zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_tra)
    320322      CALL histwrite(nid_ctesGCM,"ecrit_tra",itau_w,
    321323     .               zx_tmp_2d,iim*jjmp1,ndex2d)
    322324c
    323       zx_tmp_2d(1:iim,1:jjmp1)=ecrit_reg
     325      zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_reg)
    324326      CALL histwrite(nid_ctesGCM,"ecrit_reg",itau_w,
    325327     .               zx_tmp_2d,iim*jjmp1,ndex2d)
     
    341343      endif
    342344c
     345      ENDIF ! mono_cpu
  • LMDZ4/trunk/libf/phylmd/yamada.F

    r541 r766  
    55     s   ,zlev,zlay,u,v,teta,cd,q2,km,kn,ustar
    66     s   ,l_mix)
     7      use dimphy
    78      IMPLICIT NONE
    89c.......................................................................
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     10cym#include "dimensions.h"
     11cym#include "dimphy.h"
    1112c.......................................................................
    1213c
     
    4849
    4950      integer nlay,nlev
    50       PARAMETER (nlay=klev)
    51       PARAMETER (nlev=klev+1)
     51cym      PARAMETER (nlay=klev)
     52cym      PARAMETER (nlev=klev+1)
    5253
    5354      logical first
     
    7778      fsm(ri)=1.96*(0.1912-ri)*(0.2341-ri)/((1.-ri)*(0.2231-ri))
    7879
     80      nlay=klev
     81      nlev=klev+1
     82     
    7983      if (0.eq.1.and.first) then
    8084      do ig=1,1000
  • LMDZ4/trunk/libf/phylmd/yamada4.F

    r541 r766  
    55     s   ,zlev,zlay,u,v,teta,cd,q2,km,kn,kq,ustar
    66     s   ,iflag_pbl)
     7      use dimphy
    78      IMPLICIT NONE
    89c.......................................................................
    9 #include "dimensions.h"
    10 #include "dimphy.h"
     10cym#include "dimensions.h"
     11cym#include "dimphy.h"
    1112c.......................................................................
    1213c
     
    6465
    6566      integer nlay,nlev
    66       PARAMETER (nlay=klev)
    67       PARAMETER (nlev=klev+1)
     67cym      PARAMETER (nlay=klev)
     68cym      PARAMETER (nlev=klev+1)
    6869
    6970      logical first
     
    7172      save first,ipas
    7273      data first,ipas/.true.,0/
    73 
     74c$OMP THREADPRIVATE( first,ipas)
    7475
    7576      integer ig,k
     
    8283      real dtetadz(klon,klev+1)
    8384      real m2cstat,mcstat,kmcstat
    84       real l(klon,klev+1),l0(klon)
    85       save l0
    86 
     85      real l(klon,klev+1)
     86      real,allocatable,save :: l0(:)
     87c$OMP THREADPRIVATE(l0)     
    8788      real sq(klon),sqz(klon),zz(klon,klev+1)
    8889      integer iter
     
    9192      save ric,rifc,b1,kap
    9293      data ric,rifc,b1,kap/0.195,0.191,16.6,0.4/
    93 
     94c$OMP THREADPRIVATE(ric,rifc,b1,kap)
    9495      real frif,falpha,fsm
    9596      real fl,zzz,zl0,zq2,zn2
    9697
    97       real rino(klon,klev+1),smyam(klon,klev),styam(klon,klev)
    98      s  ,lyam(klon,klev),knyam(klon,klev)
    99      s  ,w2yam(klon,klev),t2yam(klon,klev)
    100       common/pbldiag/rino,smyam,styam,lyam,knyam,w2yam,t2yam
    101 
     98cym      real rino(klon,klev+1),smyam(klon,klev),styam(klon,klev)
     99cym     s  ,lyam(klon,klev),knyam(klon,klev)
     100cym     s  ,w2yam(klon,klev),t2yam(klon,klev)
     101      real,allocatable,save,dimension(:,:) :: rino,smyam,styam,lyam,
     102     s                                        knyam,w2yam,t2yam
     103cym      common/pbldiag/rino,smyam,styam,lyam,knyam,w2yam,t2yam
     104c$OMP THREADPRIVATE(rino,smyam,styam,lyam,knyam,w2yam,t2yam)
     105      logical,save :: firstcall=.true.
     106c$OMP THREADPRIVATE(firstcall)       
    102107      frif(ri)=0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156))
    103108      falpha(ri)=1.318*(0.2231-ri)/(0.2341-ri)
     
    106111     s     max(min(l0(ig)*kap*zlev(ig,k)/(kap*zlev(ig,k)+l0(ig))
    107112     s     ,0.5*sqrt(q2(ig,k))/sqrt(max(n2(ig,k),1.e-10))) ,1.)
     113
     114
     115      nlay=klev
     116      nlev=klev+1
     117     
     118      if (firstcall) then
     119        allocate(rino(klon,klev+1),smyam(klon,klev),styam(klon,klev))
     120        allocate(lyam(klon,klev),knyam(klon,klev))
     121        allocate(w2yam(klon,klev),t2yam(klon,klev))
     122        allocate(l0(klon))
     123        firstcall=.false.
     124      endif
     125
    108126
    109127      if (.not.(iflag_pbl.ge.6.and.iflag_pbl.le.9)) then
     
    378396
    379397c====================================================================
    380 c   Calcul des coefficients de mélange
     398c   Calcul des coefficients de mange
    381399c====================================================================
    382400      do k=2,klev
Note: See TracChangeset for help on using the changeset viewer.