Ignore:
Timestamp:
Oct 16, 2012, 2:41:50 PM (12 years ago)
Author:
Laurent Fairhead
Message:

Version testing basée sur la r1668

http://lmdz.lmd.jussieu.fr/utilisateurs/distribution-du-modele/versions-intermediaires


Testing release based on r1668

Location:
LMDZ5/branches/testing
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/dyn3dpar/calfis_p.F

    r1665 r1669  
    242242      integer :: k,kstart,kend
    243243      INTEGER :: offset 
     244
     245      LOGICAL tracerdyn
    244246c
    245247c-----------------------------------------------------------------------
     
    636638      zdqfic_omp(:,:,:)=0.
    637639
    638       if (planet_type=="earth") then
    639640#ifdef CPP_PHYS
    640641      do isplit=1,nsplit_phys
     
    644645         lafin_split=lafin.and.isplit==nsplit_phys
    645646
     647      if (planet_type=="earth") then
    646648
    647649      CALL physiq (klon,
     
    674676     .             PVteta)
    675677
     678      else if ( planet_type=="generic" ) then
     679
     680      CALL physiq (klon,     !! ngrid
     681     .             llm,            !! nlayer
     682     .             nqtot,          !! nq
     683     .             tname,          !! tracer names from dynamical core (given in infotrac)
     684     .             debut_split,    !! firstcall
     685     .             lafin_split,    !! lastcall
     686     .             float(day_ini), !! pday <-- day_ini (dans temps.h)
     687     .             jH_cur_split,   !! ptime "fraction of day"
     688     .             zdt_split,      !! ptimestep
     689     .             zplev_omp,  !! pplev
     690     .             zplay_omp,  !! pplay
     691     .             zphi_omp,   !! pphi
     692     .             zufi_omp,   !! pu
     693     .             zvfi_omp,   !! pv
     694     .             ztfi_omp,   !! pt
     695     .             zqfi_omp,   !! pq
     696     .             flxwfi_omp, !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
     697     .             zdufi_omp,  !! pdu
     698     .             zdvfi_omp,  !! pdv
     699     .             zdtfi_omp,  !! pdt
     700     .             zdqfi_omp,  !! pdq
     701     .             zdpsrf_omp, !! pdpsrf
     702     .             tracerdyn)      !! tracerdyn <-- utilite ???
     703
     704      endif ! of if (planet_type=="earth")
     705
     706
    676707         zufi_omp(:,:)=zufi_omp(:,:)+zdufi_omp(:,:)*zdt_split
    677708         zvfi_omp(:,:)=zvfi_omp(:,:)+zdvfi_omp(:,:)*zdt_split
     
    688719#endif
    689720! of #ifdef CPP_PHYS
    690       endif !of if (planet_type=="earth")
    691721
    692722      zdufi_omp(:,:)=zdufic_omp(:,:)/nsplit_phys
  • LMDZ5/branches/testing/libf/dyn3dpar/comvert.h

    r1665 r1669  
    77      COMMON/comvertr/ap(llm+1),bp(llm+1),presnivs(llm),dpres(llm),     &
    88     &               pa,preff,nivsigs(llm),nivsig(llm+1),               &
    9      &               aps(llm),bps(llm),scaleheight
     9     &               aps(llm),bps(llm),scaleheight,pseudoalt(llm)
    1010
    1111      common/comverti/disvert_type, pressure_exner
     
    2323      real bps    ! hybrid sigma contribution at mid-layers
    2424      real scaleheight ! atmospheric (reference) scale height (km)
     25      real pseudoalt ! for planets
    2526
    2627      integer disvert_type ! type of vertical discretization:
  • LMDZ5/branches/testing/libf/dyn3dpar/disvert.F90

    r1665 r1669  
    77  use new_unit_m, only: new_unit
    88  use ioipsl, only: getin
     9  use assert_m, only: assert
    910
    1011  IMPLICIT NONE
     
    2122
    2223  real,intent(in) :: pa, preff
    23   real,intent(out) :: ap(llmp1), bp(llmp1)
     24  real,intent(out) :: ap(llmp1) ! in Pa
     25  real, intent(out):: bp(llmp1)
    2426  real,intent(out) :: dpres(llm), nivsigs(llm), nivsig(llmp1)
    2527  real,intent(out) :: presnivs(llm)
     
    7981
    8082     sig(llm+1)=0.
     83
     84     bp(: llm) = EXP(1. - 1. / sig(: llm)**2)
     85     bp(llmp1) = 0.
     86
     87     ap = pa * (sig - bp)
    8188  case("tropo")
    8289     DO l = 1, llm
     
    8996        sig(l) = sig(l+1) + dsig(l)
    9097     ENDDO
     98
     99     bp(1)=1.
     100     bp(2: llm) = EXP(1. - 1. / sig(2: llm)**2)
     101     bp(llmp1) = 0.
     102
     103     ap(1)=0.
     104     ap(2: llm + 1) = pa * (sig(2: llm + 1) - bp(2: llm + 1))
    91105  case("strato")
    92106     if (llm==39) then
     
    110124        sig(l) = sig(l+1) + dsig(l)
    111125     ENDDO
     126
     127     bp(1)=1.
     128     bp(2: llm) = EXP(1. - 1. / sig(2: llm)**2)
     129     bp(llmp1) = 0.
     130
     131     ap(1)=0.
     132     ap(2: llm + 1) = pa * (sig(2: llm + 1) - bp(2: llm + 1))
    112133  case("read")
     134     ! Read "ap" and "bp". First line is skipped (title line). "ap"
     135     ! should be in Pa. First couple of values should correspond to
     136     ! the surface, that is : "bp" should be in descending order.
    113137     call new_unit(unit)
    114138     open(unit, file="hybrid.txt", status="old", action="read", &
     
    116140     read(unit, fmt=*) ! skip title line
    117141     do l = 1, llm + 1
    118         read(unit, fmt=*) sig(l)
     142        read(unit, fmt=*) ap(l), bp(l)
    119143     end do
    120144     close(unit)
     145     call assert(ap(1) == 0., ap(llm + 1) == 0., bp(1) == 1., &
     146          bp(llm + 1) == 0., "disvert: bad ap or bp values")
    121147  case default
    122148     call abort_gcm("disvert", 'Wrong value for "vert_sampling"', 1)
     
    130156     nivsig(l)= REAL(l)
    131157  ENDDO
    132 
    133   ! .... Calculs de ap(l) et de bp(l) ....
    134   ! ..... pa et preff sont lus sur les fichiers start par lectba .....
    135 
    136   bp(llmp1) = 0.
    137 
    138   DO l = 1, llm
    139      bp(l) = EXP( 1. -1./( sig(l)*sig(l)) )
    140      ap(l) = pa * ( sig(l) - bp(l) )
    141   ENDDO
    142 
    143   bp(1)=1.
    144   ap(1)=0.
    145 
    146   ap(llmp1) = pa * ( sig(llmp1) - bp(llmp1) )
    147158
    148159  write(lunout, *)  trim(modname),': BP '
  • LMDZ5/branches/testing/libf/dyn3dpar/disvert_noterre.F

    r1520 r1669  
    4646      real tt,rr,gg, prevz
    4747      real s(llm),dsig(llm)
    48       real pseudoalt(llm)
    4948
    5049      integer iz
  • LMDZ5/branches/testing/libf/dyn3dpar/dynetat0.F

    r1665 r1669  
    66
    77      USE infotrac
     8      use netcdf, only: nf90_get_var
     9
     10      use control_mod, only : planet_type
     11
    812      IMPLICIT NONE
    913
     
    2832#include "comconst.h"
    2933#include "comvert.h"
    30 #include "comgeom.h"
     34#include "comgeom2.h"
    3135#include "ener.h"
    3236#include "netcdf.inc"
     
    4044
    4145      CHARACTER*(*) fichnom
    42       REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm),teta(ip1jmp1,llm)
    43       REAL q(ip1jmp1,llm,nqtot),masse(ip1jmp1,llm)
    44       REAL ps(ip1jmp1),phis(ip1jmp1)
     46      REAL vcov(iip1, jjm,llm),ucov(iip1, jjp1,llm),teta(iip1, jjp1,llm)
     47      REAL q(iip1,jjp1,llm,nqtot),masse(iip1, jjp1,llm)
     48      REAL ps(iip1, jjp1),phis(iip1, jjp1)
    4549
    4650      REAL time
     
    5256      REAL tab_cntrl(length) ! tableau des parametres du run
    5357      INTEGER ierr, nid, nvarid
     58
     59      INTEGER idecal
    5460
    5561c-----------------------------------------------------------------------
     
    7076         CALL abort
    7177      ENDIF
    72 #ifdef NC_DOUBLE
    73       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl)
    74 #else
    75       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
    76 #endif
     78      ierr = nf90_get_var(nid, nvarid, tab_cntrl)
    7779      IF (ierr .NE. NF_NOERR) THEN
    7880         write(lunout,*)"dynetat0: Lecture echoue pour <controle>"
    7981         CALL abort
    8082      ENDIF
     83
     84      !!! AS: idecal is a hack to be able to read planeto starts...
     85      !!!     .... while keeping everything OK for LMDZ EARTH
     86      if (planet_type.eq."generic") then
     87          print*,'NOTE NOTE NOTE : Planeto-like start files'
     88          idecal = 4
     89          annee_ref  = 2000
     90      else
     91          print*,'NOTE NOTE NOTE : Earth-like start files'
     92          idecal = 5
     93          annee_ref  = tab_cntrl(5)
     94      endif
     95
    8196
    8297      im         = tab_cntrl(1)
     
    8499      lllm       = tab_cntrl(3)
    85100      day_ref    = tab_cntrl(4)
    86       annee_ref  = tab_cntrl(5)
    87       rad        = tab_cntrl(6)
    88       omeg       = tab_cntrl(7)
    89       g          = tab_cntrl(8)
    90       cpp        = tab_cntrl(9)
    91       kappa      = tab_cntrl(10)
    92       daysec     = tab_cntrl(11)
    93       dtvr       = tab_cntrl(12)
    94       etot0      = tab_cntrl(13)
    95       ptot0      = tab_cntrl(14)
    96       ztot0      = tab_cntrl(15)
    97       stot0      = tab_cntrl(16)
    98       ang0       = tab_cntrl(17)
    99       pa         = tab_cntrl(18)
    100       preff      = tab_cntrl(19)
    101 c
    102       clon       = tab_cntrl(20)
    103       clat       = tab_cntrl(21)
    104       grossismx  = tab_cntrl(22)
    105       grossismy  = tab_cntrl(23)
    106 c
    107       IF ( tab_cntrl(24).EQ.1. )  THEN
     101      rad        = tab_cntrl(idecal+1)
     102      omeg       = tab_cntrl(idecal+2)
     103      g          = tab_cntrl(idecal+3)
     104      cpp        = tab_cntrl(idecal+4)
     105      kappa      = tab_cntrl(idecal+5)
     106      daysec     = tab_cntrl(idecal+6)
     107      dtvr       = tab_cntrl(idecal+7)
     108      etot0      = tab_cntrl(idecal+8)
     109      ptot0      = tab_cntrl(idecal+9)
     110      ztot0      = tab_cntrl(idecal+10)
     111      stot0      = tab_cntrl(idecal+11)
     112      ang0       = tab_cntrl(idecal+12)
     113      pa         = tab_cntrl(idecal+13)
     114      preff      = tab_cntrl(idecal+14)
     115c
     116      clon       = tab_cntrl(idecal+15)
     117      clat       = tab_cntrl(idecal+16)
     118      grossismx  = tab_cntrl(idecal+17)
     119      grossismy  = tab_cntrl(idecal+18)
     120c
     121      IF ( tab_cntrl(idecal+19).EQ.1. )  THEN
    108122        fxyhypb  = . TRUE .
    109123c        dzoomx   = tab_cntrl(25)
     
    114128        fxyhypb = . FALSE .
    115129        ysinus  = . FALSE .
    116         IF( tab_cntrl(27).EQ.1. ) ysinus = . TRUE.
     130        IF( tab_cntrl(idecal+22).EQ.1. ) ysinus = . TRUE.
    117131      ENDIF
    118132
     
    142156         CALL abort
    143157      ENDIF
    144 #ifdef NC_DOUBLE
    145       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlonu)
    146 #else
    147       ierr = NF_GET_VAR_REAL(nid, nvarid, rlonu)
    148 #endif
     158      ierr = nf90_get_var(nid, nvarid, rlonu)
    149159      IF (ierr .NE. NF_NOERR) THEN
    150160         write(lunout,*)"dynetat0: Lecture echouee pour <rlonu>"
     
    157167         CALL abort
    158168      ENDIF
    159 #ifdef NC_DOUBLE
    160       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlatu)
    161 #else
    162       ierr = NF_GET_VAR_REAL(nid, nvarid, rlatu)
    163 #endif
     169      ierr = nf90_get_var(nid, nvarid, rlatu)
    164170      IF (ierr .NE. NF_NOERR) THEN
    165171         write(lunout,*)"dynetat0: Lecture echouee pour <rlatu>"
     
    172178         CALL abort
    173179      ENDIF
    174 #ifdef NC_DOUBLE
    175       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlonv)
    176 #else
    177       ierr = NF_GET_VAR_REAL(nid, nvarid, rlonv)
    178 #endif
     180      ierr = nf90_get_var(nid, nvarid, rlonv)
    179181      IF (ierr .NE. NF_NOERR) THEN
    180182         write(lunout,*)"dynetat0: Lecture echouee pour <rlonv>"
     
    187189         CALL abort
    188190      ENDIF
    189 #ifdef NC_DOUBLE
    190       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, rlatv)
    191 #else
    192       ierr = NF_GET_VAR_REAL(nid, nvarid, rlatv)
    193 #endif
     191      ierr = nf90_get_var(nid, nvarid, rlatv)
    194192      IF (ierr .NE. NF_NOERR) THEN
    195193         write(lunout,*)"dynetat0: Lecture echouee pour rlatv"
     
    202200         CALL abort
    203201      ENDIF
    204 #ifdef NC_DOUBLE
    205       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, cu)
    206 #else
    207       ierr = NF_GET_VAR_REAL(nid, nvarid, cu)
    208 #endif
     202      ierr = nf90_get_var(nid, nvarid, cu)
    209203      IF (ierr .NE. NF_NOERR) THEN
    210204         write(lunout,*)"dynetat0: Lecture echouee pour <cu>"
     
    217211         CALL abort
    218212      ENDIF
    219 #ifdef NC_DOUBLE
    220       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, cv)
    221 #else
    222       ierr = NF_GET_VAR_REAL(nid, nvarid, cv)
    223 #endif
     213      ierr = nf90_get_var(nid, nvarid, cv)
    224214      IF (ierr .NE. NF_NOERR) THEN
    225215         write(lunout,*)"dynetat0: Lecture echouee pour <cv>"
     
    232222         CALL abort
    233223      ENDIF
    234 #ifdef NC_DOUBLE
    235       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, aire)
    236 #else
    237       ierr = NF_GET_VAR_REAL(nid, nvarid, aire)
    238 #endif
     224      ierr = nf90_get_var(nid, nvarid, aire)
    239225      IF (ierr .NE. NF_NOERR) THEN
    240226         write(lunout,*)"dynetat0: Lecture echouee pour <aire>"
     
    247233         CALL abort
    248234      ENDIF
    249 #ifdef NC_DOUBLE
    250       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, phis)
    251 #else
    252       ierr = NF_GET_VAR_REAL(nid, nvarid, phis)
    253 #endif
     235      ierr = nf90_get_var(nid, nvarid, phis)
    254236      IF (ierr .NE. NF_NOERR) THEN
    255237         write(lunout,*)"dynetat0: Lecture echouee pour <phisinit>"
     
    260242      IF (ierr .NE. NF_NOERR) THEN
    261243         write(lunout,*)"dynetat0: Le champ <temps> est absent"
    262          CALL abort
    263       ENDIF
    264 #ifdef NC_DOUBLE
    265       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, time)
    266 #else
    267       ierr = NF_GET_VAR_REAL(nid, nvarid, time)
    268 #endif
     244         write(lunout,*)"dynetat0: J essaie <Time>"
     245         ierr = NF_INQ_VARID (nid, "Time", nvarid)
     246         IF (ierr .NE. NF_NOERR) THEN
     247            write(lunout,*)"dynetat0: Le champ <Time> est absent"
     248            CALL abort
     249         ENDIF
     250      ENDIF
     251      ierr = nf90_get_var(nid, nvarid, time)
    269252      IF (ierr .NE. NF_NOERR) THEN
    270253         write(lunout,*)"dynetat0: Lecture echouee <temps>"
     
    277260         CALL abort
    278261      ENDIF
    279 #ifdef NC_DOUBLE
    280       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, ucov)
    281 #else
    282       ierr = NF_GET_VAR_REAL(nid, nvarid, ucov)
    283 #endif
     262      ierr = nf90_get_var(nid, nvarid, ucov)
    284263      IF (ierr .NE. NF_NOERR) THEN
    285264         write(lunout,*)"dynetat0: Lecture echouee pour <ucov>"
     
    292271         CALL abort
    293272      ENDIF
    294 #ifdef NC_DOUBLE
    295       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, vcov)
    296 #else
    297       ierr = NF_GET_VAR_REAL(nid, nvarid, vcov)
    298 #endif
     273      ierr = nf90_get_var(nid, nvarid, vcov)
    299274      IF (ierr .NE. NF_NOERR) THEN
    300275         write(lunout,*)"dynetat0: Lecture echouee pour <vcov>"
     
    307282         CALL abort
    308283      ENDIF
    309 #ifdef NC_DOUBLE
    310       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, teta)
    311 #else
    312       ierr = NF_GET_VAR_REAL(nid, nvarid, teta)
    313 #endif
     284      ierr = nf90_get_var(nid, nvarid, teta)
    314285      IF (ierr .NE. NF_NOERR) THEN
    315286         write(lunout,*)"dynetat0: Lecture echouee pour <teta>"
     
    325296     &                    "> est absent"
    326297           write(lunout,*)"          Il est donc initialise a zero"
    327            q(:,:,iq)=0.
     298           q(:,:,:,iq)=0.
    328299        ELSE
    329 #ifdef NC_DOUBLE
    330           ierr = NF_GET_VAR_DOUBLE(nid, nvarid, q(1,1,iq))
    331 #else
    332           ierr = NF_GET_VAR_REAL(nid, nvarid, q(1,1,iq))
    333 #endif
     300           ierr = NF90_GET_VAR(nid, nvarid, q(:,:,:,iq))
    334301          IF (ierr .NE. NF_NOERR) THEN
    335302            write(lunout,*)"dynetat0: Lecture echouee pour "//tname(iq)
     
    345312         CALL abort
    346313      ENDIF
    347 #ifdef NC_DOUBLE
    348       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, masse)
    349 #else
    350       ierr = NF_GET_VAR_REAL(nid, nvarid, masse)
    351 #endif
     314      ierr = nf90_get_var(nid, nvarid, masse)
    352315      IF (ierr .NE. NF_NOERR) THEN
    353316         write(lunout,*)"dynetat0: Lecture echouee pour <masse>"
     
    360323         CALL abort
    361324      ENDIF
    362 #ifdef NC_DOUBLE
    363       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, ps)
    364 #else
    365       ierr = NF_GET_VAR_REAL(nid, nvarid, ps)
    366 #endif
     325      ierr = nf90_get_var(nid, nvarid, ps)
    367326      IF (ierr .NE. NF_NOERR) THEN
    368327         write(lunout,*)"dynetat0: Lecture echouee pour <ps>"
  • LMDZ5/branches/testing/libf/dyn3dpar/dynredem.F

    r1665 r1669  
    88#endif
    99      USE infotrac
     10      use netcdf95, only: NF95_PUT_VAR
    1011 
    1112      IMPLICIT NONE
     
    1920#include "comconst.h"
    2021#include "comvert.h"
    21 #include "comgeom.h"
     22#include "comgeom2.h"
    2223#include "temps.h"
    2324#include "ener.h"
     
    3132c   ----------
    3233      INTEGER iday_end
    33       REAL phis(ip1jmp1)
     34      REAL phis(iip1, jjp1)
    3435      CHARACTER*(*) fichnom
    3536
     
    166167     .                       "Parametres de controle")
    167168      ierr = NF_ENDDEF(nid)
    168 #ifdef NC_DOUBLE
    169       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
    170 #else
    171       ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
    172 #endif
     169      call NF95_PUT_VAR(nid,nvarid,tab_cntrl)
    173170c
    174171      ierr = NF_REDEF (nid)
     
    183180     .                       "Longitudes des points U")
    184181      ierr = NF_ENDDEF(nid)
    185 #ifdef NC_DOUBLE
    186       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlonu)
    187 #else
    188       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlonu)
    189 #endif
     182      call NF95_PUT_VAR(nid,nvarid,rlonu)
    190183c
    191184      ierr = NF_REDEF (nid)
     
    200193     .                       "Latitudes des points U")
    201194      ierr = NF_ENDDEF(nid)
    202 #ifdef NC_DOUBLE
    203       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlatu)
    204 #else
    205       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlatu)
    206 #endif
     195      call NF95_PUT_VAR (nid,nvarid,rlatu)
    207196c
    208197      ierr = NF_REDEF (nid)
     
    217206     .                       "Longitudes des points V")
    218207      ierr = NF_ENDDEF(nid)
    219 #ifdef NC_DOUBLE
    220       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlonv)
    221 #else
    222       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlonv)
    223 #endif
     208      call NF95_PUT_VAR(nid,nvarid,rlonv)
    224209c
    225210      ierr = NF_REDEF (nid)
     
    234219     .                       "Latitudes des points V")
    235220      ierr = NF_ENDDEF(nid)
    236 #ifdef NC_DOUBLE
    237       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlatv)
    238 #else
    239       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlatv)
    240 #endif
     221      call NF95_PUT_VAR(nid,nvarid,rlatv)
    241222c
    242223      ierr = NF_REDEF (nid)
     
    251232     .                       "Numero naturel des couches s")
    252233      ierr = NF_ENDDEF(nid)
    253 #ifdef NC_DOUBLE
    254       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,nivsigs)
    255 #else
    256       ierr = NF_PUT_VAR_REAL (nid,nvarid,nivsigs)
    257 #endif
     234      call NF95_PUT_VAR(nid,nvarid,nivsigs)
    258235c
    259236      ierr = NF_REDEF (nid)
     
    268245     .                       "Numero naturel des couches sigma")
    269246      ierr = NF_ENDDEF(nid)
    270 #ifdef NC_DOUBLE
    271       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,nivsig)
    272 #else
    273       ierr = NF_PUT_VAR_REAL (nid,nvarid,nivsig)
    274 #endif
     247      call NF95_PUT_VAR(nid,nvarid,nivsig)
    275248c
    276249      ierr = NF_REDEF (nid)
     
    285258     .                       "Coefficient A pour hybride")
    286259      ierr = NF_ENDDEF(nid)
    287 #ifdef NC_DOUBLE
    288       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ap)
    289 #else
    290       ierr = NF_PUT_VAR_REAL (nid,nvarid,ap)
    291 #endif
     260      call NF95_PUT_VAR(nid,nvarid,ap)
    292261c
    293262      ierr = NF_REDEF (nid)
     
    302271     .                       "Coefficient B pour hybride")
    303272      ierr = NF_ENDDEF(nid)
    304 #ifdef NC_DOUBLE
    305       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,bp)
    306 #else
    307       ierr = NF_PUT_VAR_REAL (nid,nvarid,bp)
    308 #endif
     273      call NF95_PUT_VAR(nid,nvarid,bp)
    309274c
    310275      ierr = NF_REDEF (nid)
     
    317282cIM 220306 END
    318283      ierr = NF_ENDDEF(nid)
    319 #ifdef NC_DOUBLE
    320       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,presnivs)
    321 #else
    322       ierr = NF_PUT_VAR_REAL (nid,nvarid,presnivs)
    323 #endif
     284      call NF95_PUT_VAR(nid,nvarid,presnivs)
    324285c
    325286c Coefficients de passage cov. <-> contra. <--> naturel
     
    338299     .                       "Coefficient de passage pour U")
    339300      ierr = NF_ENDDEF(nid)
    340 #ifdef NC_DOUBLE
    341       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,cu)
    342 #else
    343       ierr = NF_PUT_VAR_REAL (nid,nvarid,cu)
    344 #endif
     301      call NF95_PUT_VAR(nid,nvarid,cu)
    345302c
    346303      ierr = NF_REDEF (nid)
     
    357314     .                       "Coefficient de passage pour V")
    358315      ierr = NF_ENDDEF(nid)
    359 #ifdef NC_DOUBLE
    360       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,cv)
    361 #else
    362       ierr = NF_PUT_VAR_REAL (nid,nvarid,cv)
    363 #endif
     316      call NF95_PUT_VAR(nid,nvarid,cv)
    364317c
    365318c Aire de chaque maille:
     
    378331     .                       "Aires de chaque maille")
    379332      ierr = NF_ENDDEF(nid)
    380 #ifdef NC_DOUBLE
    381       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,aire)
    382 #else
    383       ierr = NF_PUT_VAR_REAL (nid,nvarid,aire)
    384 #endif
     333      call NF95_PUT_VAR(nid,nvarid,aire)
    385334c
    386335c Geopentiel au sol:
     
    399348     .                       "Geopotentiel au sol")
    400349      ierr = NF_ENDDEF(nid)
    401 #ifdef NC_DOUBLE
    402       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,phis)
    403 #else
    404       ierr = NF_PUT_VAR_REAL (nid,nvarid,phis)
    405 #endif
     350      call NF95_PUT_VAR(nid,nvarid,phis)
    406351c
    407352c Definir les variables pour pouvoir les enregistrer plus tard:
     
    524469      USE infotrac
    525470      USE control_mod
     471      use netcdf, only: NF90_get_VAR
     472      use netcdf95, only: NF95_PUT_VAR
    526473 
    527474      IMPLICIT NONE
     
    540487
    541488      INTEGER l
    542       REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    543       REAL teta(ip1jmp1,llm)                   
    544       REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    545       REAL q(ip1jmp1,llm,nqtot)
     489      REAL vcov(iip1,jjm,llm),ucov(iip1, jjp1,llm)
     490      REAL teta(iip1, jjp1,llm)                   
     491      REAL ps(iip1, jjp1),masse(iip1, jjp1,llm)                   
     492      REAL q(iip1, jjp1, llm, nqtot)
    546493      CHARACTER*(*) fichnom
    547494     
     
    577524         CALL abort_gcm(modname,abort_message,ierr)
    578525      ENDIF
    579 #ifdef NC_DOUBLE
    580       ierr = NF_PUT_VAR1_DOUBLE (nid,nvarid,nb,time)
    581 #else
    582       ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time)
    583 #endif
     526      call NF95_PUT_VAR(nid,nvarid,time,start=(/nb/))
    584527      write(lunout,*) "dynredem1: Enregistrement pour ", nb, time
    585528
     
    593536         CALL abort_gcm(modname,abort_message,ierr)
    594537      ENDIF
    595 #ifdef NC_DOUBLE
    596       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl)
    597 #else
    598       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
    599 #endif
     538      ierr = NF90_GET_VAR(nid, nvarid, tab_cntrl)
    600539       tab_cntrl(31) = REAL(itau_dyn + itaufin)
    601 #ifdef NC_DOUBLE
    602       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
    603 #else
    604       ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
    605 #endif
     540      call NF95_PUT_VAR(nid,nvarid,tab_cntrl)
    606541
    607542c  Ecriture des champs
     
    613548         CALL abort_gcm(modname,abort_message,ierr)
    614549      ENDIF
    615 #ifdef NC_DOUBLE
    616       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ucov)
    617 #else
    618       ierr = NF_PUT_VAR_REAL (nid,nvarid,ucov)
    619 #endif
     550      call NF95_PUT_VAR(nid,nvarid,ucov)
    620551
    621552      ierr = NF_INQ_VARID(nid, "vcov", nvarid)
     
    625556         CALL abort_gcm(modname,abort_message,ierr)
    626557      ENDIF
    627 #ifdef NC_DOUBLE
    628       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,vcov)
    629 #else
    630       ierr = NF_PUT_VAR_REAL (nid,nvarid,vcov)
    631 #endif
     558      call NF95_PUT_VAR(nid,nvarid,vcov)
    632559
    633560      ierr = NF_INQ_VARID(nid, "teta", nvarid)
     
    637564         CALL abort_gcm(modname,abort_message,ierr)
    638565      ENDIF
    639 #ifdef NC_DOUBLE
    640       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,teta)
    641 #else
    642       ierr = NF_PUT_VAR_REAL (nid,nvarid,teta)
    643 #endif
     566      call NF95_PUT_VAR(nid,nvarid,teta)
    644567
    645568      IF (type_trac == 'inca') THEN
     
    663586               CALL abort_gcm(modname,abort_message,ierr)
    664587            ENDIF
    665 #ifdef NC_DOUBLE
    666             ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
    667 #else
    668             ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    669 #endif
    670         ELSE ! type_trac=inca
     588            call NF95_PUT_VAR(nid,nvarid,q(:,:,:,iq))
     589        ELSE ! type_trac = inca
    671590! lecture de la valeur du traceur dans start_trac.nc
    672591           IF (ierr_file .ne. 2) THEN
     
    682601                   CALL abort_gcm(modname,abort_message,ierr)
    683602                ENDIF
    684 #ifdef NC_DOUBLE
    685                 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
    686 #else
    687                 ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    688 #endif
     603                call NF95_PUT_VAR(nid,nvarid,q(:,:,:,iq))
    689604               
    690605             ELSE
    691606                write(lunout,*) "dynredem1: ",trim(tname(iq)),
    692607     &              " est present dans start_trac.nc"
    693 #ifdef NC_DOUBLE
    694                ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
    695 #else
    696                ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp)
    697 #endif
     608               ierr = NF90_GET_VAR(nid_trac, nvarid_trac, trac_tmp)
    698609                IF (ierr .NE. NF_NOERR) THEN
    699610                   abort_message="dynredem1: Lecture echouee pour"//
     
    709620                   CALL abort_gcm(modname,abort_message,ierr)
    710621                ENDIF
    711 #ifdef NC_DOUBLE
    712                 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp)
    713 #else
    714                 ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp)
    715 #endif
     622                call NF95_PUT_VAR(nid, nvarid, trac_tmp)
    716623               
    717624             ENDIF ! IF (ierr .NE. NF_NOERR)
     
    726633                   CALL abort_gcm(modname,abort_message,ierr)
    727634             ENDIF
    728 #ifdef NC_DOUBLE
    729              ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
    730 #else
    731              ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    732 #endif
     635             call NF95_PUT_VAR(nid,nvarid,q(:,:,:,iq))
    733636          ENDIF ! (ierr_file .ne. 2)
    734        END IF   ! type_trac
     637       END IF   !type_trac
    735638     
    736639      ENDDO
     
    743646         CALL abort_gcm(modname,abort_message,ierr)
    744647      ENDIF
    745 #ifdef NC_DOUBLE
    746       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,masse)
    747 #else
    748       ierr = NF_PUT_VAR_REAL (nid,nvarid,masse)
    749 #endif
     648      call NF95_PUT_VAR(nid,nvarid,masse)
    750649c
    751650      ierr = NF_INQ_VARID(nid, "ps", nvarid)
     
    755654         CALL abort_gcm(modname,abort_message,ierr)
    756655      ENDIF
    757 #ifdef NC_DOUBLE
    758       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ps)
    759 #else
    760       ierr = NF_PUT_VAR_REAL (nid,nvarid,ps)
    761 #endif
     656      call NF95_PUT_VAR(nid,nvarid,ps)
    762657
    763658      ierr = NF_CLOSE(nid)
  • LMDZ5/branches/testing/libf/dyn3dpar/dynredem_p.F

    r1665 r1669  
    99      USE parallel
    1010      USE infotrac
     11      use netcdf95, only: NF95_PUT_VAR
     12 
    1113      IMPLICIT NONE
    1214c=======================================================================
     
    1921#include "comconst.h"
    2022#include "comvert.h"
    21 #include "comgeom.h"
     23#include "comgeom2.h"
    2224#include "temps.h"
    2325#include "ener.h"
     
    3032c   ----------
    3133      INTEGER iday_end
    32       REAL phis(ip1jmp1)
     34      REAL phis(iip1, jjp1)
    3335      CHARACTER*(*) fichnom
    3436
     
    5658      character*30 unites
    5759
     60
    5861c-----------------------------------------------------------------------
    5962      if (mpi_rank==0) then
     
    6972      mmois0=1
    7073      jjour0=1
    71 #endif               
     74#endif       
    7275
    7376      DO l=1,length
    7477       tab_cntrl(l) = 0.
    7578      ENDDO
    76        tab_cntrl(1)  =  REAL(iim)
    77        tab_cntrl(2)  =  REAL(jjm)
    78        tab_cntrl(3)  =  REAL(llm)
    79        tab_cntrl(4)  =  REAL(day_ref)
    80        tab_cntrl(5)  =  REAL(annee_ref)
     79       tab_cntrl(1)  = REAL(iim)
     80       tab_cntrl(2)  = REAL(jjm)
     81       tab_cntrl(3)  = REAL(llm)
     82       tab_cntrl(4)  = REAL(day_ref)
     83       tab_cntrl(5)  = REAL(annee_ref)
    8184       tab_cntrl(6)  = rad
    8285       tab_cntrl(7)  = omeg
     
    118121      ENDIF
    119122
    120        tab_cntrl(30) =  REAL(iday_end)
    121        tab_cntrl(31) =  REAL(itau_dyn + itaufin)
     123       tab_cntrl(30) = REAL(iday_end)
     124       tab_cntrl(31) = REAL(itau_dyn + itaufin)
    122125c start_time: start_time of simulation (not necessarily 0.)
    123126       tab_cntrl(32) = start_time
     
    165168     .                       "Parametres de controle")
    166169      ierr = NF_ENDDEF(nid)
    167 #ifdef NC_DOUBLE
    168       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
    169 #else
    170       ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
    171 #endif
     170      call NF95_PUT_VAR(nid,nvarid,tab_cntrl)
    172171c
    173172      ierr = NF_REDEF (nid)
     
    182181     .                       "Longitudes des points U")
    183182      ierr = NF_ENDDEF(nid)
    184 #ifdef NC_DOUBLE
    185       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlonu)
    186 #else
    187       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlonu)
    188 #endif
     183      call NF95_PUT_VAR(nid,nvarid,rlonu)
    189184c
    190185      ierr = NF_REDEF (nid)
     
    199194     .                       "Latitudes des points U")
    200195      ierr = NF_ENDDEF(nid)
    201 #ifdef NC_DOUBLE
    202       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlatu)
    203 #else
    204       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlatu)
    205 #endif
     196      call NF95_PUT_VAR (nid,nvarid,rlatu)
    206197c
    207198      ierr = NF_REDEF (nid)
     
    216207     .                       "Longitudes des points V")
    217208      ierr = NF_ENDDEF(nid)
    218 #ifdef NC_DOUBLE
    219       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlonv)
    220 #else
    221       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlonv)
    222 #endif
     209      call NF95_PUT_VAR(nid,nvarid,rlonv)
    223210c
    224211      ierr = NF_REDEF (nid)
     
    233220     .                       "Latitudes des points V")
    234221      ierr = NF_ENDDEF(nid)
    235 #ifdef NC_DOUBLE
    236       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,rlatv)
    237 #else
    238       ierr = NF_PUT_VAR_REAL (nid,nvarid,rlatv)
    239 #endif
     222      call NF95_PUT_VAR(nid,nvarid,rlatv)
    240223c
    241224      ierr = NF_REDEF (nid)
     
    250233     .                       "Numero naturel des couches s")
    251234      ierr = NF_ENDDEF(nid)
    252 #ifdef NC_DOUBLE
    253       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,nivsigs)
    254 #else
    255       ierr = NF_PUT_VAR_REAL (nid,nvarid,nivsigs)
    256 #endif
     235      call NF95_PUT_VAR(nid,nvarid,nivsigs)
    257236c
    258237      ierr = NF_REDEF (nid)
     
    267246     .                       "Numero naturel des couches sigma")
    268247      ierr = NF_ENDDEF(nid)
    269 #ifdef NC_DOUBLE
    270       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,nivsig)
    271 #else
    272       ierr = NF_PUT_VAR_REAL (nid,nvarid,nivsig)
    273 #endif
     248      call NF95_PUT_VAR(nid,nvarid,nivsig)
    274249c
    275250      ierr = NF_REDEF (nid)
     
    284259     .                       "Coefficient A pour hybride")
    285260      ierr = NF_ENDDEF(nid)
    286 #ifdef NC_DOUBLE
    287       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ap)
    288 #else
    289       ierr = NF_PUT_VAR_REAL (nid,nvarid,ap)
    290 #endif
     261      call NF95_PUT_VAR(nid,nvarid,ap)
    291262c
    292263      ierr = NF_REDEF (nid)
     
    301272     .                       "Coefficient B pour hybride")
    302273      ierr = NF_ENDDEF(nid)
    303 #ifdef NC_DOUBLE
    304       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,bp)
    305 #else
    306       ierr = NF_PUT_VAR_REAL (nid,nvarid,bp)
    307 #endif
     274      call NF95_PUT_VAR(nid,nvarid,bp)
    308275c
    309276      ierr = NF_REDEF (nid)
     
    316283cIM 220306 END
    317284      ierr = NF_ENDDEF(nid)
    318 #ifdef NC_DOUBLE
    319       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,presnivs)
    320 #else
    321       ierr = NF_PUT_VAR_REAL (nid,nvarid,presnivs)
    322 #endif
     285      call NF95_PUT_VAR(nid,nvarid,presnivs)
    323286c
    324287c Coefficients de passage cov. <-> contra. <--> naturel
     
    337300     .                       "Coefficient de passage pour U")
    338301      ierr = NF_ENDDEF(nid)
    339 #ifdef NC_DOUBLE
    340       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,cu)
    341 #else
    342       ierr = NF_PUT_VAR_REAL (nid,nvarid,cu)
    343 #endif
     302      call NF95_PUT_VAR(nid,nvarid,cu)
    344303c
    345304      ierr = NF_REDEF (nid)
     
    356315     .                       "Coefficient de passage pour V")
    357316      ierr = NF_ENDDEF(nid)
    358 #ifdef NC_DOUBLE
    359       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,cv)
    360 #else
    361       ierr = NF_PUT_VAR_REAL (nid,nvarid,cv)
    362 #endif
     317      call NF95_PUT_VAR(nid,nvarid,cv)
    363318c
    364319c Aire de chaque maille:
     
    377332     .                       "Aires de chaque maille")
    378333      ierr = NF_ENDDEF(nid)
    379 #ifdef NC_DOUBLE
    380       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,aire)
    381 #else
    382       ierr = NF_PUT_VAR_REAL (nid,nvarid,aire)
    383 #endif
     334      call NF95_PUT_VAR(nid,nvarid,aire)
    384335c
    385336c Geopentiel au sol:
     
    398349     .                       "Geopotentiel au sol")
    399350      ierr = NF_ENDDEF(nid)
    400 #ifdef NC_DOUBLE
    401       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,phis)
    402 #else
    403       ierr = NF_PUT_VAR_REAL (nid,nvarid,phis)
    404 #endif
     351      call NF95_PUT_VAR(nid,nvarid,phis)
    405352c
    406353c Definir les variables pour pouvoir les enregistrer plus tard:
     
    510457      ierr = NF_ENDDEF(nid) ! sortir du mode de definition
    511458      ierr = NF_CLOSE(nid) ! fermer le fichier
    512 
    513459
    514460      PRINT*,'iim,jjm,llm,iday_end',iim,jjm,llm,iday_end
     
    524470      USE infotrac
    525471      USE control_mod
     472      use netcdf, only: NF90_get_VAR
     473      use netcdf95, only: NF95_PUT_VAR
     474 
    526475      IMPLICIT NONE
    527476c=================================================================
     
    536485#include "temps.h"
    537486
     487
    538488      INTEGER l
    539       REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm)
    540       REAL teta(ip1jmp1,llm)                   
    541       REAL ps(ip1jmp1),masse(ip1jmp1,llm)                   
    542       REAL q(ip1jmp1,llm,nqtot)
     489      REAL vcov(iip1,jjm,llm),ucov(iip1, jjp1,llm)
     490      REAL teta(iip1, jjp1,llm)                   
     491      REAL ps(iip1, jjp1),masse(iip1, jjp1,llm)                   
     492      REAL q(iip1, jjp1, llm, nqtot)
    543493      CHARACTER*(*) fichnom
    544494     
     
    546496      INTEGER nid, nvarid, nid_trac, nvarid_trac
    547497      REAL trac_tmp(ip1jmp1,llm)     
    548       INTEGER ierr, ierr_file
     498      INTEGER ierr, ierr_file 
    549499      INTEGER iq
    550500      INTEGER length
     
    567517     
    568518      do iq=1,nqtot
    569         call Gather_Field(q(1,1,iq),ip1jmp1,llm,0)
     519        call Gather_Field(q(:,:,:,iq),ip1jmp1,llm,0)
    570520      enddo
    571521     
     
    589539         CALL abort_gcm(modname,abort_message,ierr)
    590540      ENDIF
    591 #ifdef NC_DOUBLE
    592       ierr = NF_PUT_VAR1_DOUBLE (nid,nvarid,nb,time)
    593 #else
    594       ierr = NF_PUT_VAR1_REAL (nid,nvarid,nb,time)
    595 #endif
     541      call NF95_PUT_VAR(nid,nvarid,time,start=(/nb/))
    596542      PRINT*, "Enregistrement pour ", nb, time
    597543
     
    605551         CALL abort_gcm(modname,abort_message,ierr)
    606552      ENDIF
    607 #ifdef NC_DOUBLE
    608       ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl)
    609 #else
    610       ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl)
    611 #endif
    612        tab_cntrl(31) =  REAL(itau_dyn + itaufin)
    613 #ifdef NC_DOUBLE
    614       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tab_cntrl)
    615 #else
    616       ierr = NF_PUT_VAR_REAL (nid,nvarid,tab_cntrl)
    617 #endif
     553      ierr = NF90_GET_VAR(nid, nvarid, tab_cntrl)
     554       tab_cntrl(31) = REAL(itau_dyn + itaufin)
     555      call NF95_PUT_VAR(nid,nvarid,tab_cntrl)
    618556
    619557c  Ecriture des champs
     
    624562         CALL abort
    625563      ENDIF
    626 #ifdef NC_DOUBLE
    627       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ucov)
    628 #else
    629       ierr = NF_PUT_VAR_REAL (nid,nvarid,ucov)
    630 #endif
     564      call NF95_PUT_VAR(nid,nvarid,ucov)
    631565
    632566      ierr = NF_INQ_VARID(nid, "vcov", nvarid)
     
    635569         CALL abort
    636570      ENDIF
    637 #ifdef NC_DOUBLE
    638       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,vcov)
    639 #else
    640       ierr = NF_PUT_VAR_REAL (nid,nvarid,vcov)
    641 #endif
     571      call NF95_PUT_VAR(nid,nvarid,vcov)
    642572
    643573      ierr = NF_INQ_VARID(nid, "teta", nvarid)
     
    646576         CALL abort
    647577      ENDIF
    648 #ifdef NC_DOUBLE
    649       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,teta)
    650 #else
    651       ierr = NF_PUT_VAR_REAL (nid,nvarid,teta)
    652 #endif
     578      call NF95_PUT_VAR(nid,nvarid,teta)
    653579
    654580      IF (type_trac == 'inca') THEN
     
    675601               CALL abort
    676602            ENDIF
    677 #ifdef NC_DOUBLE
    678             ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
    679 #else
    680             ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    681 #endif
     603            call NF95_PUT_VAR(nid,nvarid,q(:,:,:,iq))
    682604        ELSE ! type_trac = inca
    683605! lecture de la valeur du traceur dans start_trac.nc
     
    691613                   CALL abort
    692614                ENDIF
    693 #ifdef NC_DOUBLE
    694                 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
    695 #else
    696                 ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    697 #endif
     615                call NF95_PUT_VAR(nid,nvarid,q(:,:,:,iq))
    698616               
    699617             ELSE
    700618                PRINT*, tname(iq), "est present dans start_trac.nc"
    701 #ifdef NC_DOUBLE
    702                ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
    703 #else
    704                ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp)
    705 #endif
     619               ierr = NF90_GET_VAR(nid_trac, nvarid_trac, trac_tmp)
    706620                IF (ierr .NE. NF_NOERR) THEN
    707621                   PRINT*, "Lecture echouee pour", tname(iq)
     
    713627                   CALL abort
    714628                ENDIF
    715 #ifdef NC_DOUBLE
    716                 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp)
    717 #else
    718                 ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp)
    719 #endif
     629                call NF95_PUT_VAR(nid, nvarid, trac_tmp)
    720630               
    721631             ENDIF ! IF (ierr .NE. NF_NOERR)
     
    728638                CALL abort
    729639             ENDIF
    730 #ifdef NC_DOUBLE
    731              ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
    732 #else
    733              ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    734 #endif
     640             call NF95_PUT_VAR(nid,nvarid,q(:,:,:,iq))
    735641          ENDIF ! (ierr_file .ne. 2)
    736        END IF   ! type_trac
     642       END IF   !type_trac
    737643     
    738644      ENDDO
     
    746652         CALL abort
    747653      ENDIF
    748 #ifdef NC_DOUBLE
    749       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,masse)
    750 #else
    751       ierr = NF_PUT_VAR_REAL (nid,nvarid,masse)
    752 #endif
     654      call NF95_PUT_VAR(nid,nvarid,masse)
    753655c
    754656      ierr = NF_INQ_VARID(nid, "ps", nvarid)
     
    757659         CALL abort
    758660      ENDIF
    759 #ifdef NC_DOUBLE
    760       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,ps)
    761 #else
    762       ierr = NF_PUT_VAR_REAL (nid,nvarid,ps)
    763 #endif
     661      call NF95_PUT_VAR(nid,nvarid,ps)
    764662
    765663      ierr = NF_CLOSE(nid)
Note: See TracChangeset for help on using the changeset viewer.