Changeset 892


Ignore:
Timestamp:
Mar 5, 2013, 4:01:03 PM (12 years ago)
Author:
slebonnois
Message:

SL: Important commit ! Adaptation of Venus physics to parallel computation / template for arch on the LMD servers using ifort / documentation for 1D column physics and for parallel computations

Location:
trunk
Files:
18 added
25 deleted
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/DOC/000-USERS

    r495 r892  
    3030Helen Parish                    UCLA                            01 - 10 - 2011                  Venus GCM
    3131David Luz                       CAAUL [Obs. Lisbonne]           01 - 01 - 2012                  Venus GCM
    32 Sarah Camberlain                CAAUL [Obs. Lisbonne]           01 - 01 - 2012                  Venus GCM
     32Sarah Chamberlain               CAAUL [Obs. Lisbonne]           01 - 01 - 2012                  Venus GCM
    3333
  • trunk/LMDZ.COMMON/libf/dyn3dpar/calfis_p.F

    r849 r892  
    169169      REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
    170170      REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
     171      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
    171172      REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
    172173      REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
     
    205206!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    206207
    207 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
     208c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
    208209c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    209210c$OMP+                 zqfi_omp,zdufi_omp,zdvfi_omp,
     
    543544        allocate(zplev_omp(klon,llm+1))
    544545        allocate(zplay_omp(klon,llm))
     546        allocate(zpk_omp(klon,llm))
    545547        allocate(zphi_omp(klon,llm))
    546548        allocate(zphis_omp(klon))
     
    576578        do i=1,klon 
    577579          zplay_omp(i,l)=zplay(offset+i,l)
     580        enddo
     581      enddo
     582       
     583       do l=1,llm
     584        do i=1,klon 
     585          zpk_omp(i,l)=zpk(offset+i,l)
    578586        enddo
    579587      enddo
     
    733741        CALL physiq (klon,
    734742     .             llm,
     743     .             nqtot,
    735744     .             debut_split,
    736745     .             lafin_split,
     
    740749     .             zplev_omp,
    741750     .             zplay_omp,
     751     .             zpk_omp,
    742752     .             zphi_omp,
    743753     .             zphis_omp,
     
    747757     .             ztfi_omp,
    748758     .             zqfi_omp,
    749 c#ifdef INCA
    750759     .             flxwfi_omp,
    751 c#endif
    752760     .             zdufi_omp,
    753761     .             zdvfi_omp,
    754762     .             zdtfi_omp,
    755763     .             zdqfi_omp,
    756      .             zdpsrf_omp,
    757 cIM diagnostique PVteta, Amip2         
    758      .             pducov,
    759      .             PVteta)
     764     .             zdpsrf_omp)
    760765      endif ! planet_type
    761766         zufi_omp(:,:)=zufi_omp(:,:)+zdufi_omp(:,:)*zdt_split
  • trunk/LMDZ.VENUS/libf/phyvenus/clmain.F

    r808 r892  
    823823         zx_alf2(i) = 1.0 - zx_alf1(i)
    824824         zx_coef(i,1) = coef(i,1)
    825      .                 * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))
     825     .                 * SQRT(u1lay(i)**2+v1lay(i)**2)
    826826     .                 * pplay(i,1)/(RD*t(i,1))
    827827         zx_coef(i,1) = zx_coef(i,1) * dtime*RG
  • trunk/LMDZ.VENUS/libf/phyvenus/clmain.classic

    r101 r892  
    822822         zx_alf2(i) = 1.0 - zx_alf1(i)
    823823         zx_coef(i,1) = coef(i,1)
    824      .                 * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))
     824     .                 * SQRT(u1lay(i)**2+v1lay(i)**2)
    825825     .                 * pplay(i,1)/(RD*t(i,1))
    826826         zx_coef(i,1) = zx_coef(i,1) * dtime*RG
  • trunk/LMDZ.VENUS/libf/phyvenus/clmain.old

    r3 r892  
    803803         zx_alf2(i) = 1.0 - zx_alf1(i)
    804804         zx_coef(i,1) = coef(i,1)
    805      .                 * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))
     805     .                 * SQRT(u1lay(i)**2+v1lay(i)**2)
    806806     .                 * pplay(i,1)/(RD*t(i,1))
    807807         zx_coef(i,1) = zx_coef(i,1) * dtime*RG
  • trunk/LMDZ.VENUS/libf/phyvenus/clmain.simple

    r101 r892  
    693693         zx_alf2(i) = 1.0 - zx_alf1(i)
    694694         zx_coef(i,1) = coef(i,1)
    695      .                 * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2))
     695     .                 * SQRT(u1lay(i)**2+v1lay(i)**2)
    696696     .                 * pplay(i,1)/(RD*t(i,1))
    697697         zx_coef(i,1) = zx_coef(i,1) * dtime*RG
  • trunk/LMDZ.VENUS/libf/phyvenus/comcstVE.h

    r101 r892  
    1 c-----------------------------------------------------------------------
    2 c INCLUDE comcstVE.h
     1!-----------------------------------------------------------------------
     2! INCLUDE comcstVE.h
    33
    44        integer nnuve,nbztopve,nbpsve,nbmat
     
    1515
    1616
    17 c-----------------------------------------------------------------------
     17!-----------------------------------------------------------------------
  • trunk/LMDZ.VENUS/libf/phyvenus/comcstfi.h

    r3 r892  
    1 c-----------------------------------------------------------------------
    2 c INCLUDE comcstfi.h
     1!-----------------------------------------------------------------------
     2! INCLUDE comcstfi.h
    33
    4       COMMON/comcstfi/
    5      * pi,rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg
     4      COMMON/comcstfi/rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg
    65
    7       REAL pi,rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg
     6      REAL rad,g,r,cpp,rcp,dtphys,daysec,mugaz,omeg
    87      real cpdet
    98      external cpdet
    109
    11 c-----------------------------------------------------------------------
     10!-----------------------------------------------------------------------
  • trunk/LMDZ.VENUS/libf/phyvenus/comg1d.h

    r3 r892  
    1 c.......................................................................
    2 c  le COMMON pour GRADS-1D
    3 c  (Utilise pour les sorties format Grads dans la version 1D du modele)
    4 c
    5 c  on peut se dire : "on ne sauvera pas plus de 1000 variables ... hein ?"
    6 c
     1!.......................................................................
     2!  le COMMON pour GRADS-1D
     3!  (Utilise pour les sorties format Grads dans la version 1D du modele)
     4!
     5!  on peut se dire : "on ne sauvera pas plus de 1000 variables ... hein ?"
     6!
    77      INTEGER g1d_nvarmx
    88      PARAMETER(g1d_nvarmx=1000)
    9 c
    10 c         * g1d_nlayer     ---> nombre de couches verticales
    11 c         * g1d_nomfich    ---> nom du fichier grads
    12 c         * g1d_unitfich   ---> code du fichier grads
    13 c         * g1d_nomctl     ---> nom du fichier ctl
    14 c         * g1d_unitctl    ---> code du fichier ctl
    15 c         * g1d_premier    ---> variable logique pour dire si le fichier
    16 c                               est deja ouvert
    17 c         * g1d_irec       ---> indice de derniere ecriture
    18 c         * g1d_nvar       ---> nombre de variables deja definies a la
    19 c                               derniere ecriture
    20 c         * g1d_nomvar     ---> noms des vecteurs existants
    21 c         * g1d_dimvar     ---> taille des vecteurs
    22 c         * g1d_titrevar   ---> titres des vecteurs
    23 c         * g1d_tmp1       ---> caractere
    24 c         * g1d_tmp2       ---> caractere
    25 c
     9
     10!         * g1d_nlayer     ---> nombre de couches verticales
     11!         * g1d_nomfich    ---> nom du fichier grads
     12!         * g1d_unitfich   ---> code du fichier grads
     13!         * g1d_nomctl     ---> nom du fichier ctl
     14!         * g1d_unitctl    ---> code du fichier ctl
     15!         * g1d_premier    ---> variable logique pour dire si le fichier
     16!                               est deja ouvert
     17!         * g1d_irec       ---> indice de derniere ecriture
     18!         * g1d_nvar       ---> nombre de variables deja definies a la
     19!                               derniere ecriture
     20!         * g1d_nomvar     ---> noms des vecteurs existants
     21!         * g1d_dimvar     ---> taille des vecteurs
     22!         * g1d_titrevar   ---> titres des vecteurs
     23!         * g1d_tmp1       ---> caractere
     24!         * g1d_tmp2       ---> caractere
     25
    2626      INTEGER g1d_nlayer
    2727      CHARACTER*100 g1d_nomfich
     
    4040      CHARACTER*100 g1d_tmp1,g1d_tmp2
    4141c
    42       COMMON/COMG1DI/g1d_nlayer
    43      &             ,g1d_unitfich
    44      &             ,g1d_unitctl
    45      &             ,g1d_irec
    46      &             ,g2d_irec
    47      &             ,g2d_appel
     42      COMMON/COMG1DI/g1d_nlayer                                         &
     43     &             ,g1d_unitfich                                        &
     44     &             ,g1d_unitctl                                         &
     45     &             ,g1d_irec                                            &
     46     &             ,g2d_irec                                            &
     47     &             ,g2d_appel                                           &
    4848     &             ,g1d_nvar
    49       COMMON/COMG1DC/g1d_dimvar(0:g1d_nvarmx)
    50      &             ,g1d_nomfich
    51      &             ,g1d_nomctl
    52      &             ,g1d_nomvar(0:g1d_nvarmx)
    53      &             ,g1d_titrevar(0:g1d_nvarmx)
    54      &             ,g1d_tmp1
     49      COMMON/COMG1DC/g1d_dimvar(0:g1d_nvarmx)                           &
     50     &             ,g1d_nomfich                                         &
     51     &             ,g1d_nomctl                                          &
     52     &             ,g1d_nomvar(0:g1d_nvarmx)                            &
     53     &             ,g1d_titrevar(0:g1d_nvarmx)                          &
     54     &             ,g1d_tmp1                                            &
    5555     &             ,g1d_tmp2
    56       COMMON/COMG1DL/g1d_premier
     56      COMMON/COMG1DL/g1d_premier                                        &
    5757     &             ,g2d_premier
    58 c
    5958
    6059      integer nbphypers
    6160      common/rythme/nbphypers
    62 c.......................................................................
     61!.......................................................................
    6362
  • trunk/LMDZ.VENUS/libf/phyvenus/comgeomphy.F90

    r101 r892  
    99 
    1010  subroutine initcomgeomphy
    11   use dimphy
     11  USE mod_phys_lmdz_para
    1212  implicit none
    1313   
    1414 
    15     allocate(airephy(klon))
    16     allocate(cuphy(klon))
    17     allocate(cvphy(klon))
    18     allocate(rlatd(klon))
    19     allocate(rlond(klon))
     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))
    2020
    2121  end subroutine initcomgeomphy
  • trunk/LMDZ.VENUS/libf/phyvenus/dimphy.F90

    r101 r892  
    88  INTEGER,SAVE :: klevp1
    99  INTEGER,SAVE :: klevm1
    10   INTEGER,SAVE :: kflev
    1110
    1211!$OMP THREADPRIVATE(klon,kfdia,kidia,kdlon)
    13   REAL,save,allocatable,dimension(:) :: zmasq
    14 !$OMP THREADPRIVATE(zmasq)   
    1512
    1613CONTAINS
     
    3128    klevp1=klev+1
    3229    klevm1=klev-1
    33     kflev=klev
    3430!$OMP END MASTER   
    35     ALLOCATE(zmasq(klon))   
    3631   
    3732  END SUBROUTINE init_dimphy
  • trunk/LMDZ.VENUS/libf/phyvenus/ini_histday.h

    r888 r892  
    33!
    44      IF (ok_journe) THEN
    5 c
     5
    66         zsto = dtime
    77         zout = dtime * REAL(ecrit_day)
    88         zsto1= dtime * REAL(ecrit_day)
    9 c
     9
    1010         idayref = day_ref
    1111         CALL ymds2ju(annee_ref, 1, idayref, zero, zjulian)
    12 c
    13          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlond,zx_lon)
    14          DO i = 1, iim
    15             zx_lon(i,1) = rlond(i+jjmp1-jjm)
    16             zx_lon(i,jjmp1) = rlond(i+jjmp1-jjm)
    17          ENDDO
    18          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlatd,zx_lat)
    19 
    20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    21 c    d'ou le -1.* devant zx_lon et zx_lat       
    22          CALL histbeg("histday.nc", iim,-1.*zx_lon(:,1), jjmp1,
    23      .                 -1.*zx_lat(1,:),
    24      .                 1,iim,1,jjmp1, itau_phy, zjulian, zsto,
    25      .                 nhori, nid_day)
    26          write(*,*)'Journee ', itau_phy, zjulian
    27          CALL histvert(nid_day, "presnivs", "Vertical levels", "mb",
     12
     13         call histbeg_phy("histday.nc",itau_phy,
     14     .                    zjulian,zsto,nhori,nid_day)
     15
     16!$OMP MASTER
     17         CALL histvert(nid_day, "presnivs", "Vertical levels", "Pa",
    2818     .                 klev, presnivs, nvert)
    2919
     
    3424c
    3525         CALL histdef(nid_day, "phis", "Surface geop. height", "-",
    36      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     26     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    3727     .                "once",  zsto,zout)
    3828c
    3929         CALL histdef(nid_day, "aire", "Grid area", "-",
    40      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     30     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4131     .                "once",  zsto,zout)
    4232c
    4333         CALL histdef(nid_day, "tsol", "Surface Temperature", "K",
    44      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     34     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4535     .                "ave(X)", zsto,zout)
    4636c
    4737         CALL histdef(nid_day, "psol", "Surface Pressure", "Pa",
    48      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     38     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4939     .                "ave(X)", zsto,zout)
    5040c
    5141         CALL histdef(nid_day, "ue", "Zonal energy transport", "-",
    52      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     42     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5343     .                "ave(X)", zsto,zout)
    5444c
    5545         CALL histdef(nid_day, "ve", "Merid energy transport", "-",
    56      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     46     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5747     .                "ave(X)", zsto,zout)
    5848c
     
    6555c
    6656         CALL histdef(nid_day, "temp", "Air temperature", "K",
    67      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     57     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    6858     .                "ave(X)", zsto,zout)
    6959c
    7060         CALL histdef(nid_day, "pres", "Air pressure", "Pa",
    71      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     61     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    7262     .                "ave(X)", zsto,zout)
    7363c
    7464         CALL histdef(nid_day, "geop", "Geopotential height", "m",
    75      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     65     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    7666     .                "ave(X)", zsto,zout)
    7767c
    7868         CALL histdef(nid_day, "vitu", "Zonal wind", "m/s",
    79      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     69     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8070     .                "ave(X)", zsto,zout)
    8171c
    8272         CALL histdef(nid_day, "vitv", "Meridional wind", "m/s",
    83      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     73     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8474     .                "ave(X)", zsto,zout)
    8575c
    8676         CALL histdef(nid_day, "vitw", "Vertical wind", "Pa/s",
    87      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     77     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8878     .                "ave(X)", zsto,zout)
    8979c
     
    9888c
    9989         CALL histdef(nid_day, "tops", "Solar rad. at TOA", "W/m2",
    100      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     90     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    10191     .                "ave(X)", zsto1,zout)
    10292c
    10393         CALL histdef(nid_day, "topl", "IR rad. at TOA", "W/m2",
    104      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     94     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    10595     .                "ave(X)", zsto1,zout)
    10696c
    10797         CALL histdef(nid_day, "sols", "Solar rad. at surf.", "W/m2",
    108      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     98     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    10999     .                "ave(X)", zsto1,zout)
    110100c
    111101         CALL histdef(nid_day, "soll", "IR rad. at surface", "W/m2",
    112      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     102     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    113103     .                "ave(X)", zsto1,zout)
    114104c
     
    116106c
    117107         CALL histdef(nid_day, "SWnet", "Net SW flux","W/m2",
    118      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     108     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    119109     .                32, "ave(X)", zsto1,zout)
    120110c
    121111         CALL histdef(nid_day, "LWnet", "Net LW flux","W/m2",
    122      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     112     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    123113     .                32, "ave(X)", zsto1,zout)
    124114c
     
    129119c
    130120         CALL histdef(nid_day, "dtdyn", "Dynamics dT", "K/s",
    131      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     121     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    132122     .                "ave(X)", zsto,zout)
    133123c
    134124c         CALL histdef(nid_day, "dtphy", "Physics dT", "K/s",
    135 c     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     125c     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    136126c     .                "ave(X)", zsto,zout)
    137127c
    138128         CALL histdef(nid_day, "dtvdf", "Boundary-layer dT", "K/s",
    139      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     129     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    140130     .                "ave(X)", zsto,zout)
    141131c
    142132         CALL histdef(nid_day, "dtajs", "Dry adjust. dT", "K/s",
    143      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     133     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    144134     .                "ave(X)", zsto,zout)
    145135c
    146136         CALL histdef(nid_day, "dtswr", "SW radiation dT", "K/s",
    147      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     137     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    148138     .                "ave(X)", zsto,zout)
    149139c
    150140         CALL histdef(nid_day, "dtlwr", "LW radiation dT", "K/s",
    151      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     141     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    152142     .                "ave(X)", zsto,zout)
    153143c
    154144c         CALL histdef(nid_day, "dtec", "Cinetic dissip dT", "K/s",
    155 c     .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     145c     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    156146c     .                "ave(X)", zsto,zout)
    157147c
    158148         CALL histdef(nid_mth, "dudyn", "Dynamics dU", "m/s2",
    159      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     149     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    160150     .                "ave(X)", zsto,zout)
    161151c
    162152         CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2",
    163      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     153     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    164154     .                "ave(X)", zsto,zout)
    165155c
    166156         CALL histdef(nid_mth, "duajs", "Dry convection dU", "m/s2",
    167      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     157     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    168158     .                "ave(X)", zsto,zout)
    169159c
    170160         CALL histdef(nid_mth, "dugwo", "GW oro dU", "m/s2",
    171      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     161     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    172162     .                "ave(X)", zsto,zout)
    173163c
    174164         CALL histdef(nid_mth, "dugwno", "GW non-oro dU", "m/s2",
    175      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     165     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    176166     .                "ave(X)", zsto,zout)
    177167c
    178168c        CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2",
    179 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     169c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    180170c    .                "ave(X)", zsto,zout)
    181171c
     
    190180         WRITE(str2,'(i2.2)') iq
    191181         CALL histdef(nid_day, "trac"//str2, "Tracer No."//str2, "-",
    192      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     182     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    193183     .                "ave(X)", zsto,zout)
    194184            ELSE
     
    201191c        call histdef(nid_day, "taux",
    202192c    $         "Zonal wind stress", "Pa", 
    203 c    $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     193c    $         iim,jj_nb,nhori, 1,1,1, nvert, 32,
    204194c    $         "ave(X)", zsto,zout)
    205195c
    206196c        call histdef(nid_day, "tauy",
    207197c    $         "Meridional xind stress", "Pa", 
    208 c    $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     198c    $         iim,jj_nb,nhori, 1,1,1, nvert, 32,
    209199c    $         "ave(X)", zsto,zout)
    210200c
    211201c        CALL histdef(nid_day, "cdrm", "Momentum drag coef.", "-",
    212 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     202c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    213203c    .                "ave(X)", zsto,zout)
    214204c
    215205c        CALL histdef(nid_day, "cdrh", "Heat drag coef.", "-",
    216 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     206c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    217207c    .                "ave(X)", zsto,zout)
    218208c
    219209      ENDIF !lev_histday.GE.5
    220210c-------------------------------------------------------
    221 c
     211
    222212         CALL histend(nid_day)
    223 c
    224          ndex2d = 0
    225          ndex3d = 0
    226 c
     213!$OMP END MASTER
     214
    227215      ENDIF ! fin de test sur ok_journe
  • trunk/LMDZ.VENUS/libf/phyvenus/ini_histins.h

    r888 r892  
    33!
    44      IF (ok_instan) THEN
    5 c
     5
    66          zsto1= dtime
    77          zsto = dtime * ecrit_ins
    88          zout = dtime * ecrit_ins
    9 c
     9
    1010         idayref = day_ref
    1111         CALL ymds2ju(annee_ref, 1, idayref, zero, zjulian)
    12 c
    13          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlond,zx_lon)
    14          DO i = 1, iim
    15             zx_lon(i,1) = rlond(i+jjmp1-jjm)
    16             zx_lon(i,jjmp1) = rlond(i+jjmp1-jjm)
    17          ENDDO
    18          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlatd,zx_lat)
    19          
    20 c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    21 c    d'ou le -1.* devant zx_lon et zx_lat       
    22          CALL histbeg("histins.nc", iim,-1.*zx_lon(:,1), jjmp1,
    23      .                 -1.*zx_lat(1,:),
    24      .                 1,iim,1,jjmp1, itau_phy, zjulian, zsto1,
    25      .                 nhori, nid_ins)
    26          write(*,*)'Inst ', itau_phy, zjulian
    27          CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb",
     12
     13         call histbeg_phy("histins.nc",itau_phy,
     14     .                    zjulian,zsto,nhori,nid_ins)
     15
     16!$OMP MASTER
     17         CALL histvert(nid_ins, "presnivs", "Vertical levels", "Pa",
    2818     .                 klev, presnivs, nvert)
    2919
     
    3424c
    3525         CALL histdef(nid_ins, "phis", "Surface geop. height", "-",
    36      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     26     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    3727     .                "once",  zsto,zout)
    3828c
    3929         CALL histdef(nid_ins, "aire", "Grid area", "-",
    40      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     30     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4131     .                "once",  zsto,zout)
    4232c
    4333         CALL histdef(nid_ins, "tsol", "Surface Temperature", "K",
    44      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     34     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4535     .                "ins(X)", zsto,zout)
    4636c
    4737         CALL histdef(nid_ins, "psol", "Surface Pressure", "Pa",
    48      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     38     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4939     .                "ins(X)", zsto,zout)
    5040c
    5141c        CALL histdef(nid_ins, "ue", "Zonal energy transport", "-",
    52 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     42c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5343c    .                "ins(X)", zsto,zout)
    5444c
    5545c        CALL histdef(nid_ins, "ve", "Merid energy transport", "-",
    56 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     46c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5747c    .                "ins(X)", zsto,zout)
    5848c
    5949         CALL histdef(nid_ins, "cdragh", "Drag coef on T", "-",
    60      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     50     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    6151     .                "ins(X)", zsto,zout)
    6252c
    6353         CALL histdef(nid_ins, "cdragm", "Drag coef on U", "-",
    64      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     54     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    6555     .                "ins(X)", zsto,zout)
    6656c
     
    7363c
    7464         CALL histdef(nid_ins, "temp", "Air temperature", "K",
    75      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     65     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    7666     .                "ins(X)", zsto,zout)
    7767c
    7868         CALL histdef(nid_ins, "pres", "Air pressure", "Pa",
    79      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     69     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8070     .                "ins(X)", zsto,zout)
    8171c
    8272         CALL histdef(nid_ins, "geop", "Geopotential height", "m",
    83      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     73     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8474     .                "ins(X)", zsto,zout)
    8575c
    8676         CALL histdef(nid_ins, "vitu", "Zonal wind", "m/s",
    87      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     77     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8878     .                "ins(X)", zsto,zout)
    8979c
    9080         CALL histdef(nid_ins, "vitv", "Meridional wind", "m/s",
    91      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     81     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    9282     .                "ins(X)", zsto,zout)
    9383c
    9484         CALL histdef(nid_ins, "vitw", "Vertical wind", "Pa/s",
    95      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     85     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    9686     .                "ins(X)", zsto,zout)
    9787c
    9888         CALL histdef(nid_ins, "dudyn", "Dynamics dU", "m/s2",
    99      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     89     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    10090     .                "ins(X)", zsto,zout)
    10191c
    10292         CALL histdef(nid_ins, "duvdf", "Boundary-layer dU", "m/s2",
    103      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     93     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    10494     .                "ins(X)", zsto,zout)
    10595c
    10696c        CALL histdef(nid_ins, "mang", "Angular momentum", "kg m2/s",
    107 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     97c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    10898c    .                "ins(X)", zsto,zout)
    10999c
    110100         CALL histdef(nid_ins, "Kz", "vertical diffusion coef", "m2/s",
    111      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     101     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    112102     .                "ins(X)", zsto,zout)
    113103c
     
    118108          WRITE(str2,'(i2.2)') iq
    119109          CALL histdef(nid_ins, tname(iq), ttext(iq), "ppm",
    120      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     110     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    121111     .                "ins(X)", zsto,zout)
    122112             ELSE
     
    128118c
    129119         CALL histdef(nid_ins, "tops", "Solar rad. at TOA", "W/m2",
    130      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     120     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    131121     .                "ins(X)", zsto,zout)
    132122c
     
    141131c
    142132         CALL histdef(nid_ins, "topl", "IR rad. at TOA", "W/m2",
    143      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     133     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    144134     .                "ins(X)", zsto,zout)
    145135c
    146136         CALL histdef(nid_ins, "sols", "Solar rad. at surf.", "W/m2",
    147      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     137     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    148138     .                "ins(X)", zsto,zout)
    149139c
    150140         CALL histdef(nid_ins, "soll", "IR rad. at surface", "W/m2",
    151      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     141     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    152142     .                "ins(X)", zsto,zout)
    153143c
     
    155145c
    156146         CALL histdef(nid_ins, "SWnet", "Net SW flux","W/m2",
    157      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     147     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    158148     .                32, "ins(X)", zsto,zout)
    159149c
    160150         CALL histdef(nid_ins, "LWnet", "Net LW flux","W/m2",
    161      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     151     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    162152     .                32, "ins(X)", zsto,zout)
    163153c
    164154         CALL histdef(nid_ins, "fluxvdf", "PBL net flux","W/m2",
    165      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     155     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    166156     .                32, "ins(X)", zsto,zout)
    167157c
    168158         CALL histdef(nid_ins, "fluxdyn", "Dyn. net flux","W/m2",
    169      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     159     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    170160     .                32, "ins(X)", zsto,zout)
    171161c
    172162         CALL histdef(nid_ins, "fluxajs", "Dry adj. net flux","W/m2",
    173      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     163     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    174164     .                32, "ins(X)", zsto,zout)
    175165c
    176166c        CALL histdef(nid_ins, "fluxec", "Cin. net flux","W/m2",
    177 c    .                iim,jjmp1,nhori, klev,1,klev,nvert,
     167c    .                iim,jj_nb,nhori, klev,1,klev,nvert,
    178168c    .                32, "ins(X)", zsto,zout)
    179169c
     
    184174c
    185175         CALL histdef(nid_ins, "dtdyn", "Dynamics dT", "K/s",
    186      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     176     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    187177     .                "ins(X)", zsto,zout)
    188178c
    189179c        CALL histdef(nid_ins, "dtphy", "Physics dT", "K/s",
    190 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     180c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    191181c    .                "ins(X)", zsto,zout)
    192182c
    193183         CALL histdef(nid_ins, "dtvdf", "Boundary-layer dT", "K/s",
    194      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     184     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    195185     .                "ins(X)", zsto,zout)
    196186c
    197187         CALL histdef(nid_ins, "dtajs", "Dry adjust. dT", "K/s",
    198      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     188     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    199189     .                "ins(X)", zsto,zout)
    200190c
    201191         CALL histdef(nid_ins, "dtswr", "SW radiation dT", "K/s",
    202      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     192     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    203193     .                "ins(X)", zsto,zout)
    204194c
    205195         CALL histdef(nid_ins, "dtlwr", "LW radiation dT", "K/s",
    206      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     196     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    207197     .                "ins(X)", zsto,zout)
    208198c
    209199c        CALL histdef(nid_ins, "dtec", "Cinetic dissip dT", "K/s",
    210 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     200c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    211201c    .                "ins(X)", zsto,zout)
    212202c
    213203         CALL histdef(nid_ins, "duajs", "Dry convection dU", "m/s2",
    214      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     204     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    215205     .                "ins(X)", zsto,zout)
    216206c
    217207         CALL histdef(nid_ins, "dugwo", "GW oro dU", "m/s2",
    218      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     208     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    219209     .                "ins(X)", zsto,zout)
    220210c
    221211         CALL histdef(nid_ins, "dugwno", "GW non-oro dU", "m/s2",
    222      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     212     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    223213     .                "ins(X)", zsto,zout)
    224214c
    225215c        CALL histdef(nid_ins, "dvvdf", "Boundary-layer dV", "m/s2",
    226 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     216c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    227217c    .                "ins(X)", zsto,zout)
    228218c
     
    234224c        call histdef(nid_ins, "taux",
    235225c    $         "Zonal wind stress", "Pa", 
    236 c    $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     226c    $         iim,jj_nb,nhori, 1,1,1, nvert, 32,
    237227c    $         "ins(X)", zsto,zout)
    238228c
    239229c        call histdef(nid_ins, "tauy",
    240230c    $         "Meridional xind stress", "Pa", 
    241 c    $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     231c    $         iim,jj_nb,nhori, 1,1,1, nvert, 32,
    242232c    $         "ins(X)", zsto,zout)
    243233c
    244234c        CALL histdef(nid_ins, "cdrm", "Momentum drag coef.", "-",
    245 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     235c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    246236c    .                "ins(X)", zsto,zout)
    247237c
    248238c        CALL histdef(nid_ins, "cdrh", "Heat drag coef.", "-",
    249 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     239c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    250240c    .                "ins(X)", zsto,zout)
    251241c
     
    254244c
    255245         CALL histend(nid_ins)
    256 c
    257          ndex2d = 0
    258          ndex3d = 0
    259 c
     246!$OMP END MASTER
     247
    260248      ENDIF
  • trunk/LMDZ.VENUS/libf/phyvenus/ini_histmth.h

    r888 r892  
    33!
    44      IF (ok_mensuel) THEN
    5 c
     5
    66         zsto = dtime
    77         zout = dtime * ecrit_mth
    8 c
     8
    99c zsto1: pour des valeurs "instantanees" mensuelles
    1010         zsto1 = dtime * ecrit_mth
     
    1212         zsto2 = dtime * radpas
    1313         PRINT*,' zsto,zsto1,zsto2,zout=',zsto, zsto1, zsto2,zout
    14 c
     14
    1515         idayref = day_ref
    1616         CALL ymds2ju(annee_ref, 1, idayref, zero, zjulian)
    17 c
    18          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlond,zx_lon)
    19          DO i = 1, iim
    20             zx_lon(i,1) = rlond(i+jjmp1-jjm)
    21             zx_lon(i,jjmp1) = rlond(i+jjmp1-jjm)
    22          ENDDO
    23          CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlatd,zx_lat)
    24          
    25 c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    26 c    d'ou le -1.* devant zx_lon et zx_lat       
    27          CALL histbeg("histmth.nc", iim,-1.*zx_lon(:,1), jjmp1,
    28      .                 -1.*zx_lat(1,:),
    29      .                 1,iim,1,jjmp1, itau_phy, zjulian, zsto,
    30      .                 nhori, nid_mth)
    31          write(*,*)'Mensuel ', itau_phy, zjulian
    32          CALL histvert(nid_mth, "presnivs", "Vertical levels", "mb",
     17
     18         call histbeg_phy("histmth.nc",itau_phy,
     19     .                    zjulian,zsto,nhori,nid_mth)
     20
     21!$OMP MASTER
     22         CALL histvert(nid_mth, "presnivs", "Vertical levels", "Pa",
    3323     .                 klev, presnivs, nvert)
    3424
     
    3929c
    4030         CALL histdef(nid_mth, "phis", "Surface geop. height", "-",
    41      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     31     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4232     .                "once",  zsto,zout)
    4333c
    4434         CALL histdef(nid_mth, "aire", "Grid area", "-",
    45      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     35     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    4636     .                "once",  zsto,zout)
    4737c
    4838         CALL histdef(nid_mth, "tsol", "Surface Temperature", "K",
    49      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     39     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5040     .                "ave(X)", zsto,zout)
    5141c
    5242         CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa",
    53      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     43     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5444     .                "ave(X)", zsto,zout)
    5545c
    5646c        CALL histdef(nid_mth, "ue", "Zonal energy transport", "-",
    57 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     47c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    5848c    .                "ave(X)", zsto,zout)
    5949c
    6050c        CALL histdef(nid_mth, "ve", "Merid energy transport", "-",
    61 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     51c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    6252c    .                "ave(X)", zsto,zout)
    6353c
    6454         CALL histdef(nid_mth, "cdragh", "Drag coef on T", "-",
    65      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     55     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    6656     .                "ave(X)", zsto,zout)
    6757c
    6858         CALL histdef(nid_mth, "cdragm", "Drag coef on U", "-",
    69      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     59     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    7060     .                "ave(X)", zsto,zout)
    7161c
     
    7868c
    7969         CALL histdef(nid_mth, "temp", "Air temperature", "K",
    80      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     70     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8171     .                "ave(X)", zsto,zout)
    8272c
    8373         CALL histdef(nid_mth, "pres", "Air pressure", "Pa",
    84      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     74     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8575     .                "ave(X)", zsto,zout)
    8676c
    8777         CALL histdef(nid_mth, "geop", "Geopotential height", "m",
    88      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     78     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    8979     .                "ave(X)", zsto,zout)
    9080c
    9181         CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s",
    92      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     82     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    9383     .                "ave(X)", zsto,zout)
    9484c
    9585         CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s",
    96      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     86     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    9787     .                "ave(X)", zsto,zout)
    9888c
    9989         CALL histdef(nid_mth, "vitw", "Vertical wind", "Pa/s",
    100      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     90     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    10191     .                "ave(X)", zsto,zout)
    10292c
    10393         CALL histdef(nid_mth, "dudyn", "Dynamics dU", "m/s2",
    104      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     94     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    10595     .                "ave(X)", zsto,zout)
    10696c
    10797         CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2",
    108      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     98     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    10999     .                "ave(X)", zsto,zout)
    110100c
    111101c        CALL histdef(nid_mth, "mang", "Angular momentum", "kg m2/s",
    112 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     102c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    113103c    .                "ave(X)", zsto,zout)
    114104c
    115105         CALL histdef(nid_mth, "Kz", "vertical diffusion coef", "m2/s",
    116      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     106     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    117107     .                "ave(X)", zsto,zout)
    118108c
     
    123113          WRITE(str2,'(i2.2)') iq
    124114          CALL histdef(nid_mth, tname(iq), ttext(iq), "ppm",
    125      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     115     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    126116     .                "ave(X)", zsto,zout)
    127117             ELSE
     
    133123c
    134124         CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2",
    135      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     125     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    136126     .                "ave(X)", zsto2,zout)
    137127c
     
    146136c
    147137         CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2",
    148      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     138     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    149139     .                "ave(X)", zsto2,zout)
    150140c
    151141         CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2",
    152      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     142     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    153143     .                "ave(X)", zsto2,zout)
    154144c
    155145         CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2",
    156      .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     146     .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    157147     .                "ave(X)", zsto2,zout)
    158148c
     
    160150c
    161151         CALL histdef(nid_mth, "SWnet", "Net SW flux","W/m2",
    162      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     152     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    163153     .                32, "ave(X)", zsto2,zout)
    164154c
    165155         CALL histdef(nid_mth, "LWnet", "Net LW flux","W/m2",
    166      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     156     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    167157     .                32, "ave(X)", zsto2,zout)
    168158c
    169159         CALL histdef(nid_mth, "fluxvdf", "PBL net flux","W/m2",
    170      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     160     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    171161     .                32, "ave(X)", zsto,zout)
    172162c
    173163         CALL histdef(nid_mth, "fluxdyn", "Dyn. net flux","W/m2",
    174      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     164     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    175165     .                32, "ave(X)", zsto,zout)
    176166c
    177167         CALL histdef(nid_mth, "fluxajs", "Dry adj. net flux","W/m2",
    178      .                iim,jjmp1,nhori, klev,1,klev,nvert,
     168     .                iim,jj_nb,nhori, klev,1,klev,nvert,
    179169     .                32, "ave(X)", zsto,zout)
    180170c
    181171c        CALL histdef(nid_mth, "fluxec", "Cin. net flux","W/m2",
    182 c    .                iim,jjmp1,nhori, klev,1,klev,nvert,
     172c    .                iim,jj_nb,nhori, klev,1,klev,nvert,
    183173c    .                32, "ave(X)", zsto,zout)
    184174c
     
    189179c
    190180         CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s",
    191      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     181     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    192182     .                "ave(X)", zsto,zout)
    193183c
    194184c        CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s",
    195 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     185c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    196186c    .                "ave(X)", zsto,zout)
    197187c
    198188         CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s",
    199      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     189     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    200190     .                "ave(X)", zsto,zout)
    201191c
    202192         CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s",
    203      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     193     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    204194     .                "ave(X)", zsto,zout)
    205195c
    206196         CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s",
    207      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     197     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    208198     .                "ave(X)", zsto,zout)
    209199c
    210200         CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s",
    211      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     201     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    212202     .                "ave(X)", zsto,zout)
    213203c
    214204c        CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s",
    215 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     205c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    216206c    .                "ave(X)", zsto,zout)
    217207c
    218208         CALL histdef(nid_mth, "duajs", "Dry convection dU", "m/s2",
    219      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     209     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    220210     .                "ave(X)", zsto,zout)
    221211c
    222212         CALL histdef(nid_mth, "dugwo", "GW oro dU", "m/s2",
    223      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     213     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    224214     .                "ave(X)", zsto,zout)
    225215c
    226216         CALL histdef(nid_mth, "dugwno", "GW non-oro dU", "m/s2",
    227      .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     217     .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    228218     .                "ave(X)", zsto,zout)
    229219c
    230220c        CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2",
    231 c    .                iim,jjmp1,nhori, klev,1,klev,nvert, 32,
     221c    .                iim,jj_nb,nhori, klev,1,klev,nvert, 32,
    232222c    .                "ave(X)", zsto,zout)
    233223c
     
    239229c        call histdef(nid_mth, "taux",
    240230c    $         "Zonal wind stress", "Pa", 
    241 c    $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     231c    $         iim,jj_nb,nhori, 1,1,1, nvert, 32,
    242232c    $         "ave(X)", zsto,zout)
    243233c
    244234c        call histdef(nid_mth, "tauy",
    245235c    $         "Meridional xind stress", "Pa", 
    246 c    $         iim,jjmp1,nhori, 1,1,1, -99, 32,
     236c    $         iim,jj_nb,nhori, 1,1,1, nvert, 32,
    247237c    $         "ave(X)", zsto,zout)
    248238c
    249239c        CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-",
    250 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     240c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    251241c    .                "ave(X)", zsto,zout)
    252242c
    253243c        CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-",
    254 c    .                iim,jjmp1,nhori, 1,1,1, -99, 32,
     244c    .                iim,jj_nb,nhori, 1,1,1, nvert, 32,
    255245c    .                "ave(X)", zsto,zout)
    256246c
    257247      ENDIF !lev_histmth.GE.5
    258248c-------------------------------------------------------
    259 c
     249
    260250         CALL histend(nid_mth)
    261 c
    262          ndex2d = 0
    263          ndex3d = 0
    264 c
     251!$OMP END MASTER
     252
    265253      ENDIF ! fin de test sur ok_mensuel
  • trunk/LMDZ.VENUS/libf/phyvenus/iniphysiq.F

    r841 r892  
    4343c   -------------
    4444 
    45       use dimphy
    46       USE comgeomphy
     45      USE dimphy, only : klev
     46      USE mod_grid_phy_lmdz, only : klon_glo
     47      USE mod_phys_lmdz_para, only : klon_omp,klon_omp_begin,
     48     &                               klon_omp_end,klon_mpi_begin
     49      USE comgeomphy, only : airephy,cuphy,cvphy,rlond,rlatd
    4750      IMPLICIT NONE
    48 #include "dimensions.h"
     51#include "iniprint.h"
    4952
    50       REAL prad,pg,pr,pcpp,punjours
     53      REAL,INTENT(IN) :: prad ! radius of the planet (m)
     54      REAL,INTENT(IN) :: pg ! gravitational acceleration (m/s2)
     55      REAL,INTENT(IN) :: pr ! ! reduced gas constant R/mu
     56      REAL,INTENT(IN) :: pcpp ! specific heat Cp
     57      REAL,INTENT(IN) :: punjours ! length (in s) of a standard day
     58      INTEGER,INTENT(IN) :: ngrid ! number of horizontal grid points in the physics
     59      INTEGER,INTENT(IN) :: nlayer ! number of atmospheric layers
     60      REAL,INTENT(IN) :: plat(ngrid) ! latitudes of the physics grid
     61      REAL,INTENT(IN) :: plon(ngrid) ! longitudes of the physics grid
     62      REAL,INTENT(IN) :: parea(klon_glo) ! area (m2)
     63      REAL,INTENT(IN) :: pcu(klon_glo) ! cu coeff. (u_covariant = cu * u)
     64      REAL,INTENT(IN) :: pcv(klon_glo) ! cv coeff. (v_covariant = cv * v)
     65      INTEGER,INTENT(IN) :: pdayref ! reference day of for the simulation
     66      REAL,INTENT(IN) :: ptimestep !physics time step (s)
    5167      INTEGER,INTENT(IN) :: iflag_phys ! type of physics to be called
    52       INTEGER ngrid,nlayer
    53       REAL plat(ngrid),plon(ngrid),parea(klon),pcu(klon),pcv(klon)
    54       INTEGER pdayref
    55  
    56       REAL ptimestep
     68
     69      INTEGER :: ibegin,iend,offset
     70      CHARACTER (LEN=20) :: modname='iniphysiq'
     71      CHARACTER (LEN=80) :: abort_message
    5772 
    5873      IF (nlayer.NE.klev) THEN
    59          PRINT*,'STOP in inifis'
    60          PRINT*,'Probleme de dimensions :'
    61          PRINT*,'nlayer     = ',nlayer
    62          PRINT*,'klev   = ',klev
    63          STOP
     74         write(lunout,*) 'STOP in ',trim(modname)
     75         write(lunout,*) 'Problem with dimensions :'
     76         write(lunout,*) 'nlayer     = ',nlayer
     77         write(lunout,*) 'klev   = ',klev
     78         abort_message = ''
     79         CALL abort_gcm (modname,abort_message,1)
    6480      ENDIF
    6581
    66       IF (ngrid.NE.klon) THEN
    67          PRINT*,'STOP in inifis'
    68          PRINT*,'Probleme de dimensions :'
    69          PRINT*,'ngrid     = ',ngrid
    70          PRINT*,'klon   = ',klon
    71          STOP
     82      IF (ngrid.NE.klon_glo) THEN
     83         write(lunout,*) 'STOP in ',trim(modname)
     84         write(lunout,*) 'Problem with dimensions :'
     85         write(lunout,*) 'ngrid     = ',ngrid
     86         write(lunout,*) 'klon   = ',klon_glo
     87         abort_message = ''
     88         CALL abort_gcm (modname,abort_message,1)
    7289      ENDIF
    7390
    74       airephy=parea
    75       cuphy=pcu
    76       cvphy=pcv
    77       rlond = plon
    78       rlatd = plat
     91c$OMP PARALLEL PRIVATE(ibegin,iend)
     92c$OMP+         SHARED(parea,pcu,pcv,plon,plat)
     93     
     94      offset=klon_mpi_begin-1
     95      airephy(1:klon_omp)=parea(offset+klon_omp_begin:
     96     &                          offset+klon_omp_end)
     97      cuphy(1:klon_omp)=pcu(offset+klon_omp_begin:offset+klon_omp_end)
     98      cvphy(1:klon_omp)=pcv(offset+klon_omp_begin:offset+klon_omp_end)
     99      rlond(1:klon_omp)=plon(offset+klon_omp_begin:offset+klon_omp_end)
     100      rlatd(1:klon_omp)=plat(offset+klon_omp_begin:offset+klon_omp_end)
    79101
    80102      call suphec
     103
     104c$OMP END PARALLEL
     105
    81106c     print*,'ATTENTION !!! TRAVAILLER SUR INIPHYSIQ'
    82107c     print*,'CONTROLE DES LATITUDES, LONGITUDES, PARAMETRES ...'
    83108
     109c      print*,'agagagagagagagagaga'
     110c      print*,'klon_mpi_begin =', klon_mpi_begin
     111c      print*,'klon_mpi_end =', klon_mpi_end
     112c      print*,'klon_mpi =', klon_mpi
     113c      print*,'klon_mpi_para_nb =', klon_mpi_para_nb
     114c      print*,'klon_mpi_para_begin =', klon_mpi_para_begin
     115c      print*,'klon_mpi_para_end  =', klon_mpi_para_end
     116c      print*,'mpi_rank =', mpi_rank
     117c      print*,'mpi_size =', mpi_size
     118c      print*,'mpi_root =', mpi_root
     119c      print*,'klon_glo =', klon_glo
     120c      print*,'is_mpi_root =',is_mpi_root
     121c      print*,'is_omp_root =',is_omp_root
     122
     123! pas d'inifis ici...
     124! est-ce que cursor est utile ? Voir avec Aymeric
     125!      cursor = klon_mpi_begin
     126!      print*, "CURSOR !!!!", mpi_rank, cursor
    84127
    85128      RETURN
  • trunk/LMDZ.VENUS/libf/phyvenus/init_phys_lmdz.F90

    r119 r892  
    33!
    44SUBROUTINE init_phys_lmdz(iim,jjp1,llm,nb_proc,distrib)
     5  USE mod_phys_lmdz_para
    56  USE mod_grid_phy_lmdz
    6   USE dimphy
     7  USE dimphy, ONLY : init_dimphy
     8  USE infotrac, ONLY : type_trac
     9
    710  IMPLICIT NONE
    811 
     
    1518
    1619    CALL init_grid_phy_lmdz(iim,jjp1,llm)
    17     CALL init_dimphy(klon_glo,nbp_lev)
     20    CALL init_phys_lmdz_para(iim,jjp1,nb_proc,distrib)
     21!$OMP PARALLEL
     22    CALL init_dimphy(klon_omp,nbp_lev)
     23!$OMP END PARALLEL
    1824 
    1925END SUBROUTINE init_phys_lmdz 
  • trunk/LMDZ.VENUS/libf/phyvenus/interface_surf.F90

    r97 r892  
    256256
    257257    zx_coef(i) = coef1lay(i) &
    258      & * (1.0+SQRT(u1lay(i)**2+v1lay(i)**2)) &
     258     & * SQRT(u1lay(i)**2+v1lay(i)**2) &
    259259     & * p1lay(i)/(RD*t1lay(i))
    260260
  • trunk/LMDZ.VENUS/libf/phyvenus/load_ksi.F

    r101 r892  
    3232      real   ztop(klon)            ! Altitude of the top of cloud deck (km)
    3333c outputs
    34       real   ksive(0:kflev+1,0:kflev+1,nnuve,nbmat)  ! ksi matrixes in Vincent's file
     34      real   ksive(0:klev+1,0:klev+1,nnuve,nbmat)  ! ksi matrixes in Vincent's file
    3535
    3636c local variables
     
    4444      real   dlambda                  ! cm-1 
    4545
    46       nlve = kflev
     46      nlve = klev
    4747
    4848c ------------------------
  • trunk/LMDZ.VENUS/libf/phyvenus/load_psi.F

    r101 r892  
    3838      real   psurf(klon)           ! Surface pressure
    3939      real   ztop(klon)            ! Altitude of the top of cloud deck (km)
    40       real   ksive(0:kflev+1,0:kflev+1,nnuve,nbmat)  ! ksi matrixes in Vincent's file
    41       real   temp(klon,0:kflev+1)  ! Temperature in layer (K)
     40      real   ksive(0:klev+1,0:klev+1,nnuve,nbmat)  ! ksi matrixes in Vincent's file
     41      real   temp(klon,0:klev+1)  ! Temperature in layer (K)
    4242c outputs
    43       real   psimap(0:kflev+1,0:kflev+1,klon)
    44       real   deltapsimap(0:kflev+1,0:kflev+1,klon)
     43      real   psimap(0:klev+1,0:klev+1,klon)
     44      real   deltapsimap(0:klev+1,0:klev+1,klon)
    4545
    4646c local variables
     
    4848      integer mat,m,mat0
    4949      character*100 file
    50       real   bplck(0:kflev+1,nnuve)    ! Planck luminances in table layers
    51       real   y(0:kflev,nnuve)          ! intermediaire Planck
    52       real   zdblay(0:kflev+1,nnuve)   ! gradient en temperature de planck
     50      real   bplck(0:klev+1,nnuve)    ! Planck luminances in table layers
     51      real   y(0:klev,nnuve)          ! intermediaire Planck
     52      real   zdblay(0:klev+1,nnuve)   ! gradient en temperature de planck
    5353      real   ksi
    5454      real   factp,factz
    5555
    56       nlve = kflev  ! (doit correspondre, pour bplck, y et zdblay)
     56      nlve = klev  ! (doit correspondre, pour bplck, y et zdblay)
    5757
    5858c -----------------------
  • trunk/LMDZ.VENUS/libf/phyvenus/lw_venus_ve.F

    r808 r892  
    3535c inputs
    3636
    37       REAL    PPB(KFLEV+1)  ! inter-couches PRESSURE (bar)
    38       REAL    pt(kflev)     ! mid-layer temperature
    39       real    psi(0:kflev+1,0:kflev+1)      ! NER in W/m**2
    40       real    deltapsi(0:kflev+1,0:kflev+1) ! D NER / DT in W/m**2/K
     37      REAL    PPB(klev+1)  ! inter-couches PRESSURE (bar)
     38      REAL    pt(klev)     ! mid-layer temperature
     39      real    psi(0:klev+1,0:klev+1)      ! NER in W/m**2
     40      real    deltapsi(0:klev+1,0:klev+1) ! D NER / DT in W/m**2/K
    4141C
    4242c output
    4343
    44       REAL   PCOOL(KFLEV) ! LONGWAVE COOLING (K/VENUSDAY) within each layer
     44      REAL   PCOOL(klev) ! LONGWAVE COOLING (K/VENUSDAY) within each layer
    4545      REAL   PTOPLW       ! LONGWAVE FLUX AT T.O.A. (net, + vers le haut)
    4646      REAL   PSOLLW       ! LONGWAVE FLUX AT SURFACE (net, + vers le haut)
    4747      REAL   PSOLLWDN     ! LONGWAVE FLUX AT SURFACE (down, + vers le bas)
    48       REAL   ZFLNET(KFLEV+1) ! net thermal flux at ppb levels (+ vers le haut)
     48      REAL   ZFLNET(klev+1) ! net thermal flux at ppb levels (+ vers le haut)
    4949
    5050C
     
    5555     
    5656      integer i,j,p
    57       real   zlnet(kflev+1)    ! net thermal flux (W/m**2)
    58       real   dzlnet(0:kflev)   ! Radiative budget (W/m**2)
    59       real   pdp(kflev)        ! epaisseur de la couche en pression (Pa)
     57      real   zlnet(klev+1)    ! net thermal flux (W/m**2)
     58      real   dzlnet(0:klev)   ! Radiative budget (W/m**2)
     59      real   pdp(klev)        ! epaisseur de la couche en pression (Pa)
    6060
    6161c --------------------------
     
    6565c flux aux intercouches:
    6666c zlnet(i+1) est le flux net traversant le plafond de la couche i (+ vers le haut)
    67       do p=0,kflev ! numero de la couche
     67      do p=0,klev ! numero de la couche
    6868        zlnet(p+1) = 0.0
    69         do j=p+1,kflev+1
     69        do j=p+1,klev+1
    7070         do i=0,p
    7171           zlnet(p+1) = zlnet(p+1)+ psi(i,j)
     
    7878c flux vers le bas au sol, + vers le bas:
    7979      PSOLLWDN = 0.0
    80       do i=1,kflev+1
     80      do i=1,klev+1
    8181        PSOLLWDN = PSOLLWDN+max(psi(i,0),0.0)
    8282      enddo
    8383
    8484c dfluxnet = radiative budget (W m-2)
    85       do p=0,kflev ! numero de la couche
     85      do p=0,klev ! numero de la couche
    8686        dzlnet(p) = 0.0
    87         do j=0,kflev+1
     87        do j=0,klev+1
    8888           dzlnet(p) = dzlnet(p)+psi(p,j)
    8989        enddo
     
    9797c --------
    9898     
    99       do j=1,kflev+1
     99      do j=1,klev+1
    100100        ZFLNET(j) =  zlnet(j)
    101101      enddo
    102       PTOPLW   = ZFLNET(kflev+1)
     102      PTOPLW   = ZFLNET(klev+1)
    103103     
    104104c Heating rates
     
    110110c              /cp  (J/kg/K)
    111111     
    112       do j=1,kflev
     112      do j=1,klev
    113113        pdp(j)=(PPB(j)-PPB(j+1))*1.e5
    114114      enddo
     
    116116c calcul direct OU calcul par schema implicit
    117117      if (1.eq.1) then
    118         do j=1,kflev
     118        do j=1,klev
    119119! ADAPTATION GCM POUR CP(T)
    120120         PCOOL(j) = dzlnet(j) *RG/cpdet(pt(j)) / pdp(j)
    121121        enddo
    122122      else
    123         call lwi(kflev,dzlnet,deltapsi,pdp,pt,PCOOL)
     123        call lwi(klev,dzlnet,deltapsi,pdp,pt,PCOOL)
    124124      endif
    125125c     print*,dzlnet
     
    127127c     print*,PCOOL
    128128
    129       do j=1,kflev
     129      do j=1,klev
    130130        PCOOL(j) = PCOOL(j)*dureejour ! K/Venusday
    131131      enddo
  • trunk/LMDZ.VENUS/libf/phyvenus/lwi.F

    r101 r892  
    1010
    1111#include "dimensions.h"
    12 #include "comg1d.h"  !pour grads 1D
    1312#include "YOMCST.h"
    1413#include "timerad.h"
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq.F

    r887 r892  
    6060      use dimphy
    6161      USE comgeomphy
     62      USE mod_phys_lmdz_para, only : is_parallel,jj_nb
     63      USE phys_state_var_mod ! Variables sauvegardees de la physique
     64      USE iophy
    6265      IMPLICIT none
    6366c======================================================================
     
    117120      REAL qx(klon,klev,nqmax)
    118121
    119       REAL,save,allocatable :: t_ancien(:,:)
    120       REAL,save,allocatable :: u_ancien(:,:)
    121       LOGICAL ancien_ok
    122       SAVE ancien_ok
    123 
    124122      REAL d_u_dyn(klon,klev)
    125123      REAL d_t_dyn(klon,klev)
     
    133131      REAL d_ps(klon)
    134132
    135       REAL,save,allocatable :: swnet(:,:)
    136       REAL,save,allocatable :: lwnet(:,:)
    137 c
    138133      logical ok_hf
    139134      real ecrit_hf
     
    149144c Variables propres a la physique
    150145c
    151       REAL,save,allocatable :: radsol(:) ! bilan radiatif au sol calcule par code radiatif
    152146      REAL,save,allocatable :: rlev(:,:) ! altitude a chaque niveau (interface inferieure de la couche)
    153147      INTEGER,save :: itap        ! compteur pour la physique
    154       REAL,save,allocatable :: ftsol(:)    ! temperature du sol
    155       REAL,save,allocatable :: ftsoil(:,:) ! temperature dans le sol
    156       REAL,save,allocatable :: falbe(:)    ! albedo
    157148      REAL delp(klon,klev)        ! epaisseur d'une couche
    158149     
    159 CMODDEB FLOTT
    160 c
    161 c  Parametres de l'Orographie a l'Echelle Sous-Maille (OESM):
    162 c
    163       REAL,save,allocatable :: zmea(:)   ! orographie moyenne
    164       REAL,save,allocatable :: zstd(:)   ! deviation standard de l'OESM
    165       REAL,save,allocatable :: zsig(:)   ! pente de l'OESM
    166       REAL,save,allocatable :: zgam(:)   ! anisotropie de l'OESM
    167       REAL,save,allocatable :: zthe(:)   ! orientation de l'OESM
    168       REAL,save,allocatable :: zpic(:)   ! Maximum de l'OESM
    169       REAL,save,allocatable :: zval(:)   ! Minimum de l'OESM
    170       REAL,save,allocatable :: rugoro(:) ! longueur de rugosite de l'OESM
    171 
    172150      INTEGER igwd,idx(klon),itest(klon)
    173151c
     
    198176
    199177      REAL zustrph(klon),zvstrph(klon)
    200       REAL,save,allocatable :: zuthe(:),zvthe(:)
    201178
    202179c Variables locales:
     
    213190
    214191      REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee
    215       REAL,save,allocatable :: dlw(:)  ! derivee infra rouge
    216       REAL,save,allocatable :: fder(:) ! Derive de flux (sensible et latente)
    217192      REAL ve(klon) ! integr. verticale du transport meri. de l'energie
    218193      REAL vq(klon) ! integr. verticale du transport meri. de l'eau
     
    234209      EXTERNAL suphec    ! initialiser certaines constantes
    235210      EXTERNAL transp    ! transport total de l'eau et de l'energie
    236       INTEGER  lnblnk1
    237       EXTERNAL lnblnk1   !enleve les blancs a la fin d'une variable de type
    238                          !caracter
    239211      EXTERNAL abort_gcm
    240212      EXTERNAL printflag
     
    257229      REAL flux_ec(klon,klev)   ! flux de chaleur Ec
    258230c
    259 c Le rayonnement n'est pas calcule tous les pas, il faut donc
    260 c                      sauvegarder les sorties du rayonnement
    261       REAL,save,allocatable :: heat(:,:)    ! chauffage solaire
    262       REAL,save,allocatable :: cool(:,:)    ! refroidissement infrarouge
    263       REAL,save,allocatable :: dtrad(:,:)   ! K s-1
    264       REAL,save,allocatable :: topsw(:), toplw(:)
    265       REAL,save,allocatable :: solsw(:), sollw(:)
    266       REAL,save,allocatable :: sollwdown(:) ! downward LW flux at surface
    267231      REAL tmpout(klon,klev)  ! K s-1
    268232
     
    321285c
    322286c pour ioipsl
    323       INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev)
    324       REAL zx_tmp_fi2d(klon)      ! variable temporaire grille physique
    325       REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D
    326       REAL zx_tmp_2d(iim,jjmp1),zx_tmp_3d(iim,jjmp1,klev)
    327       REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1)
    328 
    329287      INTEGER nid_day, nid_mth, nid_ins
    330288      SAVE nid_day, nid_mth, nid_ins
    331 c
    332289      INTEGER nhori, nvert, idayref
    333290      REAL zsto, zout, zsto1, zsto2, zero
     
    383340      bilansmc = 0
    384341      ballons  = 0
     342! NE FONCTIONNENT PAS ENCORE EN PARALLELE !!!
     343      if (is_parallel) then
     344        bilansmc = 0
     345        ballons  = 0
     346      endif
    385347
    386348      IF (if_ebil.ge.1) THEN
     
    398360c========================
    399361      IF (debut) THEN
    400          allocate(t_ancien(klon,klev),u_ancien(klon,klev))
    401          allocate(swnet(klon,klevp1),lwnet(klon,klevp1))
    402          allocate(radsol(klon),ftsol(klon),falbe(klon))
    403          allocate(rlev(klon,klevp1),ftsoil(klon,nsoilmx))
    404          allocate(zmea(klon),zstd(klon),zsig(klon),zgam(klon))
    405          allocate(zthe(klon),zpic(klon),zval(klon),rugoro(klon))
    406          allocate(zuthe(klon),zvthe(klon),dlw(klon),fder(klon))
    407          allocate(heat(klon,klev),cool(klon,klev))
    408          allocate(dtrad(klon,klev),topsw(klon),toplw(klon))
    409          allocate(solsw(klon),sollw(klon),sollwdown(klon))
     362         allocate(rlev(klon,klevp1))
    410363         allocate(source(klon,nqmax))
    411364
     
    420373     .                  if_ebil)
    421374
     375         call phys_state_var_init
    422376c
    423377c Initialiser les compteurs:
     
    428382c Lecture startphy.nc :
    429383c
    430 c REMETTRE TOUS LES PARAMETRES POUR OROGW...
    431          CALL phyetat0 ("startphy.nc",
    432      .       rlatd,rlond,ftsol,ftsoil,
    433      .       falbe, solsw, sollw,
    434      .       dlw,radsol,
    435      .      zmea,zstd,zsig,zgam,zthe,zpic,zval,
    436      .       t_ancien, ancien_ok)
     384         CALL phyetat0 ("startphy.nc")
    437385
    438386c dtime est defini dans tabcontrol.h et lu dans startphy
     
    13081256      IF (lafin) THEN
    13091257         itau_phy = itau_phy + itap
    1310 c REMETTRE TOUS LES PARAMETRES POUR OROGW...
    1311          CALL phyredem ("restartphy.nc",
    1312      .      rlatd, rlond, ftsol, ftsoil,
    1313      .      falbe,
    1314      .      solsw, sollw,dlw,
    1315      .      radsol,
    1316      .      zmea,zstd,zsig,zgam,zthe,zpic,zval,
    1317      .      t_ancien)
     1258         CALL phyredem ("restartphy.nc")
    13181259     
    13191260c--------------FLOTT
  • trunk/LMDZ.VENUS/libf/phyvenus/phytrac.F

    r101 r892  
    8686cAA
    8787
    88       CHARACTER*2 itn
    89 C maf ioipsl
    90       CHARACTER*2 str2
    91       INTEGER nhori, nvert
    92       REAL zsto, zout, zjulian
    93       INTEGER nid_tra
    94       SAVE nid_tra
    95       INTEGER nid_tra2,nid_tra3
    96       SAVE nid_tra2,nid_tra3
    97       INTEGER ndex(1)
    98       INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev)
    99       REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev)
    100       REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1)
    101 c
    102       integer itau_w   ! pas de temps ecriture = nstep + itau_phy
    103 c
    104 
    105 C
    106 C Variables liees a l'ecriture de la bande histoire : phytrac.nc
    107 c
    108 c      INTEGER ecrit_tra
    109 c      SAVE ecrit_tra   
    110       logical ok_sync
    111       parameter (ok_sync = .true.)
    112 C
    11388C les traceurs
    11489C
  • trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.F

    r101 r892  
    5555      real solsw(klon), sollw(klon)
    5656      real sollwdown(klon)
    57       REAL swnet(klon,kflev+1),lwnet(klon,kflev+1)
     57      REAL swnet(klon,klev+1),lwnet(klon,klev+1)
    5858c
    5959      INTEGER k, kk, i, j, nb_gr
    6060c
    61       REAL   PPB(kflev+1)
     61      REAL   PPB(klev+1)
    6262c
    6363      REAL   zfract, zrmu0
    6464c
    65       REAL   zheat(kflev), zcool(kflev)
    66       REAL   ZFSNET(KFLEV+1),ZFLNET(KFLEV+1)
     65      REAL   zheat(klev), zcool(klev)
     66      REAL   ZFSNET(klev+1),ZFLNET(klev+1)
    6767      REAL   ztopsw, ztoplw
    6868      REAL   zsolsw, zsollw
     
    7171cIM END
    7272      real,save,allocatable :: ksive(:,:,:,:) ! ksi matrixes in Vincent's file
    73       real    psimap(0:kflev+1,0:kflev+1,klon)
    74       real    deltapsimap(0:kflev+1,0:kflev+1,klon)
    75       real    psi(0:kflev+1,0:kflev+1)
    76       real    deltapsi(0:kflev+1,0:kflev+1)
     73      real    psimap(0:klev+1,0:klev+1,klon)
     74      real    deltapsimap(0:klev+1,0:klev+1,klon)
     75      real    psi(0:klev+1,0:klev+1)
     76      real    deltapsi(0:klev+1,0:klev+1)
    7777      real    latdeg
    78       real    pt0(klon,0:kflev+1)
     78      real    pt0(klon,0:klev+1)
    7979      real,save,allocatable :: ztop(:) ! in km
    8080
     
    9292
    9393c ---------- ksive --------------
    94         allocate(ksive(0:kflev+1,0:kflev+1,nnuve,nbmat))
     94        allocate(ksive(0:klev+1,0:klev+1,nnuve,nbmat))
    9595        call load_ksi(ksive)
    9696c ---------- ztop --------------
     
    122122            pt0(i,k) = t(i,k)
    123123          ENDDO
    124           pt0(i,kflev+1) = 0.
     124          pt0(i,klev+1) = 0.
    125125      ENDDO !i
    126126
     
    154154         zrmu0 = rmu0(j)
    155155 
    156       DO k = 1, kflev+1
     156      DO k = 1, klev+1
    157157         PPB(k) = paprs(j,k)/1.e5
    158158      ENDDO
    159159 
    160       DO k = 0,kflev+1
    161       DO i = 0,kflev+1
     160      DO k = 0,klev+1
     161      DO i = 0,klev+1
    162162        psi(i,k) = psimap(i,k,j)
    163163        deltapsi(i,k) = deltapsimap(i,k,j)
     
    190190         sollwdown(j) = zsollwdown    ! + vers bas
    191191
    192          DO k = 1, kflev+1
     192         DO k = 1, klev+1
    193193         lwnet  (j,k)   = ZFLNET(k)
    194194         swnet  (j,k)   = ZFSNET(k)
    195195         ENDDO
    196196
    197       DO k = 1, kflev
     197      DO k = 1, klev
    198198         heat (j,k) = zheat(k)
    199199         cool (j,k) = zcool(k)
     
    209209c     print*,'mu0=',rmu0(j)
    210210c     print*,'   net flux vis   HEAT(K/day)'
    211 c     do k=1,kflev
     211c     do k=1,klev
    212212c     print*,k,ZFSNET(k),heat(j,k)*8.56548e-3
    213213c     enddo
    214214c     print*,'   net flux IR    COOL(K/day)'
    215 c     do k=1,kflev
     215c     do k=1,klev
    216216c     print*,k,ZFLNET(k),cool(j,k)*8.56548e-3
    217217c     enddo
  • trunk/LMDZ.VENUS/libf/phyvenus/radlwsw.NewtonCool

    r101 r892  
    5353      real solsw(klon), sollw(klon)
    5454      real sollwdown(klon)
    55       REAL swnet(klon,kflev+1),lwnet(klon,kflev+1)
     55      REAL swnet(klon,klev+1),lwnet(klon,klev+1)
    5656c
    5757      INTEGER i,j,k
     
    138138         sollwdown(j) = 0.        ! + vers bas
    139139
    140         DO k = 1, kflev+1
     140        DO k = 1, klev+1
    141141         lwnet  (j,k)   = 0.
    142142         swnet  (j,k)   = 0.
    143143        ENDDO
    144144
    145         DO k = 1, kflev
     145        DO k = 1, klev
    146146         heat (j,k) = dTsdt(k)*dureejour ! K/Venusday
    147147         cool (j,k) = 0.
  • trunk/LMDZ.VENUS/libf/phyvenus/sw_venus_dc.F

    r101 r892  
    3434      REAL   PRMU0  ! COSINE OF ZENITHAL ANGLE
    3535      REAL   PFRAC  ! fraction de la journee
    36       REAL   PPB(KFLEV+1)  ! inter-couches PRESSURE (bar)
    37       REAL   pt(kflev)     ! mid-layer temperature
     36      REAL   PPB(klev+1)  ! inter-couches PRESSURE (bar)
     37      REAL   pt(klev)     ! mid-layer temperature
    3838C
    3939c output
    4040
    41       REAL   PHEAT(KFLEV) ! SHORTWAVE HEATING (K/VENUSDAY) within each layer
     41      REAL   PHEAT(klev) ! SHORTWAVE HEATING (K/VENUSDAY) within each layer
    4242      REAL   PTOPSW       ! SHORTWAVE FLUX AT T.O.A. (net)
    4343      REAL   PSOLSW       ! SHORTWAVE FLUX AT SURFACE (net)
    44       REAL   ZFSNET(KFLEV+1) ! net solar flux at ppb levels
     44      REAL   ZFSNET(klev+1) ! net solar flux at ppb levels
    4545
    4646C
     
    114114c      read(12,*) nullchar
    115115c
    116 c       do j=1,kflev+1
     116c       do j=1,klev+1
    117117c          read(12,*) zlup,zldn,zsolVE(j)
    118118c       enddo
     
    182182c ---------------
    183183
    184       do j=1,kflev+1
     184      do j=1,klev+1
    185185        nl0 = 2
    186186        do i=1,nldc
     
    212212c      Fichiers de Vincent
    213213c -----------------------------
    214 c     do j=1,kflev+1
     214c     do j=1,klev+1
    215215c       ZFSNET(j)=zsolVE(j)
    216216c     enddo
     
    218218c --------  FIN TEST ----------
    219219
    220       PTOPSW = ZFSNET(kflev+1)
     220      PTOPSW = ZFSNET(klev+1)
    221221      PSOLSW = ZFSNET(1)
    222222     
     
    229229c              /cp  (J/kg/K)
    230230
    231       do j=1,kflev
     231      do j=1,klev
    232232! ADAPTATION GCM POUR CP(T)
    233233        PHEAT(j) = (ZFSNET(j+1)-ZFSNET(j))
  • trunk/LMDZ.VENUS/libf/phyvenus/ustarhb.F

    r101 r892  
    4141        zxu = u(i,1)*zx_alf1+u(i,2)*zx_alf2
    4242        zxv = v(i,1)*zx_alf1+v(i,2)*zx_alf2
    43         zxmod = 1.0+SQRT(zxu**2+zxv**2)
     43        zxmod = SQRT(zxu**2+zxv**2)
    4444        taux = zxu *zxmod*cd_m(i)
    4545        tauy = zxv *zxmod*cd_m(i)
  • trunk/LMDZ.VENUS/libf/phyvenus/write_histday.h

    r808 r892  
    33!
    44      IF (ok_journe) THEN
    5 c
    6       ndex2d = 0
    7       ndex3d = 0
    8       zx_tmp_2d = 0.
    9       zx_tmp_3d = 0.
    10       zx_tmp_fi2d=0.
    11       zx_tmp_fi3d=0.
    125
    13 c
    146         zsto = dtime
    157         zout = dtime * REAL(ecrit_day)
    168         itau_w = itau_phy + itap
    179
    18 c
    1910c-------------------------------------------------------
    2011      IF(lev_histday.GE.1) THEN
    21 c
     12
    2213ccccccccccccc 2D fields, basics
    23 c
    24       i = NINT(zout/zsto)
    25       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    26       CALL histwrite(nid_day,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    27 C
    28       i = NINT(zout/zsto)
    29       CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    30       CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    31 c
    32       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d)
    33       CALL histwrite(nid_day,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    34 c
    35       DO i = 1, klon
    36          zx_tmp_fi2d(i) = paprs(i,1)
    37       ENDDO
    38       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    39       CALL histwrite(nid_day,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    40 c
    41       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
    42       CALL histwrite(nid_day,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    43 c
    44       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
    45       CALL histwrite(nid_day,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    46 c
     14
     15      call histwrite_phy(nid_day,.false.,"phis",itau_w,pphis)
     16      call histwrite_phy(nid_day,.false.,"aire",itau_w,airephy)
     17      call histwrite_phy(nid_day,.false.,"tsol",itau_w,ftsol)
     18      call histwrite_phy(nid_day,.false.,"psol",itau_w,paprs(:,1))
     19c     call histwrite_phy(nid_day,.false.,"ue",itau_w,ue)
     20c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
     21c     call histwrite_phy(nid_day,.false.,"ve",itau_w,-1.*ve)
     22c     call histwrite_phy(nid_day,.false.,"cdragh",itau_w,cdragh)
     23c     call histwrite_phy(nid_day,.false.,"cdragm",itau_w,cdragm)
     24
    4725      ENDIF !lev_histday.GE.1
    48 c
     26
    4927c-------------------------------------------------------
    5028      IF(lev_histday.GE.2) THEN
    51 c
     29
    5230ccccccccccccc 3D fields, basics
    53 c
    54       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    55       CALL histwrite(nid_day,"temp",itau_w,zx_tmp_3d,
    56      .                                   iim*jjmp1*klev,ndex3d)
    57 c
    58       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    59       CALL histwrite(nid_day,"pres",itau_w,zx_tmp_3d,
    60      .                                   iim*jjmp1*klev,ndex3d)
    61 c
    62       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    63       CALL histwrite(nid_day,"geop",itau_w,zx_tmp_3d,
    64      .                                   iim*jjmp1*klev,ndex3d)
    65 c
    66       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    67       CALL histwrite(nid_day,"vitu",itau_w,zx_tmp_3d,
    68      .                                   iim*jjmp1*klev,ndex3d)
    69 c
    70       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
    71       CALL histwrite(nid_day,"vitv",itau_w,zx_tmp_3d,
    72      .                                   iim*jjmp1*klev,ndex3d)
    73 c
    74       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    75       CALL histwrite(nid_day,"vitw",itau_w,zx_tmp_3d,
    76      .                                   iim*jjmp1*klev,ndex3d)
    77 c
     31
     32      call histwrite_phy(nid_day,.false.,"temp",itau_w,t_seri)
     33      call histwrite_phy(nid_day,.false.,"pres",itau_w,pplay)
     34      call histwrite_phy(nid_day,.false.,"geop",itau_w,zphi)
     35      call histwrite_phy(nid_day,.false.,"vitu",itau_w,u_seri)
     36c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
     37      call histwrite_phy(nid_day,.false.,"vitv",itau_w,-1.*v_seri)
     38      call histwrite_phy(nid_day,.false.,"vitw",itau_w,omega)
     39c en (m/s)/s     
     40      call histwrite_phy(nid_day,.false.,"dudyn",itau_w,d_u_dyn)
     41c en (m/s)/s     
     42      call histwrite_phy(nid_day,.false.,"duvdf",itau_w,d_u_vdf)
     43c     call histwrite_phy(nid_day,.false.,"mang",itau_w,mang)
     44c     call histwrite_phy(nid_day,.false.,"Kz",itau_w,ycoefh)
     45
     46c plusieurs traceurs
     47       IF (iflag_trac.eq.1) THEN
     48         DO iq=1,nqmax
     49       call histwrite_phy(nid_day,.false.,tname(iq),itau_w,qx(:,:,iq))
     50         ENDDO
     51       ENDIF
     52
     53      call histwrite_phy(nid_day,.false.,"tops",itau_w,topsw)
     54
    7855      ENDIF !lev_histday.GE.2
    7956c
     
    8259c
    8360cccccccccccccccccc  Radiative transfer
    84 c
     61
    8562c 2D
    86 c
    87       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
    88       CALL histwrite(nid_day,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    89 c
    90       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    91       CALL histwrite(nid_day,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    92 c
    93       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    94       CALL histwrite(nid_day,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    95 c
    96       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    97       CALL histwrite(nid_day,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    98 c
     63
     64      call histwrite_phy(nid_day,.false.,"topl",itau_w,toplw)
     65      call histwrite_phy(nid_day,.false.,"sols",itau_w,solsw)
     66      call histwrite_phy(nid_day,.false.,"soll",itau_w,sollw)
     67
    9968c 3D
    100 c
    101       zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev)
    102       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    103       CALL histwrite(nid_day,"SWnet",itau_w,zx_tmp_3d,
    104      .                                   iim*jjmp1*klev,ndex3d)
    105 c
    106       zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev)
    107       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    108       CALL histwrite(nid_day,"LWnet",itau_w,zx_tmp_3d,
    109      .                                   iim*jjmp1*klev,ndex3d)
    110 c
     69
     70      call histwrite_phy(nid_day,.false.,"SWnet",itau_w,swnet)
     71      call histwrite_phy(nid_day,.false.,"LWnet",itau_w,lwnet)
     72c     call histwrite_phy(nid_day,.false.,"fluxvdf",itau_w,fluxt)
     73c     call histwrite_phy(nid_day,.false.,"fluxdyn",itau_w,flux_dyn)
     74c     call histwrite_phy(nid_day,.false.,"fluxajs",itau_w,flux_ajs)
     75c     call histwrite_phy(nid_day,.false.,"fluxec",itau_w,flux_ec)
     76
    11177      ENDIF !lev_histday.GE.3
    11278c
    11379c-------------------------------------------------------
    11480      IF(lev_histday.GE.4) THEN
    115 c
     81
    11682c en K/s     
    117       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    118       CALL histwrite(nid_day,"dtdyn",itau_w,zx_tmp_3d,
    119      .                                   iim*jjmp1*klev,ndex3d)
    120 c
     83      call histwrite_phy(nid_day,.false.,"dtdyn",itau_w,d_t_dyn)
    12184c en K/s     
    122 c      CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    123 c      CALL histwrite(nid_day,"dtphy",itau_w,zx_tmp_3d,
    124 c     .                                   iim*jjmp1*klev,ndex3d)
    125 c
     85c     call histwrite_phy(nid_day,.false.,"dtphy",itau_w,d_t)
    12686c en K/s     
    127       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_vdf,zx_tmp_3d)
    128       CALL histwrite(nid_day,"dtvdf",itau_w,zx_tmp_3d,
    129      .                                   iim*jjmp1*klev,ndex3d)
    130 c
     87      call histwrite_phy(nid_day,.false.,"dtvdf",itau_w,d_t_vdf)
    13188c en K/s     
    132       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_ajs,zx_tmp_3d)
    133       CALL histwrite(nid_day,"dtajs",itau_w,zx_tmp_3d,
    134      .                                   iim*jjmp1*klev,ndex3d)
    135 c
     89      call histwrite_phy(nid_day,.false.,"dtajs",itau_w,d_t_ajs)
    13690c K/day ==> K/s
    137       zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    138       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    139       CALL histwrite(nid_day,"dtswr",itau_w,zx_tmp_3d,
    140      .                                   iim*jjmp1*klev,ndex3d)
    141 c
     91      call histwrite_phy(nid_day,.false.,"dtswr",itau_w,heat/RDAY)
    14292c K/day ==> K/s     
    143       zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    144       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    145       CALL histwrite(nid_day,"dtlwr",itau_w,zx_tmp_3d,
    146      .                                   iim*jjmp1*klev,ndex3d)
     93      call histwrite_phy(nid_day,.false.,"dtlwr",itau_w,-1.*cool/RDAY)
    14794c en K/s     
    148 c     zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
    149 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    150 c     CALL histwrite(nid_day,"dtec",itau_w,zx_tmp_3d,
    151 c    .                                   iim*jjmp1*klev,ndex3d)
    152 c
     95c     call histwrite_phy(nid_day,.false.,"dtec",itau_w,d_t_ec)
    15396c en (m/s)/s     
    154       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d)
    155       CALL histwrite(nid_day,"dudyn",itau_w,zx_tmp_3d,
    156      .                                   iim*jjmp1*klev,ndex3d)
    157 c
     97      call histwrite_phy(nid_day,.false.,"duajs",itau_w,d_u_ajs)
    15898c en (m/s)/s     
    159       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
    160       CALL histwrite(nid_day,"duvdf",itau_w,zx_tmp_3d,
    161      .                                   iim*jjmp1*klev,ndex3d)
    162 c
     99      call histwrite_phy(nid_day,.false.,"dugwo",itau_w,d_u_oro)
    163100c en (m/s)/s     
    164       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_ajs, zx_tmp_3d)
    165       CALL histwrite(nid_day,"duajs",itau_w,zx_tmp_3d,
    166      .                                   iim*jjmp1*klev,ndex3d)
    167 c
     101      call histwrite_phy(nid_day,.false.,"dugwno",itau_w,d_u_hin)
    168102c en (m/s)/s     
    169       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d)
    170       CALL histwrite(nid_day,"dugwo",itau_w,zx_tmp_3d,
    171      .                                   iim*jjmp1*klev,ndex3d)
    172 c
    173 c en (m/s)/s     
    174       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_hin, zx_tmp_3d)
    175       CALL histwrite(nid_day,"dugwno",itau_w,zx_tmp_3d,
    176      .                                   iim*jjmp1*klev,ndex3d)
    177 c
    178 c en (m/s)/s     
    179 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
    180103c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    181 c     zx_tmp_3d=-1.*zx_tmp_3d
    182 c     CALL histwrite(nid_day,"dvvdf",itau_w,zx_tmp_3d,
    183 c    .                                   iim*jjmp1*klev,ndex3d)
    184 c
     104c     call histwrite_phy(nid_day,.false.,"dvvdf",itau_w,-1.*d_v_vdf)
     105
    185106      ENDIF !lev_histday.GE.4
    186107c
    187108c-------------------------------------------------------
    188109      IF(lev_histday.GE.5) THEN
    189 c
    190       IF (nqmax.GE.3) THEN
    191         DO iq=1,nqmax-2
    192          IF (iq.LE.99) THEN
    193       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d)
    194       WRITE(str2,'(i2.2)') iq
    195       CALL histwrite(nid_day,"trac"//str2,itau_w,zx_tmp_3d,
    196      .                                   iim*jjmp1*klev,ndex3d)
    197          ELSE
    198       PRINT*, "Trop de traceurs"
    199       CALL abort
    200          ENDIF
    201         ENDDO
    202       ENDIF
    203 c
    204 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d)
    205 c      CALL histwrite(nid_day,"taux_",itau_w,
    206 c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
    207 c     
    208 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d)
    209 c      CALL histwrite(nid_day,"tauy_",itau_w,
    210 c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
    211 c
    212 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    213 c     CALL histwrite(nid_day,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    214 c
    215 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    216 c     CALL histwrite(nid_day,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    217 c
     110
     111c     call histwrite_phy(nid_day,.false.,"taux_",itau_w,fluxu)
     112c     call histwrite_phy(nid_day,.false.,"tauy_",itau_w,fluxv)
     113c     call histwrite_phy(nid_day,.false.,"cdrm",itau_w,cdragm)
     114c     call histwrite_phy(nid_day,.false.,"cdrh",itau_w,cdragh)
     115
    218116      ENDIF !lev_histday.GE.5
    219117c-------------------------------------------------------
  • trunk/LMDZ.VENUS/libf/phyvenus/write_histins.h

    r888 r892  
    33!
    44      IF (ok_instan) THEN
    5 c
    6       ndex2d = 0
    7       ndex3d = 0
    8       zx_tmp_2d = 0.
    9       zx_tmp_3d = 0.
    10       zx_tmp_fi2d=0.
    11       zx_tmp_fi3d=0.
    12 c
     5
    136         zsto = dtime * ecrit_ins
    147         zout = dtime * ecrit_ins
    158         itau_w = itau_phy + itap
    169
    17 c
    1810c-------------------------------------------------------
    1911      IF(lev_histday.GE.1) THEN
    20 c
     12
    2113ccccccccccccc 2D fields, basics
    22 c
    23       i = NINT(zout/zsto)
    24       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    25       CALL histwrite(nid_ins,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    26 C
    27       i = NINT(zout/zsto)
    28       CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    29       CALL histwrite(nid_ins,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    30 c
    31       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d)
    32       CALL histwrite(nid_ins,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    33 c
    34       DO i = 1, klon
    35          zx_tmp_fi2d(i) = paprs(i,1)
    36       ENDDO
    37       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    38       CALL histwrite(nid_ins,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    39 c
    40 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
    41 c     CALL histwrite(nid_ins,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    42 c
    43 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
     14
     15      call histwrite_phy(nid_ins,.false.,"phis",itau_w,pphis)
     16      call histwrite_phy(nid_ins,.false.,"aire",itau_w,airephy)
     17      call histwrite_phy(nid_ins,.false.,"tsol",itau_w,ftsol)
     18      call histwrite_phy(nid_ins,.false.,"psol",itau_w,paprs(:,1))
     19c     call histwrite_phy(nid_ins,.false.,"ue",itau_w,ue)
    4420c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    45 c     zx_tmp_2d=-1.*zx_tmp_2d
    46 c     CALL histwrite(nid_ins,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    47 c
    48       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    49       CALL histwrite(nid_ins,"cdragh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    50 c
    51       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    52       CALL histwrite(nid_ins,"cdragm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    53 c
     21c     call histwrite_phy(nid_ins,.false.,"ve",itau_w,-1.*ve)
     22c     call histwrite_phy(nid_ins,.false.,"cdragh",itau_w,cdragh)
     23c     call histwrite_phy(nid_ins,.false.,"cdragm",itau_w,cdragm)
     24
    5425      ENDIF !lev_histday.GE.1
    55 c
     26
    5627c-------------------------------------------------------
    5728      IF(lev_histday.GE.2) THEN
    58 c
     29
    5930ccccccccccccc 3D fields, basics
    60 c
    61       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    62       CALL histwrite(nid_ins,"temp",itau_w,zx_tmp_3d,
    63      .                                   iim*jjmp1*klev,ndex3d)
    64 c
    65       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    66       CALL histwrite(nid_ins,"pres",itau_w,zx_tmp_3d,
    67      .                                   iim*jjmp1*klev,ndex3d)
    68 c
    69       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    70       CALL histwrite(nid_ins,"geop",itau_w,zx_tmp_3d,
    71      .                                   iim*jjmp1*klev,ndex3d)
    72 c
    73       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    74       CALL histwrite(nid_ins,"vitu",itau_w,zx_tmp_3d,
    75      .                                   iim*jjmp1*klev,ndex3d)
    76 c
    77       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     31
     32      call histwrite_phy(nid_ins,.false.,"temp",itau_w,t_seri)
     33      call histwrite_phy(nid_ins,.false.,"pres",itau_w,pplay)
     34      call histwrite_phy(nid_ins,.false.,"geop",itau_w,zphi)
     35      call histwrite_phy(nid_ins,.false.,"vitu",itau_w,u_seri)
    7836c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    79       zx_tmp_3d=-1.*zx_tmp_3d
    80       CALL histwrite(nid_ins,"vitv",itau_w,zx_tmp_3d,
    81      .                                   iim*jjmp1*klev,ndex3d)
    82 c
    83       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    84       CALL histwrite(nid_ins,"vitw",itau_w,zx_tmp_3d,
    85      .                                   iim*jjmp1*klev,ndex3d)
    86 c
     37      call histwrite_phy(nid_ins,.false.,"vitv",itau_w,-1.*v_seri)
     38      call histwrite_phy(nid_ins,.false.,"vitw",itau_w,omega)
    8739c en (m/s)/s     
    88       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d)
    89       CALL histwrite(nid_ins,"dudyn",itau_w,zx_tmp_3d,
    90      .                                   iim*jjmp1*klev,ndex3d)
    91 c
     40      call histwrite_phy(nid_ins,.false.,"dudyn",itau_w,d_u_dyn)
    9241c en (m/s)/s     
    93       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
    94       CALL histwrite(nid_ins,"duvdf",itau_w,zx_tmp_3d,
    95      .                                   iim*jjmp1*klev,ndex3d)
    96 c
    97 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, mang, zx_tmp_3d)
    98 c     CALL histwrite(nid_ins,"mang",itau_w,zx_tmp_3d,
    99 c    .                                   iim*jjmp1*klev,ndex3d)
    100 c
    101       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ycoefh, zx_tmp_3d)
    102       CALL histwrite(nid_ins,"Kz",itau_w,zx_tmp_3d,
    103      .                                   iim*jjmp1*klev,ndex3d)
    104 c
     42      call histwrite_phy(nid_ins,.false.,"duvdf",itau_w,d_u_vdf)
     43c     call histwrite_phy(nid_ins,.false.,"mang",itau_w,mang)
     44c     call histwrite_phy(nid_ins,.false.,"Kz",itau_w,ycoefh)
     45
    10546c plusieurs traceurs
    10647       IF (iflag_trac.eq.1) THEN
    10748         DO iq=1,nqmax
    108           IF (iq.LE.99) THEN
    109        CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
    110        WRITE(str2,'(i2.2)') iq
    111        CALL histwrite(nid_ins,tname(iq),itau_w,zx_tmp_3d,
    112      .                                   iim*jjmp1*klev,ndex3d)
    113           ELSE
    114        PRINT*, "Trop de traceurs"
    115        CALL abort
    116           ENDIF
     49       call histwrite_phy(nid_ins,.false.,tname(iq),itau_w,qx(:,:,iq))
    11750         ENDDO
    11851       ENDIF
    119 c
    120       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
    121       CALL histwrite(nid_ins,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    122 c
     52
     53      call histwrite_phy(nid_ins,.false.,"tops",itau_w,topsw)
     54
    12355      ENDIF !lev_histday.GE.2
    124 c
     56
    12557c-------------------------------------------------------
    12658      IF(lev_histday.GE.3) THEN
    127 c
     59
    12860cccccccccccccccccc  Radiative transfer
    129 c
     61
    13062c 2D
    131 c
    132       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    133       CALL histwrite(nid_ins,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    134 c
    135       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    136       CALL histwrite(nid_ins,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    137 c
    138       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    139       CALL histwrite(nid_ins,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    140 c
     63
     64      call histwrite_phy(nid_ins,.false.,"topl",itau_w,toplw)
     65      call histwrite_phy(nid_ins,.false.,"sols",itau_w,solsw)
     66      call histwrite_phy(nid_ins,.false.,"soll",itau_w,sollw)
     67
    14168c 3D
    142 c
    143       zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev)
    144       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    145       CALL histwrite(nid_ins,"SWnet",itau_w,zx_tmp_3d,
    146      .                                   iim*jjmp1*klev,ndex3d)
    147 c
    148       zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev)
    149       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    150       CALL histwrite(nid_ins,"LWnet",itau_w,zx_tmp_3d,
    151      .                                   iim*jjmp1*klev,ndex3d)
    152 c
    153       zx_tmp_fi3d(1:klon,1:klev)=fluxt(1:klon,1:klev)
    154       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    155       CALL histwrite(nid_ins,"fluxvdf",itau_w,zx_tmp_3d,
    156      .                                   iim*jjmp1*klev,ndex3d)
    157 c
    158       zx_tmp_fi3d(1:klon,1:klev)=flux_dyn(1:klon,1:klev)
    159       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    160       CALL histwrite(nid_ins,"fluxdyn",itau_w,zx_tmp_3d,
    161      .                                   iim*jjmp1*klev,ndex3d)
    162 c
    163       zx_tmp_fi3d(1:klon,1:klev)=flux_ajs(1:klon,1:klev)
    164       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    165       CALL histwrite(nid_ins,"fluxajs",itau_w,zx_tmp_3d,
    166      .                                   iim*jjmp1*klev,ndex3d)
    167 c
    168 c     zx_tmp_fi3d(1:klon,1:klev)=flux_ec(1:klon,1:klev)
    169 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    170 c     CALL histwrite(nid_ins,"fluxec",itau_w,zx_tmp_3d,
    171 c    .                                   iim*jjmp1*klev,ndex3d)
    172 c
     69
     70      call histwrite_phy(nid_ins,.false.,"SWnet",itau_w,swnet)
     71      call histwrite_phy(nid_ins,.false.,"LWnet",itau_w,lwnet)
     72c     call histwrite_phy(nid_ins,.false.,"fluxvdf",itau_w,fluxt)
     73c     call histwrite_phy(nid_ins,.false.,"fluxdyn",itau_w,flux_dyn)
     74c     call histwrite_phy(nid_ins,.false.,"fluxajs",itau_w,flux_ajs)
     75c     call histwrite_phy(nid_ins,.false.,"fluxec",itau_w,flux_ec)
     76
    17377      ENDIF !lev_histday.GE.3
    174 c
     78
    17579c-------------------------------------------------------
    17680      IF(lev_histday.GE.4) THEN
    177 c
     81
    17882c en K/s     
    179       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    180       CALL histwrite(nid_ins,"dtdyn",itau_w,zx_tmp_3d,
    181      .                                   iim*jjmp1*klev,ndex3d)
    182 c
     83      call histwrite_phy(nid_ins,.false.,"dtdyn",itau_w,d_t_dyn)
    18384c en K/s     
    184 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    185 c     CALL histwrite(nid_ins,"dtphy",itau_w,zx_tmp_3d,
    186 c    .                                   iim*jjmp1*klev,ndex3d)
    187 c
     85c     call histwrite_phy(nid_ins,.false.,"dtphy",itau_w,d_t)
    18886c en K/s     
    189       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_vdf,zx_tmp_3d)
    190       CALL histwrite(nid_ins,"dtvdf",itau_w,zx_tmp_3d,
    191      .                                   iim*jjmp1*klev,ndex3d)
    192 c
     87      call histwrite_phy(nid_ins,.false.,"dtvdf",itau_w,d_t_vdf)
    19388c en K/s     
    194       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_ajs,zx_tmp_3d)
    195       CALL histwrite(nid_ins,"dtajs",itau_w,zx_tmp_3d,
    196      .                                   iim*jjmp1*klev,ndex3d)
    197 c
     89      call histwrite_phy(nid_ins,.false.,"dtajs",itau_w,d_t_ajs)
    19890c K/day ==> K/s
    199       zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    200       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    201       CALL histwrite(nid_ins,"dtswr",itau_w,zx_tmp_3d,
    202      .                                   iim*jjmp1*klev,ndex3d)
    203 c
     91      call histwrite_phy(nid_ins,.false.,"dtswr",itau_w,heat/RDAY)
    20492c K/day ==> K/s     
    205       zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    206       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    207       CALL histwrite(nid_ins,"dtlwr",itau_w,zx_tmp_3d,
    208      .                                   iim*jjmp1*klev,ndex3d)
     93      call histwrite_phy(nid_ins,.false.,"dtlwr",itau_w,-1.*cool/RDAY)
    20994c en K/s     
    210 c     zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
    211 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    212 c     CALL histwrite(nid_ins,"dtec",itau_w,zx_tmp_3d,
    213 c    .                                   iim*jjmp1*klev,ndex3d)
    214 c
     95c     call histwrite_phy(nid_ins,.false.,"dtec",itau_w,d_t_ec)
    21596c en (m/s)/s     
    216       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_ajs, zx_tmp_3d)
    217       CALL histwrite(nid_ins,"duajs",itau_w,zx_tmp_3d,
    218      .                                   iim*jjmp1*klev,ndex3d)
    219 c
     97      call histwrite_phy(nid_ins,.false.,"duajs",itau_w,d_u_ajs)
    22098c en (m/s)/s     
    221       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d)
    222       CALL histwrite(nid_ins,"dugwo",itau_w,zx_tmp_3d,
    223      .                                   iim*jjmp1*klev,ndex3d)
    224 c
     99      call histwrite_phy(nid_ins,.false.,"dugwo",itau_w,d_u_oro)
    225100c en (m/s)/s     
    226       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_hin, zx_tmp_3d)
    227       CALL histwrite(nid_ins,"dugwno",itau_w,zx_tmp_3d,
    228      .                                   iim*jjmp1*klev,ndex3d)
    229 c
     101      call histwrite_phy(nid_ins,.false.,"dugwno",itau_w,d_u_hin)
    230102c en (m/s)/s     
    231 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
    232103c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    233 c     zx_tmp_3d=-1.*zx_tmp_3d
    234 c     CALL histwrite(nid_ins,"dvvdf",itau_w,zx_tmp_3d,
    235 c    .                                   iim*jjmp1*klev,ndex3d)
    236 c
     104c     call histwrite_phy(nid_ins,.false.,"dvvdf",itau_w,-1.*d_v_vdf)
     105
    237106      ENDIF !lev_histday.GE.4
    238 c
     107
    239108c-------------------------------------------------------
    240109       IF(lev_histday.GE.5) THEN
    241 c
    242 c
    243 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d)
    244 c      CALL histwrite(nid_ins,"taux_",itau_w,
    245 c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
    246 c     
    247 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d)
    248 c      CALL histwrite(nid_ins,"tauy_",itau_w,
    249 c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
    250 c
    251 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    252 c     CALL histwrite(nid_ins,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    253 c
    254 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    255 c     CALL histwrite(nid_ins,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    256 c
     110
     111c     call histwrite_phy(nid_ins,.false.,"taux_",itau_w,fluxu)
     112c     call histwrite_phy(nid_ins,.false.,"tauy_",itau_w,fluxv)
     113c     call histwrite_phy(nid_ins,.false.,"cdrm",itau_w,cdragm)
     114c     call histwrite_phy(nid_ins,.false.,"cdrh",itau_w,cdragh)
     115
    257116      ENDIF !lev_histday.GE.5
    258117c-------------------------------------------------------
    259 c
     118
    260119      if (ok_sync) then
    261120        call histsync(nid_ins)
    262121      endif
     122
    263123      ENDIF
  • trunk/LMDZ.VENUS/libf/phyvenus/write_histmth.h

    r101 r892  
    33!
    44      IF (ok_mensuel) THEN
    5 c
    6       ndex2d = 0
    7       ndex3d = 0
    8       zx_tmp_2d = 0.
    9       zx_tmp_3d = 0.
    10       zx_tmp_fi2d=0.
    11       zx_tmp_fi3d=0.
    125
    136         zsto = dtime
     
    158         itau_w = itau_phy + itap
    169
    17 c
    1810c-------------------------------------------------------
    1911      IF(lev_histmth.GE.1) THEN
    20 c
     12
    2113ccccccccccccc 2D fields, basics
    22 c
    23       i = NINT(zout/zsto)
    24       CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)
    25       CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    26 C
    27       i = NINT(zout/zsto)
    28       CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)
    29       CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    30 c
    31       CALL gr_fi_ecrit(1, klon,iim,jjmp1, ftsol,zx_tmp_2d)
    32       CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    33 c
    34       DO i = 1, klon
    35          zx_tmp_fi2d(i) = paprs(i,1)
    36       ENDDO
    37       CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)
    38       CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    39 c
    40 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)
    41 c     CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    42 c
    43 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)
     14
     15      call histwrite_phy(nid_mth,.false.,"phis",itau_w,pphis)
     16      call histwrite_phy(nid_mth,.false.,"aire",itau_w,airephy)
     17      call histwrite_phy(nid_mth,.false.,"tsol",itau_w,ftsol)
     18      call histwrite_phy(nid_mth,.false.,"psol",itau_w,paprs(:,1))
     19c     call histwrite_phy(nid_mth,.false.,"ue",itau_w,ue)
    4420c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    45 c     zx_tmp_2d=-1.*zx_tmp_2d
    46 c     CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    47 c
    48       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    49       CALL histwrite(nid_mth,"cdragh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    50 c
    51       CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    52       CALL histwrite(nid_mth,"cdragm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    53 c
     21c     call histwrite_phy(nid_mth,.false.,"ve",itau_w,-1.*ve)
     22c     call histwrite_phy(nid_mth,.false.,"cdragh",itau_w,cdragh)
     23c     call histwrite_phy(nid_mth,.false.,"cdragm",itau_w,cdragm)
     24
    5425      ENDIF !lev_histmth.GE.1
    55 c
     26
    5627c-------------------------------------------------------
    5728      IF(lev_histmth.GE.2) THEN
    58 c
     29
    5930ccccccccccccc 3D fields, basics
    60 c
    61       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d)
    62       CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d,
    63      .                                   iim*jjmp1*klev,ndex3d)
    64 c
    65       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d)
    66       CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d,
    67      .                                   iim*jjmp1*klev,ndex3d)
    68 c
    69       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d)
    70       CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d,
    71      .                                   iim*jjmp1*klev,ndex3d)
    72 c
    73       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d)
    74       CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d,
    75      .                                   iim*jjmp1*klev,ndex3d)
    76 c
    77       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d)
     31
     32      call histwrite_phy(nid_mth,.false.,"temp",itau_w,t_seri)
     33      call histwrite_phy(nid_mth,.false.,"pres",itau_w,pplay)
     34      call histwrite_phy(nid_mth,.false.,"geop",itau_w,zphi)
     35      call histwrite_phy(nid_mth,.false.,"vitu",itau_w,u_seri)
    7836c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    79       zx_tmp_3d=-1.*zx_tmp_3d
    80       CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d,
    81      .                                   iim*jjmp1*klev,ndex3d)
    82 c
    83       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d)
    84       CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d,
    85      .                                   iim*jjmp1*klev,ndex3d)
    86 c
     37      call histwrite_phy(nid_mth,.false.,"vitv",itau_w,-1.*v_seri)
     38      call histwrite_phy(nid_mth,.false.,"vitw",itau_w,omega)
    8739c en (m/s)/s     
    88       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_dyn, zx_tmp_3d)
    89       CALL histwrite(nid_mth,"dudyn",itau_w,zx_tmp_3d,
    90      .                                   iim*jjmp1*klev,ndex3d)
    91 c
     40      call histwrite_phy(nid_mth,.false.,"dudyn",itau_w,d_u_dyn)
    9241c en (m/s)/s     
    93       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d)
    94       CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d,
    95      .                                   iim*jjmp1*klev,ndex3d)
    96 c
    97 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, mang, zx_tmp_3d)
    98 c     CALL histwrite(nid_mth,"mang",itau_w,zx_tmp_3d,
    99 c    .                                   iim*jjmp1*klev,ndex3d)
    100 c
    101       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ycoefh, zx_tmp_3d)
    102       CALL histwrite(nid_mth,"Kz",itau_w,zx_tmp_3d,
    103      .                                   iim*jjmp1*klev,ndex3d)
    104 c
     42      call histwrite_phy(nid_mth,.false.,"duvdf",itau_w,d_u_vdf)
     43c     call histwrite_phy(nid_mth,.false.,"mang",itau_w,mang)
     44c     call histwrite_phy(nid_mth,.false.,"Kz",itau_w,ycoefh)
     45
    10546c plusieurs traceurs
    10647       IF (iflag_trac.eq.1) THEN
    10748         DO iq=1,nqmax
    108           IF (iq.LE.99) THEN
    109        CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d)
    110        WRITE(str2,'(i2.2)') iq
    111        CALL histwrite(nid_mth,tname(iq),itau_w,zx_tmp_3d,
    112      .                                   iim*jjmp1*klev,ndex3d)
    113           ELSE
    114        PRINT*, "Trop de traceurs"
    115        CALL abort
    116           ENDIF
     49       call histwrite_phy(nid_mth,.false.,tname(iq),itau_w,qx(:,:,iq))
    11750         ENDDO
    11851       ENDIF
    119 c
    120       CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)
    121       CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    122 c
     52
     53      call histwrite_phy(nid_mth,.false.,"tops",itau_w,topsw)
     54
    12355      ENDIF !lev_histmth.GE.2
    124 c
     56
    12557c-------------------------------------------------------
    12658      IF(lev_histmth.GE.3) THEN
    127 c
     59
    12860cccccccccccccccccc  Radiative transfer
    129 c
     61
    13062c 2D
    131 c
    132       CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)
    133       CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    134 c
    135       CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)
    136       CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    137 c
    138       CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)
    139       CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    140 c
     63
     64      call histwrite_phy(nid_mth,.false.,"topl",itau_w,toplw)
     65      call histwrite_phy(nid_mth,.false.,"sols",itau_w,solsw)
     66      call histwrite_phy(nid_mth,.false.,"soll",itau_w,sollw)
     67
    14168c 3D
    142 c
    143       zx_tmp_fi3d(1:klon,1:klev)=swnet(1:klon,1:klev)
    144       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    145       CALL histwrite(nid_mth,"SWnet",itau_w,zx_tmp_3d,
    146      .                                   iim*jjmp1*klev,ndex3d)
    147 c
    148       zx_tmp_fi3d(1:klon,1:klev)=lwnet(1:klon,1:klev)
    149       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    150       CALL histwrite(nid_mth,"LWnet",itau_w,zx_tmp_3d,
    151      .                                   iim*jjmp1*klev,ndex3d)
    152 c
    153       zx_tmp_fi3d(1:klon,1:klev)=fluxt(1:klon,1:klev)
    154       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    155       CALL histwrite(nid_mth,"fluxvdf",itau_w,zx_tmp_3d,
    156      .                                   iim*jjmp1*klev,ndex3d)
    157 c
    158       zx_tmp_fi3d(1:klon,1:klev)=flux_dyn(1:klon,1:klev)
    159       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    160       CALL histwrite(nid_mth,"fluxdyn",itau_w,zx_tmp_3d,
    161      .                                   iim*jjmp1*klev,ndex3d)
    162 c
    163       zx_tmp_fi3d(1:klon,1:klev)=flux_ajs(1:klon,1:klev)
    164       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    165       CALL histwrite(nid_mth,"fluxajs",itau_w,zx_tmp_3d,
    166      .                                   iim*jjmp1*klev,ndex3d)
    167 c
    168 c     zx_tmp_fi3d(1:klon,1:klev)=flux_ec(1:klon,1:klev)
    169 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    170 c     CALL histwrite(nid_mth,"fluxec",itau_w,zx_tmp_3d,
    171 c    .                                   iim*jjmp1*klev,ndex3d)
    172 c
     69
     70      call histwrite_phy(nid_mth,.false.,"SWnet",itau_w,swnet)
     71      call histwrite_phy(nid_mth,.false.,"LWnet",itau_w,lwnet)
     72c     call histwrite_phy(nid_mth,.false.,"fluxvdf",itau_w,fluxt)
     73c     call histwrite_phy(nid_mth,.false.,"fluxdyn",itau_w,flux_dyn)
     74c     call histwrite_phy(nid_mth,.false.,"fluxajs",itau_w,flux_ajs)
     75c     call histwrite_phy(nid_mth,.false.,"fluxec",itau_w,flux_ec)
     76
    17377      ENDIF !lev_histmth.GE.3
    174 c
     78
    17579c-------------------------------------------------------
    17680      IF(lev_histmth.GE.4) THEN
    177 c
     81
    17882c en K/s     
    179       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d)
    180       CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d,
    181      .                                   iim*jjmp1*klev,ndex3d)
    182 c
     83      call histwrite_phy(nid_mth,.false.,"dtdyn",itau_w,d_t_dyn)
    18384c en K/s     
    184 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d)
    185 c     CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d,
    186 c    .                                   iim*jjmp1*klev,ndex3d)
    187 c
     85c     call histwrite_phy(nid_mth,.false.,"dtphy",itau_w,d_t)
    18886c en K/s     
    189       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_vdf,zx_tmp_3d)
    190       CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d,
    191      .                                   iim*jjmp1*klev,ndex3d)
    192 c
     87      call histwrite_phy(nid_mth,.false.,"dtvdf",itau_w,d_t_vdf)
    19388c en K/s     
    194       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,d_t_ajs,zx_tmp_3d)
    195       CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d,
    196      .                                   iim*jjmp1*klev,ndex3d)
    197 c
     89      call histwrite_phy(nid_mth,.false.,"dtajs",itau_w,d_t_ajs)
    19890c K/day ==> K/s
    199       zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY
    200       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    201       CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d,
    202      .                                   iim*jjmp1*klev,ndex3d)
    203 c
     91      call histwrite_phy(nid_mth,.false.,"dtswr",itau_w,heat/RDAY)
    20492c K/day ==> K/s     
    205       zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY
    206       CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    207       CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d,
    208      .                                   iim*jjmp1*klev,ndex3d)
     93      call histwrite_phy(nid_mth,.false.,"dtlwr",itau_w,-1.*cool/RDAY)
    20994c en K/s     
    210 c     zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev)
    211 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)
    212 c     CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d,
    213 c    .                                   iim*jjmp1*klev,ndex3d)
    214 c
     95c     call histwrite_phy(nid_mth,.false.,"dtec",itau_w,d_t_ec)
    21596c en (m/s)/s     
    216       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_ajs, zx_tmp_3d)
    217       CALL histwrite(nid_mth,"duajs",itau_w,zx_tmp_3d,
    218      .                                   iim*jjmp1*klev,ndex3d)
    219 c
     97      call histwrite_phy(nid_mth,.false.,"duajs",itau_w,d_u_ajs)
    22098c en (m/s)/s     
    221       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d)
    222       CALL histwrite(nid_mth,"dugwo",itau_w,zx_tmp_3d,
    223      .                                   iim*jjmp1*klev,ndex3d)
    224 c
     99      call histwrite_phy(nid_mth,.false.,"dugwo",itau_w,d_u_oro)
    225100c en (m/s)/s     
    226       CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_hin, zx_tmp_3d)
    227       CALL histwrite(nid_mth,"dugwno",itau_w,zx_tmp_3d,
    228      .                                   iim*jjmp1*klev,ndex3d)
    229 c
     101      call histwrite_phy(nid_mth,.false.,"dugwno",itau_w,d_u_hin)
    230102c en (m/s)/s     
    231 c     CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d)
    232103c VENUS: regardee a l'envers!!!!!!!!!!!!!!!
    233 c     zx_tmp_3d=-1.*zx_tmp_3d
    234 c     CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d,
    235 c    .                                   iim*jjmp1*klev,ndex3d)
    236 c
     104c     call histwrite_phy(nid_mth,.false.,"dvvdf",itau_w,-1.*d_v_vdf)
     105
    237106      ENDIF !lev_histmth.GE.4
    238107c
    239108c-------------------------------------------------------
    240109       IF(lev_histmth.GE.5) THEN
    241 c
    242 c
    243 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxu , zx_tmp_2d)
    244 c      CALL histwrite(nid_mth,"taux_",itau_w,
    245 c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
    246 c     
    247 c      CALL gr_fi_ecrit(1, klon,iim,jjmp1, fluxv , zx_tmp_2d)
    248 c      CALL histwrite(nid_mth,"tauy_",itau_w,
    249 c    $      zx_tmp_2d,iim*jjmp1,ndex2d)
    250 c
    251 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)
    252 c     CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    253 c
    254 c     CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)
    255 c     CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)
    256 c
     110
     111c     call histwrite_phy(nid_mth,.false.,"taux_",itau_w,fluxu)
     112c     call histwrite_phy(nid_mth,.false.,"tauy_",itau_w,fluxv)
     113c     call histwrite_phy(nid_mth,.false.,"cdrm",itau_w,cdragm)
     114c     call histwrite_phy(nid_mth,.false.,"cdrh",itau_w,cdragh)
     115
    257116      ENDIF !lev_histmth.GE.5
    258117c-------------------------------------------------------
     
    261120        call histsync(nid_mth)
    262121      endif
     122
    263123      ENDIF
  • trunk/LMDZ.VENUS/libf/phyvenus/zenang.F

    r101 r892  
    3434      integer i
    3535      real gmtime1, gmtime2
    36       real pi_local, deux_pi_local, incl
     36      real incl
    3737      real omega1, omega2, omega
    3838c omega1, omega2 : temps 1 et 2 exprime en radian avec 0 a midi.
     
    4646c================================================================
    4747c
    48       pi_local = 4.0 * ATAN(1.0)
    49       deux_pi_local = 2.0 * pi_local
    50       incl=R_incl * pi_local / 180.
     48      incl=R_incl * RPI / 180.
    5149c
    52       lon_sun = longi * pi_local / 180.0
     50      lon_sun = longi * RPI / 180.0
    5351      lat_sun = ASIN (SIN(lon_sun)*SIN(incl) )
    5452c
     
    5856      DO i = 1, klon
    5957c
    60       latr = lat(i) * pi_local / 180.
     58      latr = lat(i) * RPI / 180.
    6159c
    6260c--pose probleme quand lat=+/-90 degres
     
    6462c      omega = -TAN(latr)*TAN(lat_sun)
    6563c      omega = ACOS(omega)
    66 c      IF (latr.GE.(pi_local/2.+lat_sun)
    67 c     .    .OR. latr.LE.(-pi_local/2.+lat_sun)) THEN
     64c      IF (latr.GE.(RPI/2.+lat_sun)
     65c     .    .OR. latr.LE.(-RPI/2.+lat_sun)) THEN
    6866c         omega = 0.0       ! nuit polaire
    6967c      ENDIF
    70 c      IF (latr.GE.(pi_local/2.-lat_sun)
    71 c     .          .OR. latr.LE.(-pi_local/2.-lat_sun)) THEN
    72 c         omega = pi_local  ! journee polaire
     68c      IF (latr.GE.(RPI/2.-lat_sun)
     69c     .          .OR. latr.LE.(-RPI/2.-lat_sun)) THEN
     70c         omega = RPI  ! journee polaire
    7371c      ENDIF
    7472c
     
    7674c
    7775      omega=0.0  !--nuit polaire
    78       IF (latr.GE.(pi_local/2.-lat_sun)
    79      .          .OR. latr.LE.(-pi_local/2.-lat_sun)) THEN
    80          omega = pi_local  ! journee polaire
     76      IF (latr.GE.(RPI/2.-lat_sun)
     77     .          .OR. latr.LE.(-RPI/2.-lat_sun)) THEN
     78         omega = RPI  ! journee polaire
    8179      ENDIF
    82       IF (latr.LT.(pi_local/2.+lat_sun).AND.
    83      .    latr.GT.(-pi_local/2.+lat_sun).AND.
    84      .    latr.LT.(pi_local/2.-lat_sun).AND.
    85      .    latr.GT.(-pi_local/2.-lat_sun)) THEN
     80      IF (latr.LT.(RPI/2.+lat_sun).AND.
     81     .    latr.GT.(-RPI/2.+lat_sun).AND.
     82     .    latr.LT.(RPI/2.-lat_sun).AND.
     83     .    latr.GT.(-RPI/2.-lat_sun)) THEN
    8684      omega = -TAN(latr)*TAN(lat_sun)
    8785      omega = ACOS(omega)
     
    8987c
    9088         omega1 = gmtime1 + long(i)*RDAY/360.0
    91          omega1 = omega1 / RDAY*deux_pi_local
    92          omega1 = MOD (omega1+deux_pi_local, deux_pi_local)
    93          omega1 = omega1 - pi_local
     89         omega1 = omega1*2*RPI / RDAY
     90         omega1 = MOD (omega1+2*RPI, 2*RPI)
     91         omega1 = omega1 - RPI
    9492c
    9593         omega2 = gmtime2 + long(i)*RDAY/360.0
    96          omega2 = omega2 / RDAY*deux_pi_local
    97          omega2 = MOD (omega2+deux_pi_local, deux_pi_local)
    98          omega2 = omega2 - pi_local
     94         omega2 = omega2*2*RPI / RDAY
     95         omega2 = MOD (omega2+2*RPI, 2*RPI)
     96         omega2 = omega2 - RPI
    9997c
    10098      IF (omega1.LE.omega2) THEN  !--on est dans la meme journee locale
     
    144142      ENDIF
    145143c-----------------------moyenne
    146       frac(i)=(zfrac1+zfrac2)/(omega2+deux_pi_local-omega1)
     144      frac(i)=(zfrac1+zfrac2)/(omega2+2*RPI-omega1)
    147145      pmu0(i)=(zfrac1*z1_mu+zfrac2*z2_mu)/MAX(zfrac1+zfrac2,1.E-10)
    148146c
Note: See TracChangeset for help on using the changeset viewer.