Ignore:
Timestamp:
Jul 19, 2024, 6:40:44 PM (6 months ago)
Author:
Laurent Fairhead
Message:

Reverting to r4065. Updating fortran standard broke too much stuff. Will do it by smaller chunks
AB, LF

Location:
LMDZ6/trunk/libf/dyn3dmem
Files:
1 deleted
7 edited
1 copied

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90

    r5075 r5084  
    99  USE infotrac,    ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName
    1010  USE strings_mod, ONLY: maxlen, msg, strStack, real2str, int2str, strIdx
    11   USE lmdz_netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, &
     11  USE netcdf,      ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_INQUIRE_DIMENSION, NF90_INQ_VARID, &
    1212                         NF90_CLOSE, NF90_GET_VAR, NF90_INQUIRE_VARIABLE,  NF90_NoErr
    1313  USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey
  • LMDZ6/trunk/libf/dyn3dmem/dynredem_loc.F90

    r5075 r5084  
    1111  USE strings_mod, ONLY: maxlen
    1212  USE infotrac, ONLY: nqtot, tracers
    13   USE lmdz_netcdf, ONLY: NF90_CREATE, NF90_DEF_DIM, NF90_INQ_VARID, NF90_GLOBAL,    &
     13  USE netcdf, ONLY: NF90_CREATE, NF90_DEF_DIM, NF90_INQ_VARID, NF90_GLOBAL,    &
    1414                    NF90_CLOSE,  NF90_PUT_ATT, NF90_UNLIMITED, NF90_CLOBBER,   &
    1515                    NF90_64BIT_OFFSET
     
    178178  USE infotrac, ONLY: nqtot, tracers, type_trac
    179179  USE control_mod
    180   USE lmdz_netcdf,   ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID,  &
     180  USE netcdf,   ONLY: NF90_OPEN,  NF90_NOWRITE, NF90_GET_VAR, NF90_INQ_VARID,  &
    181181                      NF90_CLOSE, NF90_WRITE,   NF90_PUT_VAR, NF90_NoErr
    182182  USE dynredem_mod, ONLY: dynredem_write_u, dynredem_write_v, dynredem_read_u, &
  • LMDZ6/trunk/libf/dyn3dmem/dynredem_mod.F90

    r5075 r5084  
    44  USE parallel_lmdz
    55  USE mod_hallo
    6   USE lmdz_netcdf, ONLY:nf90_strerror,nf90_noerr,nf90_redef,nf90_put_var,nf90_inquire_dimension,&
    7           nf90_format,nf90_inq_varid,nf90_get_var,nf90_def_var,nf90_enddef,nf90_put_att
     6  USE netcdf
    87  PRIVATE
    98  PUBLIC :: dynredem_write_u, dynredem_write_v, dynredem_read_u, err
     
    181180  CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: units
    182181!===============================================================================
    183   CALL err(NF90_DEF_VAR(ncid,var,NF90_FORMAT,did,nvarid),"inq",var)
     182#ifdef NC_DOUBLE
     183  CALL err(NF90_DEF_VAR(ncid,var,NF90_DOUBLE,did,nvarid),"inq",var)
     184#else
     185  CALL err(NF90_DEF_VAR(ncid,var,NF90_FLOAT ,did,nvarid),"inq",var)
     186#endif
    184187  IF(title/="")      CALL err(NF90_PUT_ATT(ncid,nvarid,"title",title),var)
    185188  IF(PRESENT(units)) CALL err(NF90_PUT_ATT(ncid,nvarid,"units",units),var)
  • LMDZ6/trunk/libf/dyn3dmem/guide_loc_mod.F90

    r5072 r5084  
     1!
     2! $Id$
     3!
    14MODULE guide_loc_mod
    25
     
    811  USE getparam, only: ini_getparam, fin_getparam, getpar
    912  USE Write_Field_loc
    10   use lmdz_netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close, &
    11           nf90_inq_dimid, nf90_inquire_dimension, nf_inq_dimid, &
    12           nf_inq_dimlen, nf_enddef, nf_def_dim, nf90_put_var, nf_noerr, nf_close, nf_inq_varid, &
    13           nf_redef, nf_write, nf_unlimited, nf_float, nf_clobber, nf_64bit_offset, nf90_float, &
    14           nf_create, nf_def_var, nf_open
     13  use netcdf, only: nf90_nowrite, nf90_open, nf90_inq_varid, nf90_close, &
     14                    nf90_inq_dimid, nf90_inquire_dimension
    1515  USE parallel_lmdz
    1616  USE pres2lev_mod, only: pres2lev
     
    8181    INCLUDE "dimensions.h"
    8282    INCLUDE "paramet.h"
     83    INCLUDE "netcdf.inc"
    8384
    8485    INTEGER                :: error,ncidpl,rid,rcod
     
    125126    CALL getpar('iguide_sav',4,iguide_sav,'freq. sauvegarde guidage')
    126127    ! frequences f>0: fx/jour; f<0: tous les f jours; f=0: 1 seule fois.
    127     IF (iguide_sav>0) THEN
     128    IF (iguide_sav.GT.0) THEN
    128129       iguide_sav=day_step/iguide_sav
    129130    ELSE if (iguide_sav == 0) then
     
    145146    CALL getpar('iguide_read',4,iguide_read,'freq. lecture guidage')
    146147    CALL getpar('iguide_int',4,iguide_int,'freq. interpolation vert')
    147     IF (iguide_int==0) THEN
     148    IF (iguide_int.EQ.0) THEN
    148149        iguide_int=1
    149     ELSEIF (iguide_int>0) THEN
     150    ELSEIF (iguide_int.GT.0) THEN
    150151        iguide_int=day_step/iguide_int
    151152    ELSE
     
    173174! ---------------------------------------------
    174175    ncidpl=-99
    175     if (guide_plevs==1) then
    176        if (ncidpl==-99) then
     176    if (guide_plevs.EQ.1) then
     177       if (ncidpl.eq.-99) then
    177178          rcod=nf90_open('apbp.nc',Nf90_NOWRITe, ncidpl)
    178           if (rcod/=NF_NOERR) THEN
     179          if (rcod.NE.NF_NOERR) THEN
    179180             abort_message=' Nudging error -> no file apbp.nc'
    180181             CALL abort_gcm(modname,abort_message,1)
    181182          endif
    182183       endif
    183     elseif (guide_plevs==2) then
    184        if (ncidpl==-99) then
     184    elseif (guide_plevs.EQ.2) then
     185       if (ncidpl.EQ.-99) then
    185186          rcod=nf90_open('P.nc',Nf90_NOWRITe,ncidpl)
    186           if (rcod/=NF_NOERR) THEN
     187          if (rcod.NE.NF_NOERR) THEN
    187188             abort_message=' Nudging error -> no file P.nc'
    188189             CALL abort_gcm(modname,abort_message,1)
     
    191192
    192193    elseif (guide_u) then
    193        if (ncidpl==-99) then
     194       if (ncidpl.eq.-99) then
    194195          rcod=nf90_open('u.nc',Nf90_NOWRITe,ncidpl)
    195           if (rcod/=NF_NOERR) THEN
     196          if (rcod.NE.NF_NOERR) THEN
    196197             abort_message=' Nudging error -> no file u.nc'
    197198             CALL abort_gcm(modname,abort_message,1)
     
    202203
    203204    elseif (guide_v) then
    204        if (ncidpl==-99) then
     205       if (ncidpl.eq.-99) then
    205206          rcod=nf90_open('v.nc',nf90_nowrite,ncidpl)
    206           if (rcod/=NF_NOERR) THEN
     207          if (rcod.NE.NF_NOERR) THEN
    207208             abort_message=' Nudging error -> no file v.nc'
    208209             CALL abort_gcm(modname,abort_message,1)
     
    212213   
    213214    elseif (guide_T) then
    214        if (ncidpl==-99) then
     215       if (ncidpl.eq.-99) then
    215216          rcod=nf90_open('T.nc',nf90_nowrite,ncidpl)
    216           if (rcod/=NF_NOERR) THEN
     217          if (rcod.NE.NF_NOERR) THEN
    217218             abort_message=' Nudging error -> no file T.nc'
    218219             CALL abort_gcm(modname,abort_message,1)
     
    223224
    224225    elseif (guide_Q) then
    225        if (ncidpl==-99) then
     226       if (ncidpl.eq.-99) then
    226227          rcod=nf90_open('hur.nc',nf90_nowrite, ncidpl)
    227           if (rcod/=NF_NOERR) THEN
     228          if (rcod.NE.NF_NOERR) THEN
    228229             abort_message=' Nudging error -> no file hur.nc'
    229230             CALL abort_gcm(modname,abort_message,1)
     
    234235    endif
    235236    error=NF_INQ_DIMID(ncidpl,'LEVEL',rid)
    236     IF (error/=NF_NOERR) error=NF_INQ_DIMID(ncidpl,'PRESSURE',rid)
    237     IF (error/=NF_NOERR) THEN
     237    IF (error.NE.NF_NOERR) error=NF_INQ_DIMID(ncidpl,'PRESSURE',rid)
     238    IF (error.NE.NF_NOERR) THEN
    238239        abort_message='Nudging: error reading pressure levels'
    239240        CALL abort_gcm(modname,abort_message,1)
     
    316317    ENDIF
    317318
    318     IF (guide_plevs==2) THEN
     319    IF (guide_plevs.EQ.2) THEN
    319320        ALLOCATE(pnat1(iip1,jjb_u:jje_u,nlevnc), stat = error)
    320321        IF (error /= 0) CALL abort_gcm(modname,abort_message,1)
     
    324325    ENDIF
    325326
    326     IF (guide_P.OR.guide_plevs==1) THEN
     327    IF (guide_P.OR.guide_plevs.EQ.1) THEN
    327328        ALLOCATE(psnat1(iip1,jjb_u:jje_u), stat = error)
    328329        IF (error /= 0) CALL abort_gcm(modname,abort_message,1)
     
    351352    IF (guide_T) tnat1=tnat2
    352353    IF (guide_Q) qnat1=qnat2
    353     IF (guide_plevs==2) pnat1=pnat2
    354     IF (guide_P.OR.guide_plevs==1) psnat1=psnat2
     354    IF (guide_plevs.EQ.2) pnat1=pnat2
     355    IF (guide_P.OR.guide_plevs.EQ.1) psnat1=psnat2
    355356
    356357  END SUBROUTINE guide_init
     
    488489! Lecture des fichiers de guidage ?
    489490!-----------------------------------------------------------------------
    490     IF (iguide_read/=0) THEN
     491    IF (iguide_read.NE.0) THEN
    491492      ditau=real(itau)
    492493      dday_step=real(day_step)
    493       IF (iguide_read<0) THEN
     494      IF (iguide_read.LT.0) THEN
    494495          tau=ditau/dday_step/REAL(iguide_read)
    495496      ELSE
     
    497498      ENDIF
    498499      reste=tau-AINT(tau)
    499       IF (reste==0.) THEN
    500           IF (itau_test==itau) THEN
     500      IF (reste.EQ.0.) THEN
     501          IF (itau_test.EQ.itau) THEN
    501502            write(*,*)trim(modname)//' second pass in advreel at itau=',&
    502503            itau
     
    508509              IF (guide_T) tnat1(:,jjbu:jjeu,:)=tnat2(:,jjbu:jjeu,:)
    509510              IF (guide_Q) qnat1(:,jjbu:jjeu,:)=qnat2(:,jjbu:jjeu,:)
    510               IF (guide_plevs==2) pnat1(:,jjbu:jjeu,:)=pnat2(:,jjbu:jjeu,:)
    511               IF (guide_P.OR.guide_plevs==1) psnat1(:,jjbu:jjeu)=psnat2(:,jjbu:jjeu)
     511              IF (guide_plevs.EQ.2) pnat1(:,jjbu:jjeu,:)=pnat2(:,jjbu:jjeu,:)
     512              IF (guide_P.OR.guide_plevs.EQ.1) psnat1(:,jjbu:jjeu)=psnat2(:,jjbu:jjeu)
    512513!$OMP END MASTER
    513514!$OMP BARRIER
     
    540541! Interpolation et conversion des champs de guidage
    541542!-----------------------------------------------------------------------
    542     IF (MOD(itau,iguide_int)==0) THEN
     543    IF (MOD(itau,iguide_int).EQ.0) THEN
    543544        CALL guide_interp(ps,teta)
    544545    ENDIF
    545546! Repartition entre 2 etats de guidage
    546     IF (iguide_read/=0) THEN
     547    IF (iguide_read.NE.0) THEN
    547548        tau=reste
    548549    ELSE
     
    560561!-----------------------------------------------------------------------
    561562! Sauvegarde du guidage?
    562     f_out=((MOD(itau,iguide_sav)==0).AND.guide_sav)
     563    f_out=((MOD(itau,iguide_sav).EQ.0).AND.guide_sav) 
    563564    IF (f_out) THEN
    564565
     
    803804        IF (guide_reg) THEN
    804805            DO i=1,iim
    805                 IF (lond(i)<lon_min_g) imin(1)=i
    806                 IF (lond(i)<=lon_max_g) imax(1)=i
     806                IF (lond(i).LT.lon_min_g) imin(1)=i
     807                IF (lond(i).LE.lon_max_g) imax(1)=i
    807808            ENDDO
    808809            lond=rlonv*180./pi
    809810            DO i=1,iim
    810                 IF (lond(i)<lon_min_g) imin(2)=i
    811                 IF (lond(i)<=lon_max_g) imax(2)=i
     811                IF (lond(i).LT.lon_min_g) imin(2)=i
     812                IF (lond(i).LE.lon_max_g) imax(2)=i
    812813            ENDDO
    813814        ENDIF
     
    875876        IF (guide_reg) THEN
    876877            DO i=1,iim
    877                 IF (lond(i)<lon_min_g) imin(1)=i
    878                 IF (lond(i)<=lon_max_g) imax(1)=i
     878                IF (lond(i).LT.lon_min_g) imin(1)=i
     879                IF (lond(i).LE.lon_max_g) imax(1)=i
    879880            ENDDO
    880881            lond=rlonv*180./pi
    881882            DO i=1,iim
    882                 IF (lond(i)<lon_min_g) imin(2)=i
    883                 IF (lond(i)<=lon_max_g) imax(2)=i
     883                IF (lond(i).LT.lon_min_g) imin(2)=i
     884                IF (lond(i).LE.lon_max_g) imax(2)=i
    884885            ENDDO
    885886        ENDIF
     
    982983   
    983984   
    984     IF (guide_plevs==0) THEN
     985    IF (guide_plevs.EQ.0) THEN
    985986!$OMP DO
    986987        DO l=1,nlevnc
     
    10481049
    10491050!    ....  Calcul de pls , pression au milieu des couches ,en Pascals
    1050     IF (guide_plevs==1) THEN
     1051    IF (guide_plevs.EQ.1) THEN
    10511052!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    10521053        DO l=1,llm
     
    11271128    IF (guide_T) THEN
    11281129        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    1129         IF (guide_plevs==1) THEN
     1130        IF (guide_plevs.EQ.1) THEN
    11301131!$OMP DO
    11311132            DO l=1,nlevnc
     
    11371138                ENDDO
    11381139            ENDDO
    1139         ELSE IF (guide_plevs==2) THEN
     1140        ELSE IF (guide_plevs.EQ.2) THEN
    11401141!$OMP DO
    11411142            DO l=1,nlevnc
     
    11941195    IF (guide_Q) THEN
    11951196        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    1196         IF (guide_plevs==1) THEN
     1197        IF (guide_plevs.EQ.1) THEN
    11971198!$OMP DO
    11981199            DO l=1,nlevnc
     
    12041205                ENDDO
    12051206            ENDDO
    1206         ELSE IF (guide_plevs==2) THEN
     1207        ELSE IF (guide_plevs.EQ.2) THEN
    12071208!$OMP DO
    12081209            DO l=1,nlevnc
     
    12661267    IF (guide_u) THEN
    12671268        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    1268         IF (guide_plevs==1) THEN
     1269        IF (guide_plevs.EQ.1) THEN
    12691270!$OMP DO
    12701271            DO l=1,nlevnc
     
    12801281                ENDDO
    12811282            ENDDO
    1282         ELSE IF (guide_plevs==2) THEN
     1283        ELSE IF (guide_plevs.EQ.2) THEN
    12831284!$OMP DO
    12841285            DO l=1,nlevnc
     
    13341335    IF (guide_v) THEN
    13351336        ! Calcul des nouvelles valeurs des niveaux de pression du guidage
    1336         IF (guide_plevs==1) THEN
     1337        IF (guide_plevs.EQ.1) THEN
    13371338         CALL Register_Hallo_u(psnat1,1,1,2,2,1,Req)
    13381339         CALL Register_Hallo_u(psnat2,1,1,2,2,1,Req)
     
    13521353                ENDDO
    13531354            ENDDO
    1354         ELSE IF (guide_plevs==2) THEN
     1355        ELSE IF (guide_plevs.EQ.2) THEN
    13551356         CALL Register_Hallo_u(pnat1,llm,1,2,2,1,Req)
    13561357         CALL Register_Hallo_u(pnat2,llm,1,2,2,1,Req)
     
    14441445            do j=jjb,jje
    14451446                do i=1,pim
    1446                     if (typ==2) then
     1447                    if (typ.eq.2) then
    14471448                       zlat=rlatu(j)*180./pi
    14481449                       zlon=rlonu(i)*180./pi
    1449                     elseif (typ==1) then
     1450                    elseif (typ.eq.1) then
    14501451                       zlat=rlatu(j)*180./pi
    14511452                       zlon=rlonv(i)*180./pi
    1452                     elseif (typ==3) then
     1453                    elseif (typ.eq.3) then
    14531454                       zlat=rlatv(j)*180./pi
    14541455                       zlon=rlonv(i)*180./pi
     
    14891490            enddo
    14901491        enddo
    1491         IF (typ==2) THEN
     1492        IF (typ.EQ.2) THEN
    14921493            do j=1,jjp1
    14931494                do i=1,iim
     
    14971498            enddo
    14981499        ENDIF
    1499         IF (typ==3) THEN
     1500        IF (typ.EQ.3) THEN
    15001501            do j=1,jjm
    15011502                do i=1,iip1
     
    15191520            enddo
    15201521            ! Calcul de gamma
    1521             if (abs(grossismx-1.)<0.1.or.abs(grossismy-1.)<0.1) then
     1522            if (abs(grossismx-1.).lt.0.1.or.abs(grossismy-1.).lt.0.1) then
    15221523              write(*,*)trim(modname)//' ATTENTION modele peu zoome'
    15231524              write(*,*)trim(modname)//' ATTENTION on prend une constante de guidage cste'
     
    15261527              gamma=(dxdy_max-2.*dxdy_min)/(dxdy_max-dxdy_min)
    15271528              write(*,*)trim(modname)//' gamma=',gamma
    1528               if (gamma<1.e-5) then
     1529              if (gamma.lt.1.e-5) then
    15291530                write(*,*)trim(modname)//' gamma =',gamma,'<1e-5'
    15301531                CALL abort_gcm("guide_loc_mod","stopped",1)
     
    15401541        do j=jjb,jje
    15411542            do i=1,pim
    1542                 if (typ==1) then
     1543                if (typ.eq.1) then
    15431544                   dxdy_=dxdys(i,j)
    15441545                   zlat=rlatu(j)*180./pi
    1545                 elseif (typ==2) then
     1546                elseif (typ.eq.2) then
    15461547                   dxdy_=dxdyu(i,j)
    15471548                   zlat=rlatu(j)*180./pi
    1548                 elseif (typ==3) then
     1549                elseif (typ.eq.3) then
    15491550                   dxdy_=dxdyv(i,j)
    15501551                   zlat=rlatv(j)*180./pi
    15511552                endif
    1552                 if (abs(grossismx-1.)<0.1.or.abs(grossismy-1.)<0.1) then
     1553                if (abs(grossismx-1.).lt.0.1.or.abs(grossismy-1.).lt.0.1) then
    15531554                ! pour une grille reguliere, xi=xxx**0=1 -> alpha=alphamin
    15541555                    alpha(i,j)=alphamin
     
    15561557                    xi=((dxdy_max-dxdy_)/(dxdy_max-dxdy_min))**gamma
    15571558                    xi=min(xi,1.)
    1558                     if(lat_min_g<=zlat .and. zlat<=lat_max_g) then
     1559                    if(lat_min_g.le.zlat .and. zlat.le.lat_max_g) then
    15591560                        alpha(i,j)=xi*alphamin+(1.-xi)*alphamax
    15601561                    else
     
    15751576    IMPLICIT NONE
    15761577
     1578    include "netcdf.inc"
    15771579    include "dimensions.h"
    15781580    include "paramet.h"
     
    16001602         write(*,*),trim(modname)//': opening nudging files '
    16011603! Ap et Bp si Niveaux de pression hybrides
    1602          if (guide_plevs==1) then
     1604         if (guide_plevs.EQ.1) then
    16031605             write(*,*),trim(modname)//' Reading nudging on model levels'
    16041606             rcode = nf90_open('apbp.nc', nf90_nowrite, ncidpl)
    1605              IF (rcode/=NF_NOERR) THEN
     1607             IF (rcode.NE.NF_NOERR) THEN
    16061608              abort_message='Nudging: error -> no file apbp.nc'
    16071609              CALL abort_gcm(modname,abort_message,1)
    16081610             ENDIF
    16091611             rcode = nf90_inq_varid(ncidpl, 'AP', varidap)
    1610              IF (rcode/=NF_NOERR) THEN
     1612             IF (rcode.NE.NF_NOERR) THEN
    16111613              abort_message='Nudging: error -> no AP variable in file apbp.nc'
    16121614              CALL abort_gcm(modname,abort_message,1)
    16131615             ENDIF
    16141616             rcode = nf90_inq_varid(ncidpl, 'BP', varidbp)
    1615              IF (rcode/=NF_NOERR) THEN
     1617             IF (rcode.NE.NF_NOERR) THEN
    16161618              abort_message='Nudging: error -> no BP variable in file apbp.nc'
    16171619              CALL abort_gcm(modname,abort_message,1)
     
    16211623         
    16221624! Pression si guidage sur niveaux P variables
    1623          if (guide_plevs==2) then
     1625         if (guide_plevs.EQ.2) then
    16241626             rcode = nf90_open('P.nc', nf90_nowrite, ncidp)
    1625              IF (rcode/=NF_NOERR) THEN
     1627             IF (rcode.NE.NF_NOERR) THEN
    16261628              abort_message='Nudging: error -> no file P.nc'
    16271629              CALL abort_gcm(modname,abort_message,1)
    16281630             ENDIF
    16291631             rcode = nf90_inq_varid(ncidp, 'PRES', varidp)
    1630              IF (rcode/=NF_NOERR) THEN
     1632             IF (rcode.NE.NF_NOERR) THEN
    16311633              abort_message='Nudging: error -> no PRES variable in file P.nc'
    16321634              CALL abort_gcm(modname,abort_message,1)
    16331635             ENDIF
    16341636             write(*,*),trim(modname)//' ncidp,varidp',ncidp,varidp
    1635              if (ncidpl==-99) ncidpl=ncidp
     1637             if (ncidpl.eq.-99) ncidpl=ncidp
    16361638         endif
    16371639
     
    16391641         if (guide_u) then
    16401642             rcode = nf90_open('u.nc', nf90_nowrite, ncidu)
    1641              IF (rcode/=NF_NOERR) THEN
     1643             IF (rcode.NE.NF_NOERR) THEN
    16421644              abort_message='Nudging: error -> no file u.nc'
    16431645              CALL abort_gcm(modname,abort_message,1)
    16441646             ENDIF
    16451647             rcode = nf90_inq_varid(ncidu, 'UWND', varidu)
    1646              IF (rcode/=NF_NOERR) THEN
     1648             IF (rcode.NE.NF_NOERR) THEN
    16471649              abort_message='Nudging: error -> no UWND variable in file u.nc'
    16481650              CALL abort_gcm(modname,abort_message,1)
    16491651             ENDIF
    16501652             write(*,*),trim(modname)//' ncidu,varidu',ncidu,varidu
    1651              if (ncidpl==-99) ncidpl=ncidu
     1653             if (ncidpl.eq.-99) ncidpl=ncidu
    16521654
    16531655   
    16541656             status=NF90_INQ_DIMID(ncidu, "LONU", dimid)
    16551657             status=NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)
    1656              IF (lendim /= iip1) THEN
     1658             IF (lendim .NE. iip1) THEN
    16571659                abort_message='dimension LONU different from iip1 in u.nc'
    16581660                CALL abort_gcm(modname,abort_message,1)
     
    16611663             status=NF90_INQ_DIMID(ncidu, "LATU", dimid)
    16621664             status=NF90_INQUIRE_DIMENSION(ncidu,dimid,namedim,lendim)
    1663              IF (lendim /= jjp1) THEN
     1665             IF (lendim .NE. jjp1) THEN
    16641666                abort_message='dimension LATU different from jjp1 in u.nc'
    16651667                CALL abort_gcm(modname,abort_message,1)
     
    16711673         if (guide_v) then
    16721674             rcode = nf90_open('v.nc', nf90_nowrite, ncidv)
    1673              IF (rcode/=NF_NOERR) THEN
     1675             IF (rcode.NE.NF_NOERR) THEN
    16741676              abort_message='Nudging: error -> no file v.nc'
    16751677              CALL abort_gcm(modname,abort_message,1)
    16761678             ENDIF
    16771679             rcode = nf90_inq_varid(ncidv, 'VWND', varidv)
    1678              IF (rcode/=NF_NOERR) THEN
     1680             IF (rcode.NE.NF_NOERR) THEN
    16791681              abort_message='Nudging: error -> no VWND variable in file v.nc'
    16801682              CALL abort_gcm(modname,abort_message,1)
    16811683             ENDIF
    16821684             write(*,*),trim(modname)//' ncidv,varidv',ncidv,varidv
    1683              if (ncidpl==-99) ncidpl=ncidv
     1685             if (ncidpl.eq.-99) ncidpl=ncidv
    16841686             
    16851687             status=NF90_INQ_DIMID(ncidv, "LONV", dimid)
    16861688             status=NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)
    16871689             
    1688                 IF (lendim /= iip1) THEN
     1690                IF (lendim .NE. iip1) THEN
    16891691                abort_message='dimension LONV different from iip1 in v.nc'
    16901692                CALL abort_gcm(modname,abort_message,1)
     
    16941696             status=NF90_INQ_DIMID(ncidv, "LATV", dimid)
    16951697             status=NF90_INQUIRE_DIMENSION(ncidv,dimid,namedim,lendim)
    1696              IF (lendim /= jjm) THEN
     1698             IF (lendim .NE. jjm) THEN
    16971699                abort_message='dimension LATV different from jjm in v.nc'
    16981700                CALL abort_gcm(modname,abort_message,1)
     
    17041706         if (guide_T) then
    17051707             rcode = nf90_open('T.nc', nf90_nowrite, ncidt)
    1706              IF (rcode/=NF_NOERR) THEN
     1708             IF (rcode.NE.NF_NOERR) THEN
    17071709              abort_message='Nudging: error -> no file T.nc'
    17081710              CALL abort_gcm(modname,abort_message,1)
    17091711             ENDIF
    17101712             rcode = nf90_inq_varid(ncidt, 'AIR', varidt)
    1711              IF (rcode/=NF_NOERR) THEN
     1713             IF (rcode.NE.NF_NOERR) THEN
    17121714              abort_message='Nudging: error -> no AIR variable in file T.nc'
    17131715              CALL abort_gcm(modname,abort_message,1)
    17141716             ENDIF
    17151717             write(*,*),trim(modname)//' ncidT,varidT',ncidt,varidt
    1716              if (ncidpl==-99) ncidpl=ncidt
     1718             if (ncidpl.eq.-99) ncidpl=ncidt
    17171719
    17181720             status=NF90_INQ_DIMID(ncidt, "LONV", dimid)
    17191721             status=NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)
    1720              IF (lendim /= iip1) THEN
     1722             IF (lendim .NE. iip1) THEN
    17211723                abort_message='dimension LONV different from iip1 in T.nc'
    17221724                CALL abort_gcm(modname,abort_message,1)
     
    17251727             status=NF90_INQ_DIMID(ncidt, "LATU", dimid)
    17261728             status=NF90_INQUIRE_DIMENSION(ncidt,dimid,namedim,lendim)
    1727              IF (lendim /= jjp1) THEN
     1729             IF (lendim .NE. jjp1) THEN
    17281730                abort_message='dimension LATU different from jjp1 in T.nc'
    17291731                CALL abort_gcm(modname,abort_message,1)
     
    17351737         if (guide_Q) then
    17361738             rcode = nf90_open('hur.nc', nf90_nowrite, ncidQ)
    1737              IF (rcode/=NF_NOERR) THEN
     1739             IF (rcode.NE.NF_NOERR) THEN
    17381740              abort_message='Nudging: error -> no file hur.nc'
    17391741              CALL abort_gcm(modname,abort_message,1)
    17401742             ENDIF
    17411743             rcode = nf90_inq_varid(ncidQ, 'RH', varidQ)
    1742              IF (rcode/=NF_NOERR) THEN
     1744             IF (rcode.NE.NF_NOERR) THEN
    17431745              abort_message='Nudging: error -> no RH variable in file hur.nc'
    17441746              CALL abort_gcm(modname,abort_message,1)
    17451747             ENDIF
    17461748             write(*,*),trim(modname)//' ncidQ,varidQ',ncidQ,varidQ
    1747              if (ncidpl==-99) ncidpl=ncidQ
     1749             if (ncidpl.eq.-99) ncidpl=ncidQ
    17481750
    17491751
    17501752             status=NF90_INQ_DIMID(ncidQ, "LONV", dimid)
    17511753             status=NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)
    1752              IF (lendim /= iip1) THEN
     1754             IF (lendim .NE. iip1) THEN
    17531755                abort_message='dimension LONV different from iip1 in hur.nc'
    17541756                CALL abort_gcm(modname,abort_message,1)
     
    17571759             status=NF90_INQ_DIMID(ncidQ, "LATU", dimid)
    17581760             status=NF90_INQUIRE_DIMENSION(ncidQ,dimid,namedim,lendim)
    1759              IF (lendim /= jjp1) THEN
     1761             IF (lendim .NE. jjp1) THEN
    17601762                abort_message='dimension LATU different from jjp1 in hur.nc'
    17611763                CALL abort_gcm(modname,abort_message,1)
     
    17651767         endif
    17661768! Pression de surface
    1767          if ((guide_P).OR.(guide_plevs==1)) then
     1769         if ((guide_P).OR.(guide_plevs.EQ.1)) then
    17681770             rcode = nf90_open('ps.nc', nf90_nowrite, ncidps)
    1769              IF (rcode/=NF_NOERR) THEN
     1771             IF (rcode.NE.NF_NOERR) THEN
    17701772              abort_message='Nudging: error -> no file ps.nc'
    17711773              CALL abort_gcm(modname,abort_message,1)
    17721774             ENDIF
    17731775             rcode = nf90_inq_varid(ncidps, 'SP', varidps)
    1774              IF (rcode/=NF_NOERR) THEN
     1776             IF (rcode.NE.NF_NOERR) THEN
    17751777              abort_message='Nudging: error -> no SP variable in file ps.nc'
    17761778              CALL abort_gcm(modname,abort_message,1)
     
    17791781         endif
    17801782! Coordonnee verticale
    1781          if (guide_plevs==0) then
     1783         if (guide_plevs.EQ.0) then
    17821784              rcode = nf90_inq_varid(ncidpl, 'LEVEL', varidpl)
    1783               IF (rcode/=0) rcode = nf90_inq_varid(ncidpl, 'PRESSURE', varidpl)
     1785              IF (rcode.NE.0) rcode = nf90_inq_varid(ncidpl, 'PRESSURE', varidpl)
    17841786              write(*,*),trim(modname)//' ncidpl,varidpl',ncidpl,varidpl
    17851787         endif
    17861788! Coefs ap, bp pour calcul de la pression aux differents niveaux
    1787          IF (guide_plevs==1) THEN
    1788              status=nf90_put_var(ncidpl,varidap,apnc,[1],[nlevnc])
    1789              status=nf90_put_var(ncidpl,varidbp,bpnc,[1],[nlevnc])
    1790          ELSEIF (guide_plevs==0) THEN
    1791              status=nf90_put_var(ncidpl,varidpl,apnc,[1],[nlevnc])
     1789         IF (guide_plevs.EQ.1) THEN
     1790#ifdef NC_DOUBLE
     1791             status=NF_GET_VARA_DOUBLE(ncidpl,varidap,1,nlevnc,apnc)
     1792             status=NF_GET_VARA_DOUBLE(ncidpl,varidbp,1,nlevnc,bpnc)
     1793#else
     1794             status=NF_GET_VARA_REAL(ncidpl,varidap,1,nlevnc,apnc)
     1795             status=NF_GET_VARA_REAL(ncidpl,varidbp,1,nlevnc,bpnc)
     1796#endif
     1797         ELSEIF (guide_plevs.EQ.0) THEN
     1798#ifdef NC_DOUBLE
     1799             status=NF_GET_VARA_DOUBLE(ncidpl,varidpl,1,nlevnc,apnc)
     1800#else
     1801             status=NF_GET_VARA_REAL(ncidpl,varidpl,1,nlevnc,apnc)
     1802#endif
    17921803!FC Pour les corrections la pression est deja en Pascals on commente la ligne ci-dessous
    17931804             IF(convert_Pa) apnc=apnc*100.! conversion en Pascals
     
    18141825     IF (invert_y) start(2)=jjp1-jje_u+1
    18151826! Pression
    1816      if (guide_plevs==2) then
    1817          status=nf90_put_var(ncidp,varidp,pnat2,start,count)
     1827     if (guide_plevs.EQ.2) then
     1828#ifdef NC_DOUBLE
     1829         status=NF_GET_VARA_DOUBLE(ncidp,varidp,start,count,pnat2)
     1830#else
     1831         status=NF_GET_VARA_REAL(ncidp,varidp,start,count,pnat2)
     1832#endif
    18181833         IF (invert_y) THEN
    18191834!           PRINT*,"Invertion impossible actuellement"
     
    18251840!  Vent zonal
    18261841     if (guide_u) then
    1827          status=nf90_put_var(ncidu,varidu,unat2,start,count)
     1842#ifdef NC_DOUBLE
     1843         status=NF_GET_VARA_DOUBLE(ncidu,varidu,start,count,unat2)
     1844#else
     1845         status=NF_GET_VARA_REAL(ncidu,varidu,start,count,unat2)
     1846#endif
    18281847         IF (invert_y) THEN
    18291848!           PRINT*,"Invertion impossible actuellement"
     
    18371856!  Temperature
    18381857     if (guide_T) then
    1839          status=nf90_put_var(ncidt,varidt,tnat2,start,count)
     1858#ifdef NC_DOUBLE
     1859         status=NF_GET_VARA_DOUBLE(ncidt,varidt,start,count,tnat2)
     1860#else
     1861         status=NF_GET_VARA_REAL(ncidt,varidt,start,count,tnat2)
     1862#endif
    18401863         IF (invert_y) THEN
    18411864!           PRINT*,"Invertion impossible actuellement"
     
    18471870!  Humidite
    18481871     if (guide_Q) then
    1849          status=nf90_put_var(ncidQ,varidQ,qnat2,start,count)
     1872#ifdef NC_DOUBLE
     1873         status=NF_GET_VARA_DOUBLE(ncidQ,varidQ,start,count,qnat2)
     1874#else
     1875         status=NF_GET_VARA_REAL(ncidQ,varidQ,start,count,qnat2)
     1876#endif
    18501877         IF (invert_y) THEN
    18511878!           PRINT*,"Invertion impossible actuellement"
     
    18621889         IF (invert_y) start(2)=jjm-jje_v+1
    18631890
    1864          status=nf90_put_var(ncidv,varidv,vnat2,start,count)
     1891#ifdef NC_DOUBLE
     1892         status=NF_GET_VARA_DOUBLE(ncidv,varidv,start,count,vnat2)
     1893#else
     1894         status=NF_GET_VARA_REAL(ncidv,varidv,start,count,vnat2)
     1895#endif
    18651896         IF (invert_y) THEN
    18661897!           PRINT*,"Invertion impossible actuellement"
     
    18711902
    18721903!  Pression de surface
    1873      if ((guide_P).OR.(guide_plevs==1))  then
     1904     if ((guide_P).OR.(guide_plevs.EQ.1))  then
    18741905         start(2)=jjb_u
    18751906         start(3)=timestep
     
    18791910         count(4)=0
    18801911         IF (invert_y) start(2)=jjp1-jje_u+1
    1881          status=nf90_put_var(ncidps,varidps,psnat2,start,count)
     1912#ifdef NC_DOUBLE
     1913         status=NF_GET_VARA_DOUBLE(ncidps,varidps,start,count,psnat2)
     1914#else
     1915         status=NF_GET_VARA_REAL(ncidps,varidps,start,count,psnat2)
     1916#endif
    18821917         IF (invert_y) THEN
    18831918!           PRINT*,"Invertion impossible actuellement"
     
    18941929    IMPLICIT NONE
    18951930
     1931    include "netcdf.inc"
    18961932    include "dimensions.h"
    18971933    include "paramet.h"
     
    19221958         write(*,*)trim(modname)//' : opening nudging files '
    19231959! Ap et Bp si niveaux de pression hybrides
    1924          if (guide_plevs==1) then
     1960         if (guide_plevs.EQ.1) then
    19251961           write(*,*)trim(modname)//' Reading nudging on model levels'
    19261962           rcode = nf90_open('apbp.nc', nf90_nowrite, ncidpl)
    1927            IF (rcode/=NF_NOERR) THEN
     1963           IF (rcode.NE.NF_NOERR) THEN
    19281964             abort_message='Nudging: error -> no file apbp.nc'
    19291965           CALL abort_gcm(modname,abort_message,1)
    19301966           ENDIF
    19311967           rcode = nf90_inq_varid(ncidpl, 'AP', varidap)
    1932            IF (rcode/=NF_NOERR) THEN
     1968           IF (rcode.NE.NF_NOERR) THEN
    19331969             abort_message='Nudging: error -> no AP variable in file apbp.nc'
    19341970           CALL abort_gcm(modname,abort_message,1)
    19351971           ENDIF
    19361972           rcode = nf90_inq_varid(ncidpl, 'BP', varidbp)
    1937            IF (rcode/=NF_NOERR) THEN
     1973           IF (rcode.NE.NF_NOERR) THEN
    19381974             abort_message='Nudging: error -> no BP variable in file apbp.nc'
    19391975             CALL abort_gcm(modname,abort_message,1)
     
    19421978         endif
    19431979! Pression
    1944          if (guide_plevs==2) then
     1980         if (guide_plevs.EQ.2) then
    19451981           rcode = nf90_open('P.nc', nf90_nowrite, ncidp)
    1946            IF (rcode/=NF_NOERR) THEN
     1982           IF (rcode.NE.NF_NOERR) THEN
    19471983             abort_message='Nudging: error -> no file P.nc'
    19481984             CALL abort_gcm(modname,abort_message,1)
    19491985           ENDIF
    19501986           rcode = nf90_inq_varid(ncidp, 'PRES', varidp)
    1951            IF (rcode/=NF_NOERR) THEN
     1987           IF (rcode.NE.NF_NOERR) THEN
    19521988             abort_message='Nudging: error -> no PRES variable in file P.nc'
    19531989             CALL abort_gcm(modname,abort_message,1)
    19541990           ENDIF
    19551991           write(*,*)trim(modname)//' ncidp,varidp',ncidp,varidp
    1956            if (ncidpl==-99) ncidpl=ncidp
     1992           if (ncidpl.eq.-99) ncidpl=ncidp
    19571993         endif
    19581994! Vent zonal
    19591995         if (guide_u) then
    19601996           rcode = nf90_open('u.nc', nf90_nowrite, ncidu)
    1961            IF (rcode/=NF_NOERR) THEN
     1997           IF (rcode.NE.NF_NOERR) THEN
    19621998             abort_message='Nudging: error -> no file u.nc'
    19631999             CALL abort_gcm(modname,abort_message,1)
    19642000           ENDIF
    19652001           rcode = nf90_inq_varid(ncidu, 'UWND', varidu)
    1966            IF (rcode/=NF_NOERR) THEN
     2002           IF (rcode.NE.NF_NOERR) THEN
    19672003             abort_message='Nudging: error -> no UWND variable in file u.nc'
    19682004             CALL abort_gcm(modname,abort_message,1)
    19692005           ENDIF
    19702006           write(*,*)trim(modname)//' ncidu,varidu',ncidu,varidu
    1971            if (ncidpl==-99) ncidpl=ncidu
     2007           if (ncidpl.eq.-99) ncidpl=ncidu
    19722008         endif
    19732009
     
    19752011         if (guide_v) then
    19762012           rcode = nf90_open('v.nc', nf90_nowrite, ncidv)
    1977            IF (rcode/=NF_NOERR) THEN
     2013           IF (rcode.NE.NF_NOERR) THEN
    19782014             abort_message='Nudging: error -> no file v.nc'
    19792015             CALL abort_gcm(modname,abort_message,1)
    19802016           ENDIF
    19812017           rcode = nf90_inq_varid(ncidv, 'VWND', varidv)
    1982            IF (rcode/=NF_NOERR) THEN
     2018           IF (rcode.NE.NF_NOERR) THEN
    19832019             abort_message='Nudging: error -> no VWND variable in file v.nc'
    19842020             CALL abort_gcm(modname,abort_message,1)
    19852021           ENDIF
    19862022           write(*,*)trim(modname)//' ncidv,varidv',ncidv,varidv
    1987            if (ncidpl==-99) ncidpl=ncidv
     2023           if (ncidpl.eq.-99) ncidpl=ncidv
    19882024        endif
    19892025! Temperature
    19902026         if (guide_T) then
    19912027           rcode = nf90_open('T.nc', nf90_nowrite, ncidt)
    1992            IF (rcode/=NF_NOERR) THEN
     2028           IF (rcode.NE.NF_NOERR) THEN
    19932029             abort_message='Nudging: error -> no file T.nc'
    19942030             CALL abort_gcm(modname,abort_message,1)
    19952031           ENDIF
    19962032           rcode = nf90_inq_varid(ncidt, 'AIR', varidt)
    1997            IF (rcode/=NF_NOERR) THEN
     2033           IF (rcode.NE.NF_NOERR) THEN
    19982034             abort_message='Nudging: error -> no AIR variable in file T.nc'
    19992035             CALL abort_gcm(modname,abort_message,1)
    20002036           ENDIF
    20012037           write(*,*)trim(modname)//' ncidT,varidT',ncidt,varidt
    2002            if (ncidpl==-99) ncidpl=ncidt
     2038           if (ncidpl.eq.-99) ncidpl=ncidt
    20032039         endif
    20042040! Humidite
    20052041         if (guide_Q) then
    20062042           rcode = nf90_open('hur.nc', nf90_nowrite, ncidQ)
    2007            IF (rcode/=NF_NOERR) THEN
     2043           IF (rcode.NE.NF_NOERR) THEN
    20082044             abort_message='Nudging: error -> no file hur.nc'
    20092045             CALL abort_gcm(modname,abort_message,1)
    20102046           ENDIF
    20112047           rcode = nf90_inq_varid(ncidQ, 'RH', varidQ)
    2012            IF (rcode/=NF_NOERR) THEN
     2048           IF (rcode.NE.NF_NOERR) THEN
    20132049             abort_message='Nudging: error -> no RH,variable in file hur.nc'
    20142050             CALL abort_gcm(modname,abort_message,1)
    20152051           ENDIF
    20162052           write(*,*)trim(modname)//' ncidQ,varidQ',ncidQ,varidQ
    2017            if (ncidpl==-99) ncidpl=ncidQ
     2053           if (ncidpl.eq.-99) ncidpl=ncidQ
    20182054         endif
    20192055! Pression de surface
    2020          if ((guide_P).OR.(guide_plevs==1)) then
     2056         if ((guide_P).OR.(guide_plevs.EQ.1)) then
    20212057           rcode = nf90_open('ps.nc', nf90_nowrite, ncidps)
    2022            IF (rcode/=NF_NOERR) THEN
     2058           IF (rcode.NE.NF_NOERR) THEN
    20232059             abort_message='Nudging: error -> no file ps.nc'
    20242060             CALL abort_gcm(modname,abort_message,1)
    20252061           ENDIF
    20262062           rcode = nf90_inq_varid(ncidps, 'SP', varidps)
    2027            IF (rcode/=NF_NOERR) THEN
     2063           IF (rcode.NE.NF_NOERR) THEN
    20282064             abort_message='Nudging: error -> no SP variable in file ps.nc'
    20292065             CALL abort_gcm(modname,abort_message,1)
     
    20322068         endif
    20332069! Coordonnee verticale
    2034          if (guide_plevs==0) then
     2070         if (guide_plevs.EQ.0) then
    20352071           rcode = nf90_inq_varid(ncidpl, 'LEVEL', varidpl)
    2036            IF (rcode/=0) rcode = nf90_inq_varid(ncidpl, 'PRESSURE', varidpl)
     2072           IF (rcode.NE.0) rcode = nf90_inq_varid(ncidpl, 'PRESSURE', varidpl)
    20372073           write(*,*)trim(modname)//' ncidpl,varidpl',ncidpl,varidpl
    20382074         endif
    20392075! Coefs ap, bp pour calcul de la pression aux differents niveaux
    2040          if (guide_plevs==1) then
    2041              status=nf90_put_var(ncidpl,varidap,apnc,[1],[nlevnc])
    2042              status=nf90_put_var(ncidpl,varidbp,bpnc,[1],[nlevnc])
    2043          elseif (guide_plevs==0) THEN
    2044              status=nf90_put_var(ncidpl,varidpl,apnc,[1],[nlevnc])
     2076         if (guide_plevs.EQ.1) then
     2077#ifdef NC_DOUBLE
     2078             status=NF_GET_VARA_DOUBLE(ncidpl,varidap,1,nlevnc,apnc)
     2079             status=NF_GET_VARA_DOUBLE(ncidpl,varidbp,1,nlevnc,bpnc)
     2080#else
     2081             status=NF_GET_VARA_REAL(ncidpl,varidap,1,nlevnc,apnc)
     2082             status=NF_GET_VARA_REAL(ncidpl,varidbp,1,nlevnc,bpnc)
     2083#endif
     2084         elseif (guide_plevs.EQ.0) THEN
     2085#ifdef NC_DOUBLE
     2086             status=NF_GET_VARA_DOUBLE(ncidpl,varidpl,1,nlevnc,apnc)
     2087#else
     2088             status=NF_GET_VARA_REAL(ncidpl,varidpl,1,nlevnc,apnc)
     2089#endif
    20452090             apnc=apnc*100.! conversion en Pascals
    20462091             bpnc(:)=0.
     
    20662111     IF (invert_y) start(2)=jjp1-jje_u+1
    20672112!  Pression
    2068      if (guide_plevs==2) then
    2069          status=nf90_put_var(ncidp,varidp,zu,start,count)
     2113     if (guide_plevs.EQ.2) then
     2114#ifdef NC_DOUBLE
     2115         status=NF_GET_VARA_DOUBLE(ncidp,varidp,start,count,zu)
     2116#else
     2117         status=NF_GET_VARA_REAL(ncidp,varidp,start,count,zu)
     2118#endif
    20702119         DO i=1,iip1
    20712120             pnat2(i,:,:)=zu(:,:)
     
    20802129!  Vent zonal
    20812130     if (guide_u) then
    2082          status=nf90_put_var(ncidu,varidu,zu,start,count)
     2131#ifdef NC_DOUBLE
     2132         status=NF_GET_VARA_DOUBLE(ncidu,varidu,start,count,zu)
     2133#else
     2134         status=NF_GET_VARA_REAL(ncidu,varidu,start,count,zu)
     2135#endif
    20832136         DO i=1,iip1
    20842137             unat2(i,:,:)=zu(:,:)
     
    20952148!  Temperature
    20962149     if (guide_T) then
    2097          status=nf90_put_var(ncidt,varidt,zu,start,count)
     2150#ifdef NC_DOUBLE
     2151         status=NF_GET_VARA_DOUBLE(ncidt,varidt,start,count,zu)
     2152#else
     2153         status=NF_GET_VARA_REAL(ncidt,varidt,start,count,zu)
     2154#endif
    20982155         DO i=1,iip1
    20992156             tnat2(i,:,:)=zu(:,:)
     
    21092166!  Humidite
    21102167     if (guide_Q) then
    2111          status=nf90_put_var(ncidQ,varidQ,zu,start,count)
     2168#ifdef NC_DOUBLE
     2169         status=NF_GET_VARA_DOUBLE(ncidQ,varidQ,start,count,zu)
     2170#else
     2171         status=NF_GET_VARA_REAL(ncidQ,varidQ,start,count,zu)
     2172#endif
    21122173         DO i=1,iip1
    21132174             qnat2(i,:,:)=zu(:,:)
     
    21262187         count(2)=jjnb_v
    21272188         IF (invert_y) start(2)=jjm-jje_v+1
    2128          status=nf90_put_var(ncidv,varidv,zv,start,count)
     2189#ifdef NC_DOUBLE
     2190         status=NF_GET_VARA_DOUBLE(ncidv,varidv,start,count,zv)
     2191#else
     2192         status=NF_GET_VARA_REAL(ncidv,varidv,start,count,zv)
     2193#endif
    21292194         DO i=1,iip1
    21302195             vnat2(i,:,:)=zv(:,:)
     
    21402205
    21412206!  Pression de surface
    2142      if ((guide_P).OR.(guide_plevs==1))  then
     2207     if ((guide_P).OR.(guide_plevs.EQ.1))  then
    21432208         start(2)=jjb_u
    21442209         start(3)=timestep
     
    21482213         count(4)=0
    21492214         IF (invert_y) start(2)=jjp1-jje_u+1
    2150          status=nf90_put_var(ncidps,varidps,zu(:,1),start,count)
     2215#ifdef NC_DOUBLE
     2216         status=NF_GET_VARA_DOUBLE(ncidps,varidps,start,count,zu(:,1))
     2217#else
     2218         status=NF_GET_VARA_REAL(ncidps,varidps,start,count,zu(:,1))
     2219#endif
    21512220         DO i=1,iip1
    21522221             psnat2(i,:)=zu(:,1)
     
    21692238    USE comvert_mod, ONLY: presnivs
    21702239    use netcdf95, only: nf95_def_var, nf95_put_var
     2240    use netcdf, only: nf90_float
    21712241
    21722242    IMPLICIT NONE
     
    21742244    INCLUDE "dimensions.h"
    21752245    INCLUDE "paramet.h"
     2246    INCLUDE "netcdf.inc"
    21762247    INCLUDE "comgeom2.h"
    21772248   
     
    22252296   
    22262297!$OMP MASTER
    2227     IF (timestep==0) THEN
     2298    IF (timestep.EQ.0) THEN
    22282299! ----------------------------------------------
    22292300! initialisation fichier de sortie
     
    22572328
    22582329! Enregistrement des variables dimensions
    2259         ierr = nf90_put_var(nid,vid_lonu,rlonu*180./pi)
    2260         ierr = nf90_put_var(nid,vid_lonv,rlonv*180./pi)
    2261         ierr = nf90_put_var(nid,vid_latu,rlatu*180./pi)
    2262         ierr = nf90_put_var(nid,vid_latv,rlatv*180./pi)
    2263         ierr = nf90_put_var(nid,vid_lev,presnivs)
    2264         ierr = nf90_put_var(nid,vid_cu,cu)
    2265         ierr = nf90_put_var(nid,vid_cv,cv)
    2266         ierr = nf90_put_var(nid,vid_au,zu)
    2267         ierr = nf90_put_var(nid,vid_av,zv)
     2330#ifdef NC_DOUBLE
     2331        ierr = NF_PUT_VAR_DOUBLE(nid,vid_lonu,rlonu*180./pi)
     2332        ierr = NF_PUT_VAR_DOUBLE(nid,vid_lonv,rlonv*180./pi)
     2333        ierr = NF_PUT_VAR_DOUBLE(nid,vid_latu,rlatu*180./pi)
     2334        ierr = NF_PUT_VAR_DOUBLE(nid,vid_latv,rlatv*180./pi)
     2335        ierr = NF_PUT_VAR_DOUBLE(nid,vid_lev,presnivs)
     2336        ierr = NF_PUT_VAR_DOUBLE(nid,vid_cu,cu)
     2337        ierr = NF_PUT_VAR_DOUBLE(nid,vid_cv,cv)
     2338        ierr = NF_PUT_VAR_DOUBLE(nid,vid_au,zu)
     2339        ierr = NF_PUT_VAR_DOUBLE(nid,vid_av,zv)
     2340#else
     2341        ierr = NF_PUT_VAR_REAL(nid,vid_lonu,rlonu*180./pi)
     2342        ierr = NF_PUT_VAR_REAL(nid,vid_lonv,rlonv*180./pi)
     2343        ierr = NF_PUT_VAR_REAL(nid,vid_latu,rlatu*180./pi)
     2344        ierr = NF_PUT_VAR_REAL(nid,vid_latv,rlatv*180./pi)
     2345        ierr = NF_PUT_VAR_REAL(nid,vid_lev,presnivs)
     2346        ierr = NF_PUT_VAR_REAL(nid,vid_cu,cu)
     2347        ierr = NF_PUT_VAR_REAL(nid,vid_cv,cv)
     2348        ierr = NF_PUT_VAR_REAL(nid,vid_au,alpha_u)
     2349        ierr = NF_PUT_VAR_REAL(nid,vid_av,alpha_v)
     2350#endif
    22682351        call nf95_put_var(nid, varid_alpha_t, zt)
    22692352        call nf95_put_var(nid, varid_alpha_q, zq)
     
    23552438!$OMP MASTER
    23562439
    2357     ierr = nf90_put_var(nid,varid,field_glo,start,count)
     2440#ifdef NC_DOUBLE
     2441    ierr = NF_PUT_VARA_DOUBLE(nid,varid,start,count,field_glo)
     2442#else
     2443    ierr = NF_PUT_VARA_REAL(nid,varid,start,count,field_glo)
     2444#endif
     2445
    23582446    ierr = NF_CLOSE(nid)
    23592447
     
    23742462    do l=1,nl
    23752463        do i=2,iim-1
    2376             if(abs(x(i,l))>1.e10) then
     2464            if(abs(x(i,l)).gt.1.e10) then
    23772465               zz=0.5*(x(i-1,l)+x(i+1,l))
    23782466              print*,'correction ',i,l,x(i,l),zz
  • LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90

    r5075 r5084  
    2323  USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0
    2424  USE readTracFiles_mod, ONLY: addPhase
    25   use lmdz_netcdf, only : NF90_NOWRITE,NF90_OPEN,NF90_NOERR,NF90_INQ_VARID,NF90_CLOSE, NF90_GET_VAR
     25  use netcdf, only : NF90_NOWRITE,NF90_OPEN,NF90_NOERR,NF90_INQ_VARID
     26  use netcdf, only : NF90_CLOSE, NF90_GET_VAR
     27
    2628
    2729  !   Author:    Frederic Hourdin      original: 15/01/93
     
    153155     relief=0.
    154156     ierr = NF90_OPEN ('relief_in.nc', NF90_NOWRITE,nid_relief)
    155      if (ierr==NF90_NOERR) THEN
     157     if (ierr.EQ.NF90_NOERR) THEN
    156158         ierr=NF90_INQ_VARID(nid_relief,'RELIEF',varid)
    157159         if (ierr==NF90_NOERR) THEN
     
    255257        tetastrat=ttp*zsig**(-kappa)
    256258        tetapv=tetastrat
    257         IF ((ok_pv).AND.(zsig<0.1)) THEN
     259        IF ((ok_pv).AND.(zsig.LT.0.1)) THEN
    258260           tetapv=tetastrat*(zsig*10.)**(kappa*cpp*gam_pv/1000./g)
    259261        ENDIF
  • LMDZ6/trunk/libf/dyn3dmem/leapfrog_loc.F

    r5066 r5084  
    2828       USE allocate_field_mod
    2929       USE call_dissip_mod, ONLY : call_dissip
    30        USE lmdz_call_calfis, ONLY : call_calfis
     30       USE call_calfis_mod, ONLY : call_calfis
    3131       USE leapfrog_mod, ONLY : ucov,vcov,teta,ps,masse,phis,q,dq
    3232     & ,ucovm1,vcovm1,tetam1,massem1,psm1,p,pks,pk,pkf,flxw
  • LMDZ6/trunk/libf/dyn3dmem/leapfrog_mod.F90

    r5066 r5084  
    4444  USE integrd_mod,ONLY : integrd_allocate
    4545  USE caladvtrac_mod,ONLY : caladvtrac_allocate
    46   USE lmdz_call_calfis,ONLY : call_calfis_allocate
     46  USE call_calfis_mod,ONLY : call_calfis_allocate
    4747  USE call_dissip_mod, ONLY : call_dissip_allocate
    4848  IMPLICIT NONE
Note: See TracChangeset for help on using the changeset viewer.