Ignore:
Timestamp:
Jul 19, 2024, 6:40:44 PM (12 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/phylmd
Files:
1 deleted
62 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/Dust/condsurfc.F

    r5075 r5084  
    44     .                     lmt_omnat)
    55      USE dimphy
    6       USE lmdz_netcdf, ONLY: nf_close,nf_noerr,nf_inq_varid,nf_open,nf_nowrite,nf90_get_var
    76      IMPLICIT none
    87!
     
    1110!
    1211      INCLUDE "dimensions.h"
    13 
     12      INCLUDE "netcdf.inc"
     13     
    1414      REAL lmt_bcff(klon), lmt_bcbb(klon),lmt_bc_penner(klon)
    1515      REAL lmt_omff(klon), lmt_ombb(klon)
     
    2424      INTEGER debut(2),epais(2)
    2525!
    26       IF (jour<0 .OR. jour>(360-1)) THEN
    27          IF (jour>(360-1).AND.jour<=367) THEN
     26      IF (jour.LT.0 .OR. jour.GT.(360-1)) THEN
     27         IF (jour.GT.(360-1).AND.jour.LE.367) THEN
    2828           jour=360-1
    2929           print *,'JE: jour changed to jour= ',jour
     
    3535!
    3636      ierr = NF_OPEN ("limitcarbon.nc", NF_NOWRITE, nid1)
    37       if (ierr/=NF_NOERR) then
     37      if (ierr.ne.NF_NOERR) then
    3838        write(6,*)' Pb d''ouverture du fichier limitbc.nc'
    3939        write(6,*)' ierr = ', ierr
     
    4949!
    5050      ierr = NF_INQ_VARID (nid1, "BCFF", nvarid)
    51       ierr = nf90_get_var(nid1, nvarid, lmt_bcff, debut, epais)
     51!nhl #ifdef NC_DOUBLE
     52      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais, lmt_bcff)
    5253!      print *,'IERR = ',ierr
    5354!      print *,'NF_NOERR = ',NF_NOERR
    5455!      print *,'debut = ',debut
    5556!      print *,'epais = ',epais
    56       IF (ierr /= NF_NOERR) THEN
     57!nhl #else
     58!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais, lmt_bcff)
     59!nhl #endif
     60      IF (ierr .NE. NF_NOERR) THEN
    5761         PRINT*, 'Pb de lecture pour les sources BC'
    5862         CALL exit(1)
     
    6165!
    6266      ierr = NF_INQ_VARID (nid1, "BCBB", nvarid)
    63       ierr = nf90_get_var(nid1, nvarid, lmt_bcbb, debut, epais)
    64       IF (ierr /= NF_NOERR) THEN
     67!nhl #ifdef NC_DOUBLE
     68      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais, lmt_bcbb)
     69!nhl #else
     70!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais, lmt_bcbb)
     71!nhl #endif
     72      IF (ierr .NE. NF_NOERR) THEN
    6573         PRINT*, 'Pb de lecture pour les sources BC-biomass'
    6674         CALL exit(1)
     
    6977!
    7078      ierr = NF_INQ_VARID (nid1, "BCBL", nvarid)
    71       ierr = nf90_get_var(nid1, nvarid, lmt_bcbbl, debut, epais)
    72       IF (ierr /= NF_NOERR) THEN
     79!nhl #ifdef NC_DOUBLE
     80      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais, lmt_bcbbl)
     81!nhl #else
     82!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais, lmt_bcbbl)
     83!nhl #endif
     84      IF (ierr .NE. NF_NOERR) THEN
    7385         PRINT*, 'Pb de lecture pour les sources BC low'
    7486         CALL exit(1)
     
    7789!
    7890      ierr = NF_INQ_VARID (nid1, "BCBH", nvarid)
    79       ierr = nf90_get_var (nid1, nvarid, lmt_bcbbh, debut, epais)
    80       IF (ierr /= NF_NOERR) THEN
     91!nhl #ifdef NC_DOUBLE
     92      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais, lmt_bcbbh)
     93!nhl #else
     94!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais, lmt_bcbbh)
     95!nhl #endif
     96      IF (ierr .NE. NF_NOERR) THEN
    8197         PRINT*, 'Pb de lecture pour les sources BC high'
    8298         CALL exit(1)
     
    84100!
    85101      ierr = NF_INQ_VARID (nid1, "TERP", nvarid)
    86       ierr = nf90_get_var (nid1, nvarid, lmt_terp, debut, epais)
    87       IF (ierr /= NF_NOERR) THEN
     102!nhl #ifdef NC_DOUBLE
     103      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais, lmt_terp)
     104!nhl #else
     105!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais, lmt_terp)
     106!nhl #endif
     107      IF (ierr .NE. NF_NOERR) THEN
    88108         PRINT*, 'Pb de lecture pour les sources Terpene'
    89109         CALL exit(1)
     
    92112!
    93113      ierr = NF_INQ_VARID (nid1, "BC_penner", nvarid)
    94       ierr = nf90_get_var (nid1, nvarid, lmt_bc_penner, debut,  epais)
    95       IF (ierr /= NF_NOERR) THEN
     114!nhl #ifdef NC_DOUBLE
     115      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut,
     116     .       epais, lmt_bc_penner)
     117!nhl #else
     118!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais,
     119!nhl      .       lmt_bc_penner)
     120!nhl #endif
     121      IF (ierr .NE. NF_NOERR) THEN
    96122         PRINT*, 'Pb de lecture pour les sources BC Penner'
    97123         CALL exit(1)
     
    100126!
    101127      ierr = NF_INQ_VARID (nid1, "OMFF", nvarid)
    102       ierr = nf90_get_var (nid1, nvarid, lmt_omff, debut, epais)
    103       IF (ierr /= NF_NOERR) THEN
     128!nhl #ifdef NC_DOUBLE
     129      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais, lmt_omff)
     130!nhl #else
     131!nhl       ierr = NF_GET_VARA_REAL (nid1, nvarid, debut, epais, lmt_omff)
     132!nhl #endif
     133      IF (ierr .NE. NF_NOERR) THEN
    104134         PRINT*, 'Pb de lecture pour les sources om-ifossil'
    105135         CALL exit(1)
  • LMDZ6/trunk/libf/phylmd/Dust/condsurfc_new.F

    r5075 r5084  
    66      USE mod_phys_lmdz_para
    77      USE dimphy
    8       USE lmdz_netcdf, ONLY:nf90_get_var,nf_close,nf_noerr,nf_inq_varid,nf_open,nf_nowrite
    98      IMPLICIT none
    109c
     
    1312c
    1413      INCLUDE "dimensions.h"
    15 
     14      INCLUDE "netcdf.inc"
     15     
    1616      REAL lmt_bcff(klon), lmt_bcnff(klon), lmt_bcba(klon)
    1717      REAL lmt_omff(klon), lmt_omnff(klon), lmt_ombb(klon)
     
    3636c
    3737!      IF (jour.LT.0 .OR. jour.GT.(366-1)) THEN
    38       IF (jour<0 .OR. jour>366) THEN
     38      IF (jour.LT.0 .OR. jour.GT.366) THEN
    3939         PRINT*,'Le jour demande n est pas correcte:', jour
    4040         print *,'JE: FORCED TO CONTINUE (emissions have
     
    5858!
    5959      ierr = NF_OPEN ("carbon_emissions.nc", NF_NOWRITE, nid1)
    60       if (ierr/=NF_NOERR) then
     60      if (ierr.ne.NF_NOERR) then
    6161        write(6,*)' Pb d''ouverture du fichier limitbc.nc'
    6262        write(6,*)' ierr = ', ierr
     
    6767!
    6868      ierr = NF_INQ_VARID (nid1, "BCFF", nvarid)
    69       ierr = nf90_get_var (nid1, nvarid, lmt_bcff_glo, debut, epais)
    70       IF (ierr /= NF_NOERR) THEN
     69      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     70     .  lmt_bcff_glo)
     71      IF (ierr .NE. NF_NOERR) THEN
    7172         PRINT*, 'Pb de lecture pour les sources BC'
    7273         CALL exit(1)
     
    7879!
    7980      ierr = NF_INQ_VARID (nid1, "BCNFF", nvarid)
    80       ierr = nf90_get_var (nid1, nvarid, lmt_bcnff_glo, debut, epais)
    81       IF (ierr /= NF_NOERR) THEN
     81      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     82     .    lmt_bcnff_glo)
     83      IF (ierr .NE. NF_NOERR) THEN
    8284         PRINT*, 'Pb de lecture pour les sources BC'
    8385         CALL exit(1)
     
    8789!
    8890      ierr = NF_INQ_VARID (nid1, "BCBBL", nvarid)
    89       ierr = nf90_get_var (nid1, nvarid, lmt_bcbbl_glo, debut, epais)
    90       IF (ierr /= NF_NOERR) THEN
     91      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     92     .  lmt_bcbbl_glo)
     93      IF (ierr .NE. NF_NOERR) THEN
    9194         PRINT*, 'Pb de lecture pour les sources BC low'
    9295         CALL exit(1)
     
    9699!
    97100      ierr = NF_INQ_VARID (nid1, "BCBBH", nvarid)
    98       ierr = nf90_get_var (nid1, nvarid, lmt_bcbbh_glo, debut, epais)
    99       IF (ierr /= NF_NOERR) THEN
     101      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     102     .      lmt_bcbbh_glo)
     103      IF (ierr .NE. NF_NOERR) THEN
    100104         PRINT*, 'Pb de lecture pour les sources BC high'
    101105         CALL exit(1)
     
    105109!
    106110      ierr = NF_INQ_VARID (nid1, "BCBA", nvarid)
    107       ierr = nf90_get_var (nid1, nvarid, lmt_bcba_glo, debut, epais)
    108       IF (ierr /= NF_NOERR) THEN
     111      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     112     .   lmt_bcba_glo)
     113      IF (ierr .NE. NF_NOERR) THEN
    109114         PRINT*, 'Pb de lecture pour les sources BC'
    110115         CALL exit(1)
     
    120125!
    121126      ierr = NF_INQ_VARID (nid1, "OMFF", nvarid)
    122       ierr = nf90_get_var (nid1, nvarid, lmt_omff_glo, debut, epais)
    123       IF (ierr /= NF_NOERR) THEN
     127      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     128     .  lmt_omff_glo)
     129      IF (ierr .NE. NF_NOERR) THEN
    124130         PRINT*, 'Pb de lecture pour les sources OM'
    125131         CALL exit(1)
     
    129135!
    130136      ierr = NF_INQ_VARID (nid1, "OMNFF", nvarid)
    131       ierr = nf90_get_var (nid1, nvarid, lmt_omnff_glo, debut, epais)
    132       IF (ierr /= NF_NOERR) THEN
     137      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     138     .   lmt_omnff_glo)
     139      IF (ierr .NE. NF_NOERR) THEN
    133140         PRINT*, 'Pb de lecture pour les sources OM'
    134141         CALL exit(1)
     
    138145!
    139146      ierr = NF_INQ_VARID (nid1, "OMBBL", nvarid)
    140       ierr = nf90_get_var (nid1, nvarid, lmt_ombbl_glo, debut, epais)
    141       IF (ierr /= NF_NOERR) THEN
     147      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     148     .  lmt_ombbl_glo)
     149      IF (ierr .NE. NF_NOERR) THEN
    142150         PRINT*, 'Pb de lecture pour les sources OM low'
    143151         CALL exit(1)
     
    147155!
    148156      ierr = NF_INQ_VARID (nid1, "OMBBH", nvarid)
    149       ierr = nf90_get_var (nid1, nvarid, lmt_ombbh_glo, debut, epais)
    150       IF (ierr /= NF_NOERR) THEN
     157      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     158     .  lmt_ombbh_glo)
     159      IF (ierr .NE. NF_NOERR) THEN
    151160         PRINT*, 'Pb de lecture pour les sources OM high'
    152161         CALL exit(1)
     
    156165!
    157166      ierr = NF_INQ_VARID (nid1, "OMBA", nvarid)
    158       ierr = nf90_get_var (nid1, nvarid, lmt_omba_glo, debut, epais)
    159       IF (ierr /= NF_NOERR) THEN
     167      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     168     .   lmt_omba_glo)
     169      IF (ierr .NE. NF_NOERR) THEN
    160170         PRINT*, 'Pb de lecture pour les sources OM ship'
    161171         CALL exit(1)
     
    165175!
    166176      ierr = NF_INQ_VARID (nid1, "TERP", nvarid)
    167       ierr = nf90_get_var (nid1, nvarid, lmt_terp_glo, debut, epais)
    168       IF (ierr /= NF_NOERR) THEN
     177      ierr = NF_GET_VARA_DOUBLE (nid1, nvarid, debut, epais,
     178     .  lmt_terp_glo)
     179      IF (ierr .NE. NF_NOERR) THEN
    169180         PRINT*, 'Pb de lecture pour les sources Terpene'
    170181         CALL exit(1)
  • LMDZ6/trunk/libf/phylmd/Dust/condsurfs.F

    r5075 r5084  
    44     .                     lmt_dmsbio, lmt_h2sbio, lmt_dms, lmt_dmsconc)
    55       USE dimphy
    6        USE lmdz_netcdf, ONLY:nf_close,nf_noerr,nf_inq_varid,nf_open,nf_nowrite,nf90_get_var
    76      IMPLICIT none
    87c
     
    1110c
    1211      INCLUDE "dimensions.h"
     12      INCLUDE "netcdf.inc"
    1313c
    1414      REAL lmt_so2h(klon), lmt_so2b(klon), lmt_so2bb(klon)
     
    2424      INTEGER debut(2),epais(2)
    2525c
    26       IF (jour<0 .OR. jour>(360-1)) THEN
    27          IF ((jour>(360-1)) .AND. (jour<=367)) THEN
     26      IF (jour.LT.0 .OR. jour.GT.(360-1)) THEN
     27         IF ((jour.GT.(360-1)) .AND. (jour.LE.367)) THEN
    2828           jour=360-1
    2929           print *,'JE: jour changed to jour= ',jour
     
    3535c
    3636      ierr = NF_OPEN ("limitsoufre.nc", NF_NOWRITE, nid)
    37       if (ierr/=NF_NOERR) then
     37      if (ierr.ne.NF_NOERR) then
    3838        write(6,*)' Pb d''ouverture du fichier limitsoufre.nc'
    3939        write(6,*)' ierr = ', ierr
     
    4848c
    4949      ierr = NF_INQ_VARID (nid, "VOLC", nvarid)
    50       ierr = nf90_get_var(nid, nvarid, lmt_so2volc, debut, epais)
    51       IF (ierr /= NF_NOERR) THEN
     50cnhl #ifdef NC_DOUBLE
     51      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2volc)
     52cnhl #else
     53cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2volc)
     54cnhl #endif
     55      IF (ierr .NE. NF_NOERR) THEN
    5256         PRINT*, 'Pb de lecture pour les sources so2 volcan'
    5357         CALL exit(1)
     
    5559c
    5660      ierr = NF_INQ_VARID (nid, "ALTI", nvarid)
    57       ierr = nf90_get_var(nid, nvarid, lmt_altvolc, debut, epais)
    58       IF (ierr /= NF_NOERR) THEN
     61cnhl #ifdef NC_DOUBLE
     62      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_altvolc)
     63cnhl #else
     64cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_altvolc)
     65cnhl #endif
     66      IF (ierr .NE. NF_NOERR) THEN
    5967         PRINT*, 'Pb de lecture pour les altitudes volcan'
    6068         CALL exit(1)
     
    6472c
    6573      ierr = NF_INQ_VARID (nid, "SO2ED95L", nvarid)
    66       ierr = nf90_get_var(nid, nvarid, lmt_so2b, debut, epais)
    67       IF (ierr /= NF_NOERR) THEN
     74cnhl #ifdef NC_DOUBLE
     75      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2b)
     76cnhl #else
     77cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2b)
     78cnhl #endif
     79      IF (ierr .NE. NF_NOERR) THEN
    6880         PRINT*, 'Pb de lecture pour les sources so2 edgar low'
    6981         CALL exit(1)
     
    7183c
    7284      ierr = NF_INQ_VARID (nid, "SO2ED95H", nvarid)
    73       ierr = nf90_get_var(nid, nvarid, lmt_so2h, debut, epais)
    74       IF (ierr /= NF_NOERR) THEN
     85cnhl #ifdef NC_DOUBLE
     86      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2h)
     87cnhl #else
     88cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2h)
     89cnhl #endif
     90      IF (ierr .NE. NF_NOERR) THEN
    7591         PRINT*, 'Pb de lecture pour les sources so2 edgar high'
    7692         CALL exit(1)
     
    8096c
    8197      ierr = NF_INQ_VARID (nid, "SO2H", nvarid)
    82       ierr = nf90_get_var(nid, nvarid, lmt_so2h, debut, epais)
    83       IF (ierr /= NF_NOERR) THEN
     98cnhl #ifdef NC_DOUBLE
     99      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2h)
     100cnhl #else
     101cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2h)
     102cnhl #endif
     103      IF (ierr .NE. NF_NOERR) THEN
    84104         PRINT*, 'Pb de lecture pour les sources so2 haut'
    85105         CALL exit(1)
     
    87107c
    88108      ierr = NF_INQ_VARID (nid, "SO2B", nvarid)
    89       ierr = nf90_get_var(nid, nvarid, lmt_so2b, debut, epais)
    90       IF (ierr /= NF_NOERR) THEN
     109cnhl #ifdef NC_DOUBLE
     110      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2b)
     111cnhl #else
     112cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2b)
     113cnhl #endif
     114      IF (ierr .NE. NF_NOERR) THEN
    91115         PRINT*, 'Pb de lecture pour les sources so2 bas'
    92116         CALL exit(1)
     
    96120c
    97121      ierr = NF_INQ_VARID (nid, "SO2BB", nvarid)
    98       ierr = nf90_get_var(nid, nvarid, lmt_so2bb, debut, epais)
    99       IF (ierr /= NF_NOERR) THEN
     122cnhl #ifdef NC_DOUBLE
     123      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2bb)
     124cnhl #else
     125cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2bb)
     126cnhl #endif
     127      IF (ierr .NE. NF_NOERR) THEN
    100128         PRINT*, 'Pb de lecture pour les sources so2 bb'
    101129         CALL exit(1)
     
    103131c
    104132      ierr = NF_INQ_VARID (nid, "SO2BA", nvarid)
    105       ierr = nf90_get_var(nid, nvarid, lmt_so2ba, debut, epais)
    106       IF (ierr /= NF_NOERR) THEN
     133cnhl #ifdef NC_DOUBLE
     134      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_so2ba)
     135cnhl #else
     136cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_so2ba)
     137cnhl #endif
     138      IF (ierr .NE. NF_NOERR) THEN
    107139         PRINT*, 'Pb de lecture pour les sources so2 bateau'
    108140         CALL exit(1)
     
    110142c
    111143      ierr = NF_INQ_VARID (nid, "DMSB", nvarid)
    112       ierr = nf90_get_var(nid, nvarid, lmt_dmsbio, debut, epais)
    113       IF (ierr /= NF_NOERR) THEN
     144cnhl #ifdef NC_DOUBLE
     145      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_dmsbio)
     146cnhl #else
     147cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsbio)
     148cnhl #endif
     149      IF (ierr .NE. NF_NOERR) THEN
    114150         PRINT*, 'Pb de lecture pour les sources dms bio'
    115151         CALL exit(1)
     
    117153c
    118154      ierr = NF_INQ_VARID (nid, "H2SB", nvarid)
    119       ierr = nf90_get_var(nid, nvarid, lmt_h2sbio, debut, epais)
    120       IF (ierr /= NF_NOERR) THEN
     155cnhl #ifdef NC_DOUBLE
     156      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_h2sbio)
     157cnhl #else
     158cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_h2sbio)
     159cnhl #endif
     160      IF (ierr .NE. NF_NOERR) THEN
    121161         PRINT*, 'Pb de lecture pour les sources h2s bio'
    122162         CALL exit(1)
    123163      ENDIF
    124164c
    125       IF (flag_dms==1) THEN
     165      IF (flag_dms.EQ.1) THEN
    126166c
    127167      ierr = NF_INQ_VARID (nid, "DMSL", nvarid)
    128       ierr = nf90_get_var(nid, nvarid, lmt_dms, debut, epais)
    129       IF (ierr /= NF_NOERR) THEN
     168cnhl #ifdef NC_DOUBLE
     169      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_dms)
     170cnhl #else
     171cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dms)
     172cnhl #endif
     173      IF (ierr .NE. NF_NOERR) THEN
    130174         PRINT*, 'Pb de lecture pour les sources dms liss'
    131175         CALL exit(1)
    132176      ENDIF
    133177c
    134       ELSEIF (flag_dms==2) THEN
     178      ELSEIF (flag_dms.EQ.2) THEN
    135179c
    136180      ierr = NF_INQ_VARID (nid, "DMSW", nvarid)
    137       ierr = nf90_get_var(nid, nvarid, lmt_dms, debut, epais)
    138       IF (ierr /= NF_NOERR) THEN
     181cnhl #ifdef NC_DOUBLE
     182      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais, lmt_dms)
     183cnhl #else
     184cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dms)
     185cnhl #endif
     186      IF (ierr .NE. NF_NOERR) THEN
    139187         PRINT*, 'Pb de lecture pour les sources dms wann'
    140188         CALL exit(1)
    141189      ENDIF
    142190c
    143       ELSEIF (flag_dms==3) THEN
     191      ELSEIF (flag_dms.EQ.3) THEN
    144192c
    145193      ierr = NF_INQ_VARID (nid, "DMSC1", nvarid)
    146       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    147       IF (ierr /= NF_NOERR) THEN
     194cnhl #ifdef NC_DOUBLE
     195      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     196cnhl #else
     197cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     198cnhl #endif
     199      IF (ierr .NE. NF_NOERR) THEN
    148200         PRINT*, 'Pb de lecture pour les sources dmsconc old'
    149201         CALL exit(1)
    150202      ENDIF
    151203c
    152       ELSEIF (flag_dms==4) THEN
     204      ELSEIF (flag_dms.EQ.4) THEN
    153205c
    154206      ierr = NF_INQ_VARID (nid, "DMSC2", nvarid)
    155       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    156       IF (ierr /= NF_NOERR) THEN
     207cnhl #ifdef NC_DOUBLE
     208      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     209cnhl #else
     210cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     211cnhl #endif
     212      IF (ierr .NE. NF_NOERR) THEN
    157213         PRINT*, 'Pb de lecture pour les sources dms conc 2'
    158214         CALL exit(1)
    159215      ENDIF
    160216c
    161       ELSEIF (flag_dms==5) THEN
     217      ELSEIF (flag_dms.EQ.5) THEN
    162218c
    163219      ierr = NF_INQ_VARID (nid, "DMSC3", nvarid)
    164       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    165       IF (ierr /= NF_NOERR) THEN
     220cnhl #ifdef NC_DOUBLE
     221      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     222cnhl #else
     223cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     224cnhl #endif
     225      IF (ierr .NE. NF_NOERR) THEN
    166226         PRINT*, 'Pb de lecture pour les sources dms conc 3'
    167227         CALL exit(1)
    168228      ENDIF
    169229c
    170       ELSEIF (flag_dms==6) THEN
     230      ELSEIF (flag_dms.EQ.6) THEN
    171231c
    172232      ierr = NF_INQ_VARID (nid, "DMSC4", nvarid)
    173       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    174       IF (ierr /= NF_NOERR) THEN
     233cnhl #ifdef NC_DOUBLE
     234      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     235cnhl #else
     236cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     237cnhl #endif
     238      IF (ierr .NE. NF_NOERR) THEN
    175239         PRINT*, 'Pb de lecture pour les sources dms conc 4'
    176240         CALL exit(1)
    177241      ENDIF
    178242c
    179       ELSEIF (flag_dms==7) THEN
     243      ELSEIF (flag_dms.EQ.7) THEN
    180244c
    181245      ierr = NF_INQ_VARID (nid, "DMSC5", nvarid)
    182       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    183       IF (ierr /= NF_NOERR) THEN
     246cnhl #ifdef NC_DOUBLE
     247      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     248cnhl #else
     249cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     250cnhl #endif
     251      IF (ierr .NE. NF_NOERR) THEN
    184252         PRINT*, 'Pb de lecture pour les sources dms conc 5'
    185253         CALL exit(1)
    186254      ENDIF
    187255c
    188       ELSEIF (flag_dms==8) THEN
     256      ELSEIF (flag_dms.EQ.8) THEN
    189257c
    190258      ierr = NF_INQ_VARID (nid, "DMSC6", nvarid)
    191       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    192       IF (ierr /= NF_NOERR) THEN
     259cnhl #ifdef NC_DOUBLE
     260      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     261cnhl #else
     262cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     263cnhl #endif
     264      IF (ierr .NE. NF_NOERR) THEN
    193265         PRINT*, 'Pb de lecture pour les sources dms conc 6'
    194266         CALL exit(1)
    195267      ENDIF
    196268c
    197       ELSEIF (flag_dms==9) THEN
     269      ELSEIF (flag_dms.EQ.9) THEN
    198270c
    199271      ierr = NF_INQ_VARID (nid, "DMSC7", nvarid)
    200       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    201       IF (ierr /= NF_NOERR) THEN
     272cnhl #ifdef NC_DOUBLE
     273      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     274cnhl #else
     275cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     276cnhl #endif
     277      IF (ierr .NE. NF_NOERR) THEN
    202278         PRINT*, 'Pb de lecture pour les sources dms conc 7'
    203279         CALL exit(1)
    204280      ENDIF
    205281c
    206       ELSEIF (flag_dms==10) THEN
     282      ELSEIF (flag_dms.EQ.10) THEN
    207283c
    208284      ierr = NF_INQ_VARID (nid, "DMSC8", nvarid)
    209       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc, debut, epais)
    210       IF (ierr /= NF_NOERR) THEN
     285cnhl #ifdef NC_DOUBLE
     286      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_dmsconc)
     287cnhl #else
     288cnhl       ierr = NF_GET_VARA_REAL (nid, nvarid, debut, epais, lmt_dmsconc)
     289cnhl #endif
     290      IF (ierr .NE. NF_NOERR) THEN
    211291         PRINT*, 'Pb de lecture pour les sources dms conc 8'
    212292         CALL exit(1)
     
    222302      ierr = NF_CLOSE(nid)
    223303c
    224       IF (flag_dms<=2) THEN
     304      IF (flag_dms.LE.2) THEN
    225305      DO i=1, klon
    226306         lmt_dmsconc(i)=0.0
  • LMDZ6/trunk/libf/phylmd/Dust/condsurfs_new.F

    r5075 r5084  
    99      USE mod_phys_lmdz_para
    1010      USE dimphy
    11       USE lmdz_netcdf, ONLY: nf90_get_var,nf_inq_varid,nf_close,nf_noerr,nf_open,nf_nowrite
    1211      IMPLICIT none
    1312c
     
    1615c
    1716      INCLUDE "dimensions.h"
     17      INCLUDE "netcdf.inc"
    1818c
    1919      REAL lmt_so2b(klon), lmt_so2h(klon), lmt_so2nff(klon)
     
    4040      INTEGER debut(2),epais(2)
    4141c
    42       IF (jour<0 .OR. jour>(366-1)) THEN
     42      IF (jour.LT.0 .OR. jour.GT.(366-1)) THEN
    4343         PRINT*,'Le jour demande n est pas correcte:', jour
    4444         print *,'JE: FORCED TO CONTINUE (emissions have
     
    6262!
    6363      ierr = NF_OPEN ("sulphur_emissions_antro.nc", NF_NOWRITE, nid)
    64       if (ierr/=NF_NOERR) then
     64      if (ierr.ne.NF_NOERR) then
    6565        write(6,*)' Pb d''ouverture du fichier sulphur_emissions_antro'
    6666        write(6,*)' ierr = ', ierr
     
    7272!
    7373      ierr = NF_INQ_VARID (nid, "SO2FF_LOW", nvarid)
    74       ierr = nf90_get_var(nid, nvarid, lmt_so2b_glo, debut, epais)
    75       IF (ierr /= NF_NOERR) THEN
     74      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,lmt_so2b_glo)
     75      IF (ierr .NE. NF_NOERR) THEN
    7676        PRINT*, 'Pb de lecture pour les sources so2 low'
    7777        print *,'JE klon, jour, debut ,epais ',klon_glo,jour,debut,epais
     
    8484!
    8585      ierr = NF_INQ_VARID (nid, "SO2FF_HIGH", nvarid)
    86       ierr = nf90_get_var(nid, nvarid, lmt_so2h_glo, debut, epais)
    87       IF (ierr /= NF_NOERR) THEN
     86      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,lmt_so2h_glo)
     87      IF (ierr .NE. NF_NOERR) THEN
    8888        PRINT*, 'Pb de lecture pour les sources so2 high'
    8989        CALL exit(1)
     
    9393!
    9494      ierr = NF_INQ_VARID (nid, "SO2BBH", nvarid)
    95       ierr = nf90_get_var(nid, nvarid,  lmt_so2bb_h_glo, debut, epais)
    96       IF (ierr /= NF_NOERR) THEN
     95      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,
     96     . epais, lmt_so2bb_h_glo)
     97      IF (ierr .NE. NF_NOERR) THEN
    9798        PRINT*, 'Pb de lecture pour les sources so2 BB high'
    9899        CALL exit(1)
     
    102103!
    103104      ierr = NF_INQ_VARID (nid, "SO2BBL", nvarid)
    104       ierr = nf90_get_var(nid, nvarid,  lmt_so2bb_l_glo, debut, epais)
    105       IF (ierr /= NF_NOERR) THEN
     105      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,
     106     . epais, lmt_so2bb_l_glo)
     107      IF (ierr .NE. NF_NOERR) THEN
    106108        PRINT*, 'Pb de lecture pour les sources so2 BB low'
    107109        CALL exit(1)
     
    111113!
    112114      ierr = NF_INQ_VARID (nid, "SO2BA", nvarid)
    113       ierr = nf90_get_var(nid, nvarid, lmt_so2ba_glo, debut, epais)
    114       IF (ierr /= NF_NOERR) THEN
     115      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut,epais,lmt_so2ba_glo)
     116      IF (ierr .NE. NF_NOERR) THEN
    115117        PRINT*, 'Pb de lecture pour les sources so2 ship'
    116118        CALL exit(1)
     
    120122!
    121123      ierr = NF_INQ_VARID (nid, "SO2NFF", nvarid)
    122       ierr = nf90_get_var(nid, nvarid, lmt_so2nff_glo, debut, epais)
    123       IF (ierr /= NF_NOERR) THEN
     124      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,
     125     .  lmt_so2nff_glo)
     126      IF (ierr .NE. NF_NOERR) THEN
    124127        PRINT*, 'Pb de lecture pour les sources so2 non FF'
    125128        CALL exit(1)
     
    132135!=======================================================================
    133136      ierr = NF_OPEN ("sulphur_emissions_nat.nc", NF_NOWRITE, nid)
    134       if (ierr/=NF_NOERR) then
     137      if (ierr.ne.NF_NOERR) then
    135138        write(6,*)' Pb d''ouverture du fichier sulphur_emissions_nat'
    136139        write(6,*)' ierr = ', ierr
     
    141144c
    142145      ierr = NF_INQ_VARID (nid, "DMSB", nvarid)
    143       ierr = nf90_get_var(nid, nvarid, lmt_dmsbio_glo, debut, epais)
    144       IF (ierr /= NF_NOERR) THEN
     146      ierr = NF_GET_VARA_DOUBLE (nid, nvarid,debut,epais,lmt_dmsbio_glo)
     147      IF (ierr .NE. NF_NOERR) THEN
    145148         PRINT*, 'Pb de lecture pour les sources dms bio'
    146149         CALL exit(1)
     
    150153c
    151154      ierr = NF_INQ_VARID (nid, "H2SB", nvarid)
    152       ierr = nf90_get_var(nid, nvarid, lmt_h2sbio_glo, debut, epais)
    153       IF (ierr /= NF_NOERR) THEN
     155      ierr = NF_GET_VARA_DOUBLE (nid, nvarid,debut,epais,lmt_h2sbio_glo)
     156      IF (ierr .NE. NF_NOERR) THEN
    154157         PRINT*, 'Pb de lecture pour les sources h2s bio'
    155158         CALL exit(1)
     
    158161c Ocean surface concentration of dms (emissions are computed later)
    159162c
    160       IF (flag_dms==4) THEN
     163      IF (flag_dms.EQ.4) THEN
    161164c
    162165      ierr = NF_INQ_VARID (nid, "DMSC2", nvarid)
    163       ierr = nf90_get_var(nid, nvarid, lmt_dmsconc_glo, debut, epais)
    164       IF (ierr /= NF_NOERR) THEN
     166      ierr = NF_GET_VARA_DOUBLE (nid,nvarid,debut,epais,lmt_dmsconc_glo)
     167      IF (ierr .NE. NF_NOERR) THEN
    165168         PRINT*, 'Pb de lecture pour les sources dms conc 2'
    166169         CALL exit(1)
     
    187190      print *,' Jour = ',jour
    188191      ierr = NF_OPEN ("sulphur_emissions_volc.nc", NF_NOWRITE, nid)
    189       if (ierr/=NF_NOERR) then
     192      if (ierr.ne.NF_NOERR) then
    190193        write(6,*)' Pb d''ouverture du fichier sulphur_emissions_volc'
    191194        write(6,*)' ierr = ', ierr
     
    197200!      ierr = NF_INQ_VARID (nid, "VOLC", nvarid)
    198201      ierr = NF_INQ_VARID (nid, "flx_volc_cont", nvarid)
    199       ierr = nf90_get_var(nid, nvarid, lmt_so2volc_cont_glo, debut, epais)
    200       IF (ierr /= NF_NOERR) THEN
     202      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,
     203     .                           lmt_so2volc_cont_glo)
     204      IF (ierr .NE. NF_NOERR) THEN
    201205         PRINT*, 'Pb de lecture pour les sources so2 volcan (cont)'
    202206         CALL exit(1)
     
    210214!      ierr = NF_INQ_VARID (nid, "ALTI", nvarid)
    211215      ierr = NF_INQ_VARID (nid, "flx_volc_altcont", nvarid)
    212       ierr = nf90_get_var(nid, nvarid, lmt_altvolc_cont_glo, debut, epais)
    213       IF (ierr /= NF_NOERR) THEN
     216      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,
     217     .                           lmt_altvolc_cont_glo)
     218      IF (ierr .NE. NF_NOERR) THEN
    214219         PRINT*, 'Pb de lecture pour les altitudes volcan (cont)'
    215220         CALL exit(1)
     
    219224c
    220225      ierr = NF_INQ_VARID (nid, "flx_volc_expl", nvarid)
    221       ierr = nf90_get_var(nid, nvarid, lmt_so2volc_expl_glo, debut, epais)
    222       IF (ierr /= NF_NOERR) THEN
     226      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,
     227     .                           lmt_so2volc_expl_glo)
     228      IF (ierr .NE. NF_NOERR) THEN
    223229         PRINT*, 'Pb de lecture pour les sources so2 volcan (expl)'
    224230         CALL exit(1)
     
    231237c
    232238      ierr = NF_INQ_VARID (nid, "flx_volc_altexpl", nvarid)
    233       ierr = nf90_get_var(nid, nvarid, lmt_altvolc_expl_glo, debut, epais)
    234       IF (ierr /= NF_NOERR) THEN
     239      ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debut, epais,
     240     .                           lmt_altvolc_expl_glo)
     241      IF (ierr .NE. NF_NOERR) THEN
    235242         PRINT*, 'Pb de lecture pour les altitudes volcan'
    236243         CALL exit(1)
  • LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r5075 r5084  
    390390    USE ioipsl, ONLY: histend, histsync
    391391    USE iophy, ONLY: set_itau_iophy, histwrite_phy
    392     USE lmdz_netcdf, ONLY: nf90_fill_real
     392    USE netcdf, ONLY: nf90_fill_real
    393393    ! ug Pour les sorties XIOS
    394394    USE lmdz_xios, ONLY: xios_update_calendar, using_xios
  • LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90

    r5075 r5084  
    14411441       call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1 SCDU',1)
    14421442          endif
    1443           if ( (id_codu <= 0) .or. ( id_fine<=0)  ) then
     1443          if ( (id_codu .le. 0) .or. ( id_fine.le.0)  ) then 
    14441444          call abort_gcm('phytracr_mod', 'pb in ok_chimdust 1',1)
    14451445          endif
     
    24372437      ENDDO
    24382438      ENDDO
    2439       IF (iflag_conv==2) THEN
     2439      IF (iflag_conv.EQ.2) THEN
    24402440! Tiedke
    24412441      CALL cltrac_spl(pdtphys,coefh,yu1,yv1,t_seri,tmp_var,  &
    24422442                 aux_var2,paprs,pplay,aux_var3)
    24432443
    2444       ELSE IF (iflag_conv>=3) THEN
     2444      ELSE IF (iflag_conv.GE.3) THEN
    24452445!KE
    24462446      CALL cltrac(pdtphys, coefh,t_seri,tmp_var,aux_var2,paprs,pplay,  &
     
    24942494
    24952495
    2496       IF (iflag_conv>=3) THEN
     2496      IF (iflag_conv.GE.3) THEN
    24972497
    24982498      IF (logitime) THEN
     
    27862786
    27872787
    2788       IF (iflag_conv==2) THEN
     2788      IF (iflag_conv.EQ.2) THEN
    27892789
    27902790      IF (logitime) THEN
     
    28392839      print *,'iflag_conv bef incloud',iflag_conv
    28402840
    2841         IF (iflag_conv==2) THEN
     2841        IF (iflag_conv.EQ.2) THEN
    28422842! Tiedke
    28432843      CALL incloud_scav(.false.,qmin,qmax,masse,henry,kk,prfl,          &
     
    28772877!     .                                  his_dhbclsc,his_dhbccon,tr_seri)
    28782878
    2879         IF (iflag_conv==2) THEN
     2879        IF (iflag_conv.EQ.2) THEN
    28802880! Tiedke
    28812881
     
    29912991!     .                                                 dtrconv,tr_seri)
    29922992! -------------------------------------------------------------     
    2993         IF (iflag_conv==2) THEN
     2993        IF (iflag_conv.EQ.2) THEN
    29942994! Tiedke
    29952995         CALL trconvect(pplay,t_seri,pdtphys,pmfu,pmfd,pen_u,pde_u,  &
     
    30003000         ENDDO
    30013001
    3002         ELSE IF (iflag_conv>=3) THEN
     3002        ELSE IF (iflag_conv.GE.3) THEN
    30033003! KE
    30043004         print *,'JE: KE in phytracr_spl'
     
    31643164
    31653165
    3166        IF (iflag_conv>=3) THEN
     3166       IF (iflag_conv.GE.3) THEN
    31673167       IF (logitime) THEN
    31683168       CALL SYSTEM_CLOCK(COUNT=clock_start)
     
    31953195       ql_incl = ql_incloud_ref
    31963196! choix du lessivage
    3197       IF (iflag_lscav == 3 .OR. iflag_lscav == 4) THEN
     3197      IF (iflag_lscav .EQ. 3 .OR. iflag_lscav .EQ. 4) THEN
    31983198      !IF (.false.) THEN  ! test #DFB (Binta) sans lsc_scav_spl
    31993199        print *,'JE iflag_lscav',iflag_lscav
     
    33623362      CALL satellite_out_spla(jD_cur,jH_cur,pdtphys,rlat,rlon,   &
    33633363                              masque_aqua_cur, masque_terra_cur )
    3364       IF (jH_cur-pdtphys/86400. < 0.) THEN
     3364      IF (jH_cur-pdtphys/86400. .LT. 0.) THEN
    33653365       !new utc day: put in 0 everything
    33663366!JE20150518<<
     
    34703470      ENDDO
    34713471
    3472       IF (jH_cur+pdtphys/86400. >= 1.) THEN
     3472      IF (jH_cur+pdtphys/86400. .GE. 1.) THEN 
    34733473!          print *,'last step of the day'
    34743474          DO i=1,klon
    3475                IF (masque_aqua(i)> 0) THEN
     3475               IF (masque_aqua(i).GT. 0) THEN
    34763476                   aod550_aqua(i)=aod550_aqua(i)/masque_aqua(i)
    34773477                   aod670_aqua(i)=aod670_aqua(i)/masque_aqua(i)
     
    35063506                   aod865_dustsco_aqua(i)= -999.
    35073507               ENDIF
    3508                IF (masque_terra(i)> 0) THEN
     3508               IF (masque_terra(i).GT. 0) THEN
    35093509                   aod550_terra(i)=aod550_terra(i)/masque_terra(i)
    35103510                   aod670_terra(i)=aod670_terra(i)/masque_terra(i)
     
    36353635      fluxss(:)=0.0
    36363636      DO i=1, klon
    3637          IF (iregion_ind(i)>0) THEN           ! LAND
     3637         IF (iregion_ind(i).GT.0) THEN           ! LAND
    36383638           ! SULFUR EMISSIONS
    36393639           fluxh2sff(i)= (lmt_so2ff_l(i)+lmt_so2ff_h(i))*frach2sofso2*  &       
     
    36563656           fluxff(i)=fluxbcff(i)+fluxomff(i)
    36573657         ENDIF
    3658          IF (iregion_bb(i)>0) THEN           ! LAND
     3658         IF (iregion_bb(i).GT.0) THEN           ! LAND
    36593659           ! SULFUR EMISSIONS
    36603660           fluxso2bb(i) =scale_param_bb(iregion_bb(i)) * fracso2emis *  &
     
    45154515      ENDIF
    45164516
    4517       IF (test_sca == 0 ) THEN
     4517      IF (test_sca .EQ. 0 ) THEN
    45184518        ! READ file!!
    45194519        call read_scalenc(filescaleparams,paramname_ind,            &
     
    45564556
    45574557      jH_sca=jH_sca+pdtphys/(24.*3600.)
    4558       IF (jH_sca>(sca_resol)/24.) THEN
     4558      IF (jH_sca.GT.(sca_resol)/24.) THEN
    45594559          test_sca=0
    45604560          jH_sca=jH_ini
     
    45684568      USE mod_grid_phy_lmdz
    45694569      USE mod_phys_lmdz_para
    4570       USE lmdz_netcdf, ONLY:nf_open,nf_close,nf_inq_varid,nf_nowrite,nf_noerr,nf90_get_var
    45714570      IMPLICIT NONE
     4571
     4572      include "netcdf.inc"
    45724573
    45734574      CHARACTER*800 filescaleparams
     
    45884589          !nci=NCOPN(trim(adjustl(filescaleparams)),NCNOWRIT,rcode)
    45894590         ierr = NF_OPEN (trim(adjustl(filescaleparams)),NF_NOWRITE, nid)
    4590           if (ierr == NF_NOERR) THEN
     4591          if (ierr .EQ. NF_NOERR) THEN
    45914592          debutread=step_sca
    45924593          countread=1
     
    45974598            print *,varname
    45984599            ierr = NF_INQ_VARID (nid,trim(adjustl(varname)), nvarid)
    4599             ierr = nf90_get_var (nid, nvarid, auxreal, debutread, countread)
    4600             IF (ierr /= NF_NOERR) THEN
     4600            ierr = NF_GET_VARA_DOUBLE (nid, nvarid, debutread,          &
     4601                         countread, auxreal)
     4602            IF (ierr .NE. NF_NOERR) THEN
    46014603             PRINT*, 'Pb de lecture pour modvalues'
    46024604       print *,'JE  scale_var, step_sca',trim(adjustl(varname)),step_sca
  • LMDZ6/trunk/libf/phylmd/Dust/read_dust.F

    r5075 r5084  
    33      USE mod_grid_phy_lmdz
    44      USE mod_phys_lmdz_para
    5       USE lmdz_netcdf, ONLY:nf90_get_var
    65      IMPLICIT NONE
    76c
    87      INCLUDE "dimensions.h"
    98      INCLUDE "paramet.h"
     9      INCLUDE "netcdf.inc"
    1010c
    1111      INTEGER step, nbjour
     
    4545c
    4646      start(3)=step
    47 
    48       status=nf90_get_var(ncid1,varid1,dust_nc_glo,start,count)
    49 
     47c
     48#ifdef NC_DOUBLE
     49!      status=NF_GET_VARA_DOUBLE(ncid1,varid1,start,count,dust_nc)
     50      status=NF_GET_VARA_DOUBLE(ncid1,varid1,start,count,dust_nc_glo)
     51#else
     52!      status=NF_GET_VARA_REAL(ncid1,varid1,start,count,dust_nc)
     53      status=NF_GET_VARA_REAL(ncid1,varid1,start,count,dust_nc_glo)
     54#endif
     55c
    5056!      call correctbid(iim,jjp1,dust_nc)
    5157      call correctbid(nbp_lon,nbp_lat,dust_nc_glo)
  • LMDZ6/trunk/libf/phylmd/Dust/read_surface.F90

    r5075 r5084  
    1010       USE mod_phys_lmdz_para
    1111       USE iophy
    12        USE lmdz_netcdf, ONLY:nf_inq_varid,nf_noerr,nf90_get_var
     12!       USE netcdf
    1313       IMPLICIT NONE
    1414
     15       INCLUDE "netcdf.inc"
    1516       INCLUDE "dimensions.h"
    1617       INCLUDE "paramet.h"
     
    6465!       print *,'stat,i',status,i,outcycle,aux4s
    6566!       print *,'ifclause',status.NE. NF_NOERR ,outcycle == .false.
    66        IF ((.not.(status/= NF_NOERR) ).and.( .not. outcycle )) THEN
     67       IF ((.not.(status.NE. NF_NOERR) ).and.( .not. outcycle )) THEN
    6768         outcycle=.true.
    6869         latstr=aux4s
     
    7475      varid=NCVID(ncid,latstr,rcode)
    7576
    76           status=nf90_get_var(ncid,varid,lats_glo,startj,endj)
     77#ifdef NC_DOUBLE
     78          status=NF_GET_VARA_DOUBLE(ncid,varid,startj,endj,lats_glo)
     79#else
     80          status=NF_GET_VARA_REAL(ncid,varid,startj,endj,lats_glo)
     81#endif
    7782!      print *,latstr,varid,status,jjp1,rcode
    7883!      IF (status .NE. NF_NOERR) print*,'NOOOOOOO'
     
    108113! Lecture
    109114! -----------------------
    110           status=nf90_get_var(ncid,varid,tmp_dyn_glo,start,count)
     115#ifdef NC_DOUBLE
     116          status=NF_GET_VARA_DOUBLE(ncid,varid,start,count,tmp_dyn_glo)
     117#else
     118          status=NF_GET_VARA_REAL(ncid,varid,start,count,tmp_dyn_glo)
     119#endif
    111120
    112121!      call dump2d(iip1,jjp1,tmp_dyn,'tmp_dyn   ')
  • LMDZ6/trunk/libf/phylmd/Dust/read_vent.F

    r5075 r5084  
    33      USE mod_grid_phy_lmdz
    44      USE mod_phys_lmdz_para
    5       USE lmdz_netcdf, ONLY: nf90_get_var
    65!      USE write_field_phy
    76      IMPLICIT NONE
     
    98c       INCLUDE "dimphy.h"
    109      INCLUDE "paramet.h"
     10      INCLUDE "netcdf.inc"
    1111c
    1212      INTEGER step, nbjour
     
    5151c
    5252      start(3)=step
    53 
    54       status=nf90_get_var(ncidu1,varidu1,u10m_nc_glo,start,count)
    55 
    56       status=nf90_get_var(ncidv1,varidv1,v10m_nc_glo,start,count)
    57 
     53c
     54#ifdef NC_DOUBLE
     55!      status=NF_GET_VARA_DOUBLE(ncidu1,varidu1,start,count,u10m_nc)
     56      status=NF_GET_VARA_DOUBLE(ncidu1,varidu1,start,count,u10m_nc_glo)
     57#else
     58!      status=NF_GET_VARA_REAL(ncidu1,varidu1,start,count,u10m_nc)
     59      status=NF_GET_VARA_REAL(ncidu1,varidu1,start,count,u10m_nc_glo)
     60#endif
     61!       print *,status
     62c
     63#ifdef NC_DOUBLE
     64!      status=NF_GET_VARA_DOUBLE(ncidv1,varidv1,start,count,v10m_nc)
     65      status=NF_GET_VARA_DOUBLE(ncidv1,varidv1,start,count,v10m_nc_glo)
     66#else
     67!      status=NF_GET_VARA_REAL(ncidv1,varidv1,start,count,v10m_nc)
     68      status=NF_GET_VARA_REAL(ncidv1,varidv1,start,count,v10m_nc_glo)
     69#endif
     70c
    5871
    5972!      print *,'beforebidcor u10m_nc', u10m_nc(1,jjp1)
     
    118131      do l=1,nl
    119132         do i=2,iim-1
    120             if(abs(x(i,l))>1.e10) then
     133            if(abs(x(i,l)).gt.1.e10) then
    121134               zz=0.5*(x(i-1,l)+x(i+1,l))
    122135c              print*,'correction ',i,l,x(i,l),zz
  • LMDZ6/trunk/libf/phylmd/StratAer/interp_sulf_input.F90

    r5075 r5084  
    66  USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, &
    77                      nf95_inq_varid, nf95_inquire_dimension, nf95_open
    8   USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     8  USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    99
    1010  USE mod_grid_phy_lmdz
  • LMDZ6/trunk/libf/phylmd/StratAer/stratH2O_methox.F90

    r5075 r5084  
    88  USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, &
    99                      nf95_inq_varid, nf95_inquire_dimension, nf95_open
    10   USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     10  USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    1111
    1212  USE mod_grid_phy_lmdz
     
    7979!
    8080 
    81   IF (debutphy .OR. mth_cur /= mth_pre) THEN
     81  IF (debutphy .OR. mth_cur .NE. mth_pre) THEN
    8282     
    8383!--preparation of global fields
  • LMDZ6/trunk/libf/phylmd/condsurf.F90

    r5075 r5084  
    77  USE indice_sol_mod
    88  USE time_phylmdz_mod, ONLY: annee_ref
    9   USE lmdz_netcdf, ONLY: nf90_get_var,nf_open,nf_inq_varid,nf_noerr,nf_close,nf_nowrite
    109  IMPLICIT NONE
    1110
     
    2120  ! lmt_bils: bilan chaleur au sol (a utiliser pour "slab-ocean")
    2221
     22  include "netcdf.inc"
    2323  INTEGER nid, nvarid
    2424  INTEGER debut(2)
     
    110110    END IF
    111111    PRINT *, 'debut,epais', debut, epais, 'jour,jourvrai', jour, jourvrai
    112     ierr = nf90_get_var(nid, nvarid,  lmt_bils_glo, debut, epais)
     112#ifdef NC_DOUBLE
     113    ierr = nf_get_vara_double(nid, nvarid, debut, epais, lmt_bils_glo)
     114#else
     115    ierr = nf_get_vara_real(nid, nvarid, debut, epais, lmt_bils_glo)
     116#endif
    113117    IF (ierr/=nf_noerr) THEN
    114118      CALL abort_physic('condsurf', 'Lecture echouee pour <BILS>', 1)
  • LMDZ6/trunk/libf/phylmd/create_etat0_unstruct_mod.F90

    r5075 r5084  
    2323  SUBROUTINE init_create_etat0_unstruct
    2424  USE lmdz_xios
    25   USE lmdz_netcdf, ONLY: NF90_NOWRITE,nf90_close,nf90_noerr,nf90_open
     25  USE netcdf
    2626  USE mod_phys_lmdz_para
    2727  IMPLICIT NONE
     
    126126      CALL xios_recv_field("qs",qsol_mpi)
    127127      CALL xios_recv_field("mask",zmasq_mpi)
    128       IF (landice_opt < 2) CALL xios_recv_field("landice",lic_mpi)
     128      IF (landice_opt .LT. 2) CALL xios_recv_field("landice",lic_mpi)
    129129    ENDIF
    130130    CALL scatter_omp(tsol_mpi,tsol)
    131131    CALL scatter_omp(qsol_mpi,qsol)
    132132    CALL scatter_omp(zmasq_mpi,zmasq)
    133     IF (landice_opt < 2) CALL scatter_omp(lic_mpi,lic)
     133    IF (landice_opt .LT. 2) CALL scatter_omp(lic_mpi,lic)
    134134
    135135    radsol(:)   = 0.0
     
    143143
    144144    pctsrf(:,:) = 0
    145     IF (landice_opt < 2) THEN
     145    IF (landice_opt .LT. 2) THEN
    146146       pctsrf(:,is_lic)=lic
    147147       WHERE(pctsrf(:,is_lic)<EPSFRA) pctsrf(:,is_lic)=0.
     
    180180  !--- The ocean and sea-ice fractions are not changed.
    181181  !--- This option is only available if landice_opt<2.   
    182   IF (landice_opt < 2) THEN
     182  IF (landice_opt .LT. 2) THEN
    183183     no_ter_antartique=.FALSE.
    184184     CALL getin_p('no_ter_antartique',no_ter_antartique)
  • LMDZ6/trunk/libf/phylmd/dyn1d/1DUTILS.h

    r5075 r5084  
    673673      USE logic_mod, ONLY: fxyhypb, ysinus
    674674      USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn
    675       USE lmdz_netcdf, ONLY:nf_open,nf_write,nf_noerr
    676675
    677676      IMPLICIT NONE
     
    683682      include "dimensions.h"
    684683!!#include "control.h"
     684      include "netcdf.inc"
    685685
    686686!   Arguments:
     
    820820      USE logic_mod, ONLY: fxyhypb, ysinus
    821821      USE temps_mod, ONLY: annee_ref,day_end,day_ref,itau_dyn,itaufin
    822       USE lmdz_netcdf, ONLY:nf_open,nf_write,nf_noerr
    823822
    824823      IMPLICIT NONE
     
    830829      include "dimensions.h"
    831830!!#include "control.h"
     831      include "netcdf.inc"
    832832
    833833!   Arguments:
  • LMDZ6/trunk/libf/phylmd/dyn1d/1D_decl_cases.h

    r5075 r5084  
     1        INCLUDE "netcdf.inc"
    12
    23! Declarations specifiques au cas Toga
  • LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_amma_read.F90

    r5075 r5084  
    11MODULE mod_1D_amma_read
    2         USE lmdz_netcdf, ONLY: nf90_get_var,nf_open,nf_noerr,nf_open,nf_nowrite,&
    3                 nf_inq_dimid,nf_inq_dimlen,nf_strerror,nf_inq_varid
     2
    43!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    54!Declarations specifiques au cas AMMA
     
    76! Option du cas AMMA ou on impose la discretisation verticale (Ap,Bp)
    87        integer nlev_amma, nt_amma
     8
    99
    1010        integer year_ini_amma, day_ini_amma, mth_ini_amma
     
    5959      implicit none
    6060
     61      INCLUDE "netcdf.inc"
     62
    6163      INTEGER nid,rid,ierr
    6264
     
    6567      ierr = NF_OPEN(fich_amma,NF_NOWRITE,nid)
    6668      print*,'fich_amma,NF_NOWRITE,nid ',fich_amma,NF_NOWRITE,nid
    67       if (ierr/=NF_NOERR) then
     69      if (ierr.NE.NF_NOERR) then
    6870         write(*,*) 'ERROR: GROS Pb opening forcings nc file '
    6971         write(*,*) NF_STRERROR(ierr)
     
    7274!.......................................................................
    7375      ierr=NF_INQ_DIMID(nid,'lev',rid)
    74       IF (ierr/=NF_NOERR) THEN
     76      IF (ierr.NE.NF_NOERR) THEN
    7577         print*, 'Oh probleme lecture dimension zz'
    7678      ENDIF
     
    8183      print*,'nid,rid',nid,rid
    8284      nt_amma=0
    83       IF (ierr/=NF_NOERR) THEN
     85      IF (ierr.NE.NF_NOERR) THEN
    8486        stop 'probleme lecture dimension sens'
    8587      ENDIF
     
    170172
    171173
     174END MODULE mod_1D_amma_read
    172175!=====================================================================
    173176      subroutine read_amma(nid,nlevel,ntime                          &
     
    177180!program reading forcings of the AMMA case study
    178181      implicit none
     182      INCLUDE "netcdf.inc"
    179183
    180184      integer ntime,nlevel
     
    264268!      call catchaxis(nid,ntime,nlevel,time,z,ierr)
    265269 
    266          ierr = nf90_get_var(nid,var3didin(1),zz)
     270#ifdef NC_DOUBLE
     271         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(1),zz)
     272#else
     273         ierr = NF_GET_VAR_REAL(nid,var3didin(1),zz)
     274#endif
    267275         if(ierr/=NF_NOERR) then
    268276            write(*,*) NF_STRERROR(ierr)
     
    271279!          write(*,*)'lecture z ok',zz
    272280
    273          ierr = nf90_get_var(nid,var3didin(2),temp)
     281#ifdef NC_DOUBLE
     282         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(2),temp)
     283#else
     284         ierr = NF_GET_VAR_REAL(nid,var3didin(2),temp)
     285#endif
    274286         if(ierr/=NF_NOERR) then
    275287            write(*,*) NF_STRERROR(ierr)
     
    278290!          write(*,*)'lecture th ok',temp
    279291
    280          ierr = nf90_get_var(nid,var3didin(3),qv)
     292#ifdef NC_DOUBLE
     293         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(3),qv)
     294#else
     295         ierr = NF_GET_VAR_REAL(nid,var3didin(3),qv)
     296#endif
    281297         if(ierr/=NF_NOERR) then
    282298            write(*,*) NF_STRERROR(ierr)
     
    285301!          write(*,*)'lecture qv ok',qv
    286302 
    287          ierr = nf90_get_var(nid,var3didin(4),u)
     303#ifdef NC_DOUBLE
     304         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(4),u)
     305#else
     306         ierr = NF_GET_VAR_REAL(nid,var3didin(4),u)
     307#endif
    288308         if(ierr/=NF_NOERR) then
    289309            write(*,*) NF_STRERROR(ierr)
     
    292312!          write(*,*)'lecture u ok',u
    293313
    294          ierr = nf90_get_var(nid,var3didin(5),v)
     314#ifdef NC_DOUBLE
     315         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(5),v)
     316#else
     317         ierr = NF_GET_VAR_REAL(nid,var3didin(5),v)
     318#endif
    295319         if(ierr/=NF_NOERR) then
    296320            write(*,*) NF_STRERROR(ierr)
     
    299323!          write(*,*)'lecture v ok',v
    300324
    301          ierr = nf90_get_var(nid,var3didin(6),dw)
     325#ifdef NC_DOUBLE
     326         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(6),dw)
     327#else
     328         ierr = NF_GET_VAR_REAL(nid,var3didin(6),dw)
     329#endif
    302330         if(ierr/=NF_NOERR) then
    303331            write(*,*) NF_STRERROR(ierr)
     
    306334!          write(*,*)'lecture w ok',dw
    307335
    308          ierr = nf90_get_var(nid,var3didin(7),dt)
     336#ifdef NC_DOUBLE
     337         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(7),dt)
     338#else
     339         ierr = NF_GET_VAR_REAL(nid,var3didin(7),dt)
     340#endif
    309341         if(ierr/=NF_NOERR) then
    310342            write(*,*) NF_STRERROR(ierr)
     
    313345!          write(*,*)'lecture dt ok',dt
    314346
    315          ierr = nf90_get_var(nid,var3didin(8),dq)
     347#ifdef NC_DOUBLE
     348         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(8),dq)
     349#else
     350         ierr = NF_GET_VAR_REAL(nid,var3didin(8),dq)
     351#endif
    316352         if(ierr/=NF_NOERR) then
    317353            write(*,*) NF_STRERROR(ierr)
     
    320356!          write(*,*)'lecture dq ok',dq
    321357
    322          ierr = nf90_get_var(nid,var3didin(9),sens)
     358#ifdef NC_DOUBLE
     359         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(9),sens)
     360#else
     361         ierr = NF_GET_VAR_REAL(nid,var3didin(9),sens)
     362#endif
    323363         if(ierr/=NF_NOERR) then
    324364            write(*,*) NF_STRERROR(ierr)
     
    327367!          write(*,*)'lecture sens ok',sens
    328368
    329          ierr = nf90_get_var(nid,var3didin(10),flat)
     369#ifdef NC_DOUBLE
     370         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(10),flat)
     371#else
     372         ierr = NF_GET_VAR_REAL(nid,var3didin(10),flat)
     373#endif
    330374         if(ierr/=NF_NOERR) then
    331375            write(*,*) NF_STRERROR(ierr)
     
    334378!          write(*,*)'lecture flat ok',flat
    335379
    336          ierr = nf90_get_var(nid,var3didin(11),pp)
     380#ifdef NC_DOUBLE
     381         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(11),pp)
     382#else
     383         ierr = NF_GET_VAR_REAL(nid,var3didin(11),pp)
     384#endif
    337385         if(ierr/=NF_NOERR) then
    338386            write(*,*) NF_STRERROR(ierr)
     
    381429
    382430
    383         if (forcing_type==6) then
     431        if (forcing_type.eq.6) then
    384432! Check that initial day of the simulation consistent with AMMA case:
    385        if (annee_ref/=2006) then
     433       if (annee_ref.ne.2006) then
    386434        print*,'Pour AMMA, annee_ref doit etre 2006'
    387435        print*,'Changer annee_ref dans run.def'
    388436        stop
    389437       endif
    390        if (annee_ref==2006 .and. day1<day_ini_amma) then
    391         print*,'AMMA a d�but� le 10 juillet 2006',day1,day_ini_amma
     438       if (annee_ref.eq.2006 .and. day1.lt.day_ini_amma) then
     439        print*,'AMMA a débuté le 10 juillet 2006',day1,day_ini_amma
    392440        print*,'Changer dayref dans run.def'
    393441        stop
    394442       endif
    395        if (annee_ref==2006 .and. day1>day_ini_amma+1) then
     443       if (annee_ref.eq.2006 .and. day1.gt.day_ini_amma+1) then
    396444        print*,'AMMA a fini le 11 juillet'
    397445        print*,'Changer dayref ou nday dans run.def'
     
    416464
    417465       it_amma1=INT(timeit/dt_amma)+1
    418        IF (it_amma1 == nt_amma) THEN
     466       IF (it_amma1 .EQ. nt_amma) THEN
    419467       it_amma2=it_amma1
    420468       ELSE
     
    424472       time_amma2=(it_amma2-1)*dt_amma
    425473
    426        if (it_amma1 > nt_amma) then
     474       if (it_amma1 .gt. nt_amma) then
    427475        write(*,*) 'PB-stop: day, it_amma1, it_amma2, timeit: '            &
    428476     &        ,day,day_ini_amma,it_amma1,it_amma2,timeit/86400.
     
    431479
    432480! time interpolation:
    433        IF (it_amma1 == it_amma2) THEN
     481       IF (it_amma1 .EQ. it_amma2) THEN
    434482          frac=0.
    435483       ELSE
     
    455503        END
    456504
    457 END MODULE mod_1D_amma_read
  • LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read.F90

    r5075 r5084  
     1!
     2! $Id$
     3!
    14MODULE mod_1D_cases_read
    2   USE lmdz_netcdf, ONLY: nf_noerr,nf_strerror,nf_inq_varid,nf_inq_dimlen,nf_inq_dimid,&
    3           nf_nowrite,nf_open,nf90_get_var
    45
    56!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    67!Declarations specifiques au cas standard
    78        character*80 :: fich_cas
    8 ! Discr?tisation
     9! Discr?tisation 
    910        integer nlev_cas, nt_cas
    1011
     
    5657        real, allocatable::  q_prof_cas(:)
    5758        real, allocatable::  u_prof_cas(:)
    58         real, allocatable::  v_prof_cas(:)
     59        real, allocatable::  v_prof_cas(:)       
    5960
    6061        real, allocatable::  vitw_prof_cas(:)
     
    8182
    8283        real lat_prof_cas,sens_prof_cas,ts_prof_cas,ustar_prof_cas
    83 
     84     
    8485
    8586
     
    8788
    8889SUBROUTINE read_1D_cas
     90      implicit none
     91
     92      INCLUDE "netcdf.inc"
    8993
    9094      INTEGER nid,rid,ierr
     
    9599      ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid)
    96100      print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid
    97       if (ierr/=NF_NOERR) then
     101      if (ierr.NE.NF_NOERR) then
    98102         write(*,*) 'ERROR: GROS Pb opening forcings nc file '
    99103         write(*,*) NF_STRERROR(ierr)
     
    102106!.......................................................................
    103107      ierr=NF_INQ_DIMID(nid,'lat',rid)
    104       IF (ierr/=NF_NOERR) THEN
     108      IF (ierr.NE.NF_NOERR) THEN
    105109         print*, 'Oh probleme lecture dimension lat'
    106110      ENDIF
     
    109113!.......................................................................
    110114      ierr=NF_INQ_DIMID(nid,'lon',rid)
    111       IF (ierr/=NF_NOERR) THEN
     115      IF (ierr.NE.NF_NOERR) THEN
    112116         print*, 'Oh probleme lecture dimension lon'
    113117      ENDIF
     
    116120!.......................................................................
    117121      ierr=NF_INQ_DIMID(nid,'lev',rid)
    118       IF (ierr/=NF_NOERR) THEN
     122      IF (ierr.NE.NF_NOERR) THEN
    119123         print*, 'Oh probleme lecture dimension zz'
    120124      ENDIF
     
    125129      print*,'nid,rid',nid,rid
    126130      nt_cas=0
    127       IF (ierr/=NF_NOERR) THEN
     131      IF (ierr.NE.NF_NOERR) THEN
    128132        stop 'probleme lecture dimension sens'
    129133      ENDIF
     
    133137!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    134138!profils moyens:
    135         allocate(plev_cas(nlev_cas,nt_cas))
     139        allocate(plev_cas(nlev_cas,nt_cas))       
    136140        allocate(z_cas(nlev_cas,nt_cas))
    137141        allocate(t_cas(nlev_cas,nt_cas),q_cas(nlev_cas,nt_cas),rh_cas(nlev_cas,nt_cas))
     
    200204!profils environnementaux:
    201205        deallocate(plev_cas)
    202 
     206       
    203207        deallocate(z_cas)
    204208        deallocate(t_cas,q_cas,rh_cas)
     
    206210        deallocate(u_cas)
    207211        deallocate(v_cas)
    208 
     212       
    209213!forcing
    210214        deallocate(ht_cas,vt_cas,dt_cas,dtrad_cas)
     
    253257END SUBROUTINE deallocate_1D_cases
    254258
    255   !=====================================================================
     259
     260END MODULE mod_1D_cases_read
     261!=====================================================================
    256262      subroutine read_cas(nid,nlevel,ntime                          &
    257263     &     ,zz,pp,temp,qv,rh,theta,rv,u,v,ug,vg,w,                   &
     
    260266
    261267!program reading forcing of the case study
     268      implicit none
     269      INCLUDE "netcdf.inc"
    262270
    263271      integer ntime,nlevel
     
    288296      integer var3didin(nbvar3d)
    289297
    290        ierr=NF_INQ_VARID(nid,"zz",var3didin(1))
     298       ierr=NF_INQ_VARID(nid,"zz",var3didin(1)) 
    291299         if(ierr/=NF_NOERR) then
    292300           write(*,*) NF_STRERROR(ierr)
    293301           stop 'lev'
    294302         endif
    295 
    296       ierr=NF_INQ_VARID(nid,"pp",var3didin(2))
     303     
     304      ierr=NF_INQ_VARID(nid,"pp",var3didin(2)) 
    297305         if(ierr/=NF_NOERR) then
    298306           write(*,*) NF_STRERROR(ierr)
     
    421429           stop 'advq'
    422430         endif
    423 
     431     
    424432      ierr=NF_INQ_VARID(nid,"hq",var3didin(23))
    425433         if(ierr/=NF_NOERR) then
     
    457465           stop 'advr'
    458466         endif
    459 
     467     
    460468      ierr=NF_INQ_VARID(nid,"hr",var3didin(29))
    461469         if(ierr/=NF_NOERR) then
     
    523531           stop 'q2'
    524532         endif
    525 
    526          ierr = nf90_get_var(nid,var3didin(1),zz)
     533 
     534#ifdef NC_DOUBLE
     535         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(1),zz)
     536#else
     537         ierr = NF_GET_VAR_REAL(nid,var3didin(1),zz)
     538#endif
    527539         if(ierr/=NF_NOERR) then
    528540            write(*,*) NF_STRERROR(ierr)
     
    531543!          write(*,*)'lecture z ok',zz
    532544
    533          ierr = nf90_get_var(nid,var3didin(2),pp)
     545#ifdef NC_DOUBLE
     546         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(2),pp)
     547#else
     548         ierr = NF_GET_VAR_REAL(nid,var3didin(2),pp)
     549#endif
    534550         if(ierr/=NF_NOERR) then
    535551            write(*,*) NF_STRERROR(ierr)
     
    539555
    540556
    541          ierr = nf90_get_var(nid,var3didin(3),temp)
     557#ifdef NC_DOUBLE
     558         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(3),temp)
     559#else
     560         ierr = NF_GET_VAR_REAL(nid,var3didin(3),temp)
     561#endif
    542562         if(ierr/=NF_NOERR) then
    543563            write(*,*) NF_STRERROR(ierr)
     
    546566!          write(*,*)'lecture T ok',temp
    547567
    548          ierr = nf90_get_var(nid,var3didin(4),qv)
     568#ifdef NC_DOUBLE
     569         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(4),qv)
     570#else
     571         ierr = NF_GET_VAR_REAL(nid,var3didin(4),qv)
     572#endif
    549573         if(ierr/=NF_NOERR) then
    550574            write(*,*) NF_STRERROR(ierr)
     
    552576         endif
    553577!          write(*,*)'lecture qv ok',qv
    554 
    555          ierr = nf90_get_var(nid,var3didin(5),rh)
     578 
     579#ifdef NC_DOUBLE
     580         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(5),rh)
     581#else
     582         ierr = NF_GET_VAR_REAL(nid,var3didin(5),rh)
     583#endif
    556584         if(ierr/=NF_NOERR) then
    557585            write(*,*) NF_STRERROR(ierr)
     
    560588!          write(*,*)'lecture rh ok',rh
    561589
    562          ierr = nf90_get_var(nid,var3didin(6),theta)
     590#ifdef NC_DOUBLE
     591         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(6),theta)
     592#else
     593         ierr = NF_GET_VAR_REAL(nid,var3didin(6),theta)
     594#endif
    563595         if(ierr/=NF_NOERR) then
    564596            write(*,*) NF_STRERROR(ierr)
     
    567599!          write(*,*)'lecture theta ok',theta
    568600
    569          ierr = nf90_get_var(nid,var3didin(7),rv)
     601#ifdef NC_DOUBLE
     602         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(7),rv)
     603#else
     604         ierr = NF_GET_VAR_REAL(nid,var3didin(7),rv)
     605#endif
    570606         if(ierr/=NF_NOERR) then
    571607            write(*,*) NF_STRERROR(ierr)
     
    574610!          write(*,*)'lecture rv ok',rv
    575611
    576          ierr = nf90_get_var(nid,var3didin(8),u)
     612#ifdef NC_DOUBLE
     613         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(8),u)
     614#else
     615         ierr = NF_GET_VAR_REAL(nid,var3didin(8),u)
     616#endif
    577617         if(ierr/=NF_NOERR) then
    578618            write(*,*) NF_STRERROR(ierr)
     
    581621!          write(*,*)'lecture u ok',u
    582622
    583          ierr = nf90_get_var(nid,var3didin(9),v)
     623#ifdef NC_DOUBLE
     624         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(9),v)
     625#else
     626         ierr = NF_GET_VAR_REAL(nid,var3didin(9),v)
     627#endif
    584628         if(ierr/=NF_NOERR) then
    585629            write(*,*) NF_STRERROR(ierr)
     
    588632!          write(*,*)'lecture v ok',v
    589633
    590          ierr = nf90_get_var(nid,var3didin(10),ug)
     634#ifdef NC_DOUBLE
     635         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(10),ug)
     636#else
     637         ierr = NF_GET_VAR_REAL(nid,var3didin(10),ug)
     638#endif
    591639         if(ierr/=NF_NOERR) then
    592640            write(*,*) NF_STRERROR(ierr)
     
    595643!          write(*,*)'lecture ug ok',ug
    596644
    597          ierr = nf90_get_var(nid,var3didin(11),vg)
     645#ifdef NC_DOUBLE
     646         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(11),vg)
     647#else
     648         ierr = NF_GET_VAR_REAL(nid,var3didin(11),vg)
     649#endif
    598650         if(ierr/=NF_NOERR) then
    599651            write(*,*) NF_STRERROR(ierr)
     
    602654!          write(*,*)'lecture vg ok',vg
    603655
    604          ierr = nf90_get_var(nid,var3didin(12),w)
     656#ifdef NC_DOUBLE
     657         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(12),w)
     658#else
     659         ierr = NF_GET_VAR_REAL(nid,var3didin(12),w)
     660#endif
    605661         if(ierr/=NF_NOERR) then
    606662            write(*,*) NF_STRERROR(ierr)
     
    609665!          write(*,*)'lecture w ok',w
    610666
    611          ierr = nf90_get_var(nid,var3didin(13),du)
     667#ifdef NC_DOUBLE
     668         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(13),du)
     669#else
     670         ierr = NF_GET_VAR_REAL(nid,var3didin(13),du)
     671#endif
    612672         if(ierr/=NF_NOERR) then
    613673            write(*,*) NF_STRERROR(ierr)
     
    616676!          write(*,*)'lecture du ok',du
    617677
    618          ierr = nf90_get_var(nid,var3didin(14),hu)
     678#ifdef NC_DOUBLE
     679         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(14),hu)
     680#else
     681         ierr = NF_GET_VAR_REAL(nid,var3didin(14),hu)
     682#endif
    619683         if(ierr/=NF_NOERR) then
    620684            write(*,*) NF_STRERROR(ierr)
     
    623687!          write(*,*)'lecture hu ok',hu
    624688
    625          ierr = nf90_get_var(nid,var3didin(15),vu)
     689#ifdef NC_DOUBLE
     690         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(15),vu)
     691#else
     692         ierr = NF_GET_VAR_REAL(nid,var3didin(15),vu)
     693#endif
    626694         if(ierr/=NF_NOERR) then
    627695            write(*,*) NF_STRERROR(ierr)
     
    630698!          write(*,*)'lecture vu ok',vu
    631699
    632          ierr = nf90_get_var(nid,var3didin(16),dv)
     700#ifdef NC_DOUBLE
     701         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(16),dv)
     702#else
     703         ierr = NF_GET_VAR_REAL(nid,var3didin(16),dv)
     704#endif
    633705         if(ierr/=NF_NOERR) then
    634706            write(*,*) NF_STRERROR(ierr)
     
    637709!          write(*,*)'lecture dv ok',dv
    638710
    639          ierr = nf90_get_var(nid,var3didin(17),hv)
     711#ifdef NC_DOUBLE
     712         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(17),hv)
     713#else
     714         ierr = NF_GET_VAR_REAL(nid,var3didin(17),hv)
     715#endif
    640716         if(ierr/=NF_NOERR) then
    641717            write(*,*) NF_STRERROR(ierr)
     
    644720!          write(*,*)'lecture hv ok',hv
    645721
    646          ierr = nf90_get_var(nid,var3didin(18),vv)
     722#ifdef NC_DOUBLE
     723         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(18),vv)
     724#else
     725         ierr = NF_GET_VAR_REAL(nid,var3didin(18),vv)
     726#endif
    647727         if(ierr/=NF_NOERR) then
    648728            write(*,*) NF_STRERROR(ierr)
     
    651731!          write(*,*)'lecture vv ok',vv
    652732
    653          ierr = nf90_get_var(nid,var3didin(19),dt)
     733#ifdef NC_DOUBLE
     734         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(19),dt)
     735#else
     736         ierr = NF_GET_VAR_REAL(nid,var3didin(19),dt)
     737#endif
    654738         if(ierr/=NF_NOERR) then
    655739            write(*,*) NF_STRERROR(ierr)
     
    658742!          write(*,*)'lecture dt ok',dt
    659743
    660          ierr = nf90_get_var(nid,var3didin(20),ht)
     744#ifdef NC_DOUBLE
     745         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(20),ht)
     746#else
     747         ierr = NF_GET_VAR_REAL(nid,var3didin(20),ht)
     748#endif
    661749         if(ierr/=NF_NOERR) then
    662750            write(*,*) NF_STRERROR(ierr)
     
    665753!          write(*,*)'lecture ht ok',ht
    666754
    667          ierr = nf90_get_var(nid,var3didin(21),vt)
     755#ifdef NC_DOUBLE
     756         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(21),vt)
     757#else
     758         ierr = NF_GET_VAR_REAL(nid,var3didin(21),vt)
     759#endif
    668760         if(ierr/=NF_NOERR) then
    669761            write(*,*) NF_STRERROR(ierr)
     
    672764!          write(*,*)'lecture vt ok',vt
    673765
    674          ierr = nf90_get_var(nid,var3didin(22),dq)
     766#ifdef NC_DOUBLE
     767         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(22),dq)
     768#else
     769         ierr = NF_GET_VAR_REAL(nid,var3didin(22),dq)
     770#endif
    675771         if(ierr/=NF_NOERR) then
    676772            write(*,*) NF_STRERROR(ierr)
     
    679775!          write(*,*)'lecture dq ok',dq
    680776
    681          ierr = nf90_get_var(nid,var3didin(23),hq)
     777#ifdef NC_DOUBLE
     778         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(23),hq)
     779#else
     780         ierr = NF_GET_VAR_REAL(nid,var3didin(23),hq)
     781#endif
    682782         if(ierr/=NF_NOERR) then
    683783            write(*,*) NF_STRERROR(ierr)
     
    686786!          write(*,*)'lecture hq ok',hq
    687787
    688          ierr = nf90_get_var(nid,var3didin(24),vq)
     788#ifdef NC_DOUBLE
     789         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(24),vq)
     790#else
     791         ierr = NF_GET_VAR_REAL(nid,var3didin(24),vq)
     792#endif
    689793         if(ierr/=NF_NOERR) then
    690794            write(*,*) NF_STRERROR(ierr)
     
    693797!          write(*,*)'lecture vq ok',vq
    694798
    695          ierr = nf90_get_var(nid,var3didin(25),dth)
     799#ifdef NC_DOUBLE
     800         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(25),dth)
     801#else
     802         ierr = NF_GET_VAR_REAL(nid,var3didin(25),dth)
     803#endif
    696804         if(ierr/=NF_NOERR) then
    697805            write(*,*) NF_STRERROR(ierr)
     
    700808!          write(*,*)'lecture dth ok',dth
    701809
    702          ierr = nf90_get_var(nid,var3didin(26),hth)
     810#ifdef NC_DOUBLE
     811         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(26),hth)
     812#else
     813         ierr = NF_GET_VAR_REAL(nid,var3didin(26),hth)
     814#endif
    703815         if(ierr/=NF_NOERR) then
    704816            write(*,*) NF_STRERROR(ierr)
     
    707819!          write(*,*)'lecture hth ok',hth
    708820
    709          ierr = nf90_get_var(nid,var3didin(27),vth)
     821#ifdef NC_DOUBLE
     822         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(27),vth)
     823#else
     824         ierr = NF_GET_VAR_REAL(nid,var3didin(27),vth)
     825#endif
    710826         if(ierr/=NF_NOERR) then
    711827            write(*,*) NF_STRERROR(ierr)
     
    714830!          write(*,*)'lecture vth ok',vth
    715831
    716          ierr = nf90_get_var(nid,var3didin(28),dr)
     832#ifdef NC_DOUBLE
     833         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(28),dr)
     834#else
     835         ierr = NF_GET_VAR_REAL(nid,var3didin(28),dr)
     836#endif
    717837         if(ierr/=NF_NOERR) then
    718838            write(*,*) NF_STRERROR(ierr)
     
    721841!          write(*,*)'lecture dr ok',dr
    722842
    723          ierr = nf90_get_var(nid,var3didin(29),hr)
     843#ifdef NC_DOUBLE
     844         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(29),hr)
     845#else
     846         ierr = NF_GET_VAR_REAL(nid,var3didin(29),hr)
     847#endif
    724848         if(ierr/=NF_NOERR) then
    725849            write(*,*) NF_STRERROR(ierr)
     
    728852!          write(*,*)'lecture hr ok',hr
    729853
    730          ierr = nf90_get_var(nid,var3didin(30),vr)
     854#ifdef NC_DOUBLE
     855         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(30),vr)
     856#else
     857         ierr = NF_GET_VAR_REAL(nid,var3didin(30),vr)
     858#endif
    731859         if(ierr/=NF_NOERR) then
    732860            write(*,*) NF_STRERROR(ierr)
     
    735863!          write(*,*)'lecture vr ok',vr
    736864
    737          ierr = nf90_get_var(nid,var3didin(31),dtrad)
     865#ifdef NC_DOUBLE
     866         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(31),dtrad)
     867#else
     868         ierr = NF_GET_VAR_REAL(nid,var3didin(31),dtrad)
     869#endif
    738870         if(ierr/=NF_NOERR) then
    739871            write(*,*) NF_STRERROR(ierr)
     
    742874!          write(*,*)'lecture dtrad ok',dtrad
    743875
    744          ierr = nf90_get_var(nid,var3didin(32),sens)
     876#ifdef NC_DOUBLE
     877         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(32),sens)
     878#else
     879         ierr = NF_GET_VAR_REAL(nid,var3didin(32),sens)
     880#endif
    745881         if(ierr/=NF_NOERR) then
    746882            write(*,*) NF_STRERROR(ierr)
     
    749885!          write(*,*)'lecture sens ok',sens
    750886
    751          ierr = nf90_get_var(nid,var3didin(33),flat)
     887#ifdef NC_DOUBLE
     888         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(33),flat)
     889#else
     890         ierr = NF_GET_VAR_REAL(nid,var3didin(33),flat)
     891#endif
    752892         if(ierr/=NF_NOERR) then
    753893            write(*,*) NF_STRERROR(ierr)
     
    756896!          write(*,*)'lecture flat ok',flat
    757897
    758          ierr = nf90_get_var(nid,var3didin(34),ts)
     898#ifdef NC_DOUBLE
     899         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(34),ts)
     900#else
     901         ierr = NF_GET_VAR_REAL(nid,var3didin(34),ts)
     902#endif
    759903         if(ierr/=NF_NOERR) then
    760904            write(*,*) NF_STRERROR(ierr)
     
    763907!          write(*,*)'lecture ts ok',ts
    764908
    765          ierr = nf90_get_var(nid,var3didin(35),ustar)
     909#ifdef NC_DOUBLE
     910         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(35),ustar)
     911#else
     912         ierr = NF_GET_VAR_REAL(nid,var3didin(35),ustar)
     913#endif
    766914         if(ierr/=NF_NOERR) then
    767915            write(*,*) NF_STRERROR(ierr)
     
    770918!         write(*,*)'lecture ustar ok',ustar
    771919
    772          ierr = nf90_get_var(nid,var3didin(36),uw)
     920#ifdef NC_DOUBLE
     921         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(36),uw)
     922#else
     923         ierr = NF_GET_VAR_REAL(nid,var3didin(36),uw)
     924#endif
    773925         if(ierr/=NF_NOERR) then
    774926            write(*,*) NF_STRERROR(ierr)
     
    777929!         write(*,*)'lecture uw ok',uw
    778930
    779          ierr = nf90_get_var(nid,var3didin(37),vw)
     931#ifdef NC_DOUBLE
     932         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(37),vw)
     933#else
     934         ierr = NF_GET_VAR_REAL(nid,var3didin(37),vw)
     935#endif
    780936         if(ierr/=NF_NOERR) then
    781937            write(*,*) NF_STRERROR(ierr)
     
    784940!         write(*,*)'lecture vw ok',vw
    785941
    786          ierr = nf90_get_var(nid,var3didin(38),q1)
     942#ifdef NC_DOUBLE
     943         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(38),q1)
     944#else
     945         ierr = NF_GET_VAR_REAL(nid,var3didin(38),q1)
     946#endif
    787947         if(ierr/=NF_NOERR) then
    788948            write(*,*) NF_STRERROR(ierr)
     
    791951!         write(*,*)'lecture q1 ok',q1
    792952
    793          ierr = nf90_get_var(nid,var3didin(39),q2)
     953#ifdef NC_DOUBLE
     954         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(39),q2)
     955#else
     956         ierr = NF_GET_VAR_REAL(nid,var3didin(39),q2)
     957#endif
    794958         if(ierr/=NF_NOERR) then
    795959            write(*,*) NF_STRERROR(ierr)
     
    799963
    800964
    801          return
     965         return 
    802966         end subroutine read_cas
    803967!======================================================================
     
    817981     &         ,hq_prof_cas,vq_prof_cas,lat_prof_cas,sens_prof_cas    &
    818982     &         ,ustar_prof_cas,uw_prof_cas,vw_prof_cas,q1_prof_cas,q2_prof_cas)
    819 
     983         
    820984
    821985        implicit none
     
    826990! day: current julian day (e.g. 717538.2)
    827991! day1: first day of the simulation
    828 ! nt_cas: total nb of data in the forcing
     992! nt_cas: total nb of data in the forcing 
    829993! pdt_cas: total time interval (in sec) between 2 forcing data
    830994!---------------------------------------------------------------------------------------
     
    9171081
    9181082       it_cas1=INT(timeit/pdt_cas)+1
    919        IF (it_cas1 == nt_cas) THEN
    920        it_cas2=it_cas1
     1083       IF (it_cas1 .EQ. nt_cas) THEN
     1084       it_cas2=it_cas1 
    9211085       ELSE
    9221086       it_cas2=it_cas1 + 1
     
    9291093      print *,'time_cas2=',time_cas2
    9301094
    931        if (it_cas1 > nt_cas) then
     1095       if (it_cas1 .gt. nt_cas) then
    9321096        write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: '            &
    9331097     &        ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit
     
    9361100
    9371101! time interpolation:
    938        IF (it_cas1 == it_cas2) THEN
     1102       IF (it_cas1 .EQ. it_cas2) THEN
    9391103          frac=0.
    9401104       ELSE
     
    9441108
    9451109       lat_prof_cas = lat_cas(it_cas2)                                       &
    946      &          -frac*(lat_cas(it_cas2)-lat_cas(it_cas1))
     1110     &          -frac*(lat_cas(it_cas2)-lat_cas(it_cas1)) 
    9471111       sens_prof_cas = sens_cas(it_cas2)                                     &
    9481112     &          -frac*(sens_cas(it_cas2)-sens_cas(it_cas1))
     
    10091173
    10101174!**********************************************************************************************
    1011 END MODULE mod_1D_cases_read
  • LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read2.F90

    r5075 r5084  
    33!
    44MODULE mod_1D_cases_read2
    5   USE lmdz_netcdf, ONLY: nf90_get_var,nf_noerr,nf_inq_varid,nf_inq_dimlen,nf_strerror,nf_open,&
    6           nf_nowrite,nf_inq_dimid
     5
    76!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    87  !Declarations specifiques au cas standard
     
    8281    implicit none
    8382
     83    INCLUDE "netcdf.inc"
     84
    8485    INTEGER nid,rid,ierr
    8586    INTEGER ii,jj
     
    8990    ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid)
    9091    print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid
    91     if (ierr/=NF_NOERR) then
     92    if (ierr.NE.NF_NOERR) then
    9293       write(*,*) 'ERROR: GROS Pb opening forcings nc file '
    9394       write(*,*) NF_STRERROR(ierr)
     
    9697    !.......................................................................
    9798    ierr=NF_INQ_DIMID(nid,'lat',rid)
    98     IF (ierr/=NF_NOERR) THEN
     99    IF (ierr.NE.NF_NOERR) THEN
    99100       print*, 'Oh probleme lecture dimension lat'
    100101    ENDIF
     
    103104    !.......................................................................
    104105    ierr=NF_INQ_DIMID(nid,'lon',rid)
    105     IF (ierr/=NF_NOERR) THEN
     106    IF (ierr.NE.NF_NOERR) THEN
    106107       print*, 'Oh probleme lecture dimension lon'
    107108    ENDIF
     
    110111    !.......................................................................
    111112    ierr=NF_INQ_DIMID(nid,'lev',rid)
    112     IF (ierr/=NF_NOERR) THEN
     113    IF (ierr.NE.NF_NOERR) THEN
    113114       print*, 'Oh probleme lecture dimension zz'
    114115    ENDIF
     
    119120    print*,'nid,rid',nid,rid
    120121    nt_cas=0
    121     IF (ierr/=NF_NOERR) THEN
     122    IF (ierr.NE.NF_NOERR) THEN
    122123       stop 'probleme lecture dimension sens'
    123124    ENDIF
     
    191192    implicit none
    192193
     194    INCLUDE "netcdf.inc"
     195
    193196    INTEGER nid,rid,ierr
    194197    INTEGER ii,jj
     
    198201    ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid)
    199202    print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid
    200     if (ierr/=NF_NOERR) then
     203    if (ierr.NE.NF_NOERR) then
    201204       write(*,*) 'ERROR: GROS Pb opening forcings nc file '
    202205       write(*,*) NF_STRERROR(ierr)
     
    205208    !.......................................................................
    206209    ierr=NF_INQ_DIMID(nid,'lat',rid)
    207     IF (ierr/=NF_NOERR) THEN
     210    IF (ierr.NE.NF_NOERR) THEN
    208211       print*, 'Oh probleme lecture dimension lat'
    209212    ENDIF
     
    212215    !.......................................................................
    213216    ierr=NF_INQ_DIMID(nid,'lon',rid)
    214     IF (ierr/=NF_NOERR) THEN
     217    IF (ierr.NE.NF_NOERR) THEN
    215218       print*, 'Oh probleme lecture dimension lon'
    216219    ENDIF
     
    219222    !.......................................................................
    220223    ierr=NF_INQ_DIMID(nid,'nlev',rid)
    221     IF (ierr/=NF_NOERR) THEN
     224    IF (ierr.NE.NF_NOERR) THEN
    222225       print*, 'Oh probleme lecture dimension nlev'
    223226    ENDIF
     
    227230    ierr=NF_INQ_DIMID(nid,'time',rid)
    228231    nt_cas=0
    229     IF (ierr/=NF_NOERR) THEN
     232    IF (ierr.NE.NF_NOERR) THEN
    230233       stop 'Oh probleme lecture dimension time'
    231234    ENDIF
     
    314317  !**********************************************************************************************
    315318  SUBROUTINE old_read_SCM_cas
     319    use netcdf, only: nf90_get_var
    316320    implicit none
    317321
     322    INCLUDE "netcdf.inc"
    318323    INCLUDE "date_cas.h"
    319324
     
    326331    ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid)
    327332    print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid
    328     if (ierr/=NF_NOERR) then
     333    if (ierr.NE.NF_NOERR) then
    329334       write(*,*) 'ERROR: GROS Pb opening forcings nc file '
    330335       write(*,*) NF_STRERROR(ierr)
     
    333338    !.......................................................................
    334339    ierr=NF_INQ_DIMID(nid,'lat',rid)
    335     IF (ierr/=NF_NOERR) THEN
     340    IF (ierr.NE.NF_NOERR) THEN
    336341       print*, 'Oh probleme lecture dimension lat'
    337342    ENDIF
     
    340345    !.......................................................................
    341346    ierr=NF_INQ_DIMID(nid,'lon',rid)
    342     IF (ierr/=NF_NOERR) THEN
     347    IF (ierr.NE.NF_NOERR) THEN
    343348       print*, 'Oh probleme lecture dimension lon'
    344349    ENDIF
     
    347352    !.......................................................................
    348353    ierr=NF_INQ_DIMID(nid,'lev',rid)
    349     IF (ierr/=NF_NOERR) THEN
     354    IF (ierr.NE.NF_NOERR) THEN
    350355       print*, 'Oh probleme lecture dimension nlev'
    351356    ENDIF
     
    359364    ierr=NF_INQ_DIMID(nid,'time',rid)
    360365    nt_cas=0
    361     IF (ierr/=NF_NOERR) THEN
     366    IF (ierr.NE.NF_NOERR) THEN
    362367       stop 'Oh probleme lecture dimension time'
    363368    ENDIF
     
    528533
    529534
     535END MODULE mod_1D_cases_read2
    530536!=====================================================================
    531537subroutine read_cas2(nid,nlevel,ntime                          &
     
    535541
    536542  !program reading forcing of the case study
     543  use netcdf, only: nf90_get_var
    537544  implicit none
     545  INCLUDE "netcdf.inc"
    538546
    539547  integer ntime,nlevel
     
    581589  do i=1,nbvar3d
    582590     print *,'Dans read_cas2, on va lire ',var3didin(i),name_var(i)
    583      if(i<=35) then
     591     if(i.LE.35) then
    584592        ierr = NF90_GET_VAR(nid,var3didin(i),resul, count = [1, 1, nlevel, ntime])
    585593        print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i)
     
    650658
    651659  !program reading forcing of the case study
     660  use netcdf, only: nf90_get_var
    652661  implicit none
     662  INCLUDE "netcdf.inc"
    653663
    654664  integer ntime,nlevel
     
    701711     else
    702712        !-----------------------------------------------------------------------
    703         if(i<=4) then     ! Lecture des coord pression en (nlevelp1,lat,lon)
     713        if(i.LE.4) then     ! Lecture des coord pression en (nlevelp1,lat,lon)
    704714           ierr = NF90_GET_VAR(nid,var3didin(i),apbp, count = [1, 1, nlevel + 1])
    705715           print *,'read2_cas(apbp), on a lu ',i,name_var(i)
     
    709719           endif
    710720           !-----------------------------------------------------------------------
    711         else if(i>4.and.i<=45) then   ! Lecture des variables en (time,nlevel,lat,lon)
     721        else if(i.gt.4.and.i.LE.45) then   ! Lecture des variables en (time,nlevel,lat,lon)
    712722           ierr = NF90_GET_VAR(nid,var3didin(i),resul, count = [1, 1, nlevel, ntime])
    713723           print *,'read2_cas(resul), on a lu ',i,name_var(i)
     
    717727           endif
    718728           !-----------------------------------------------------------------------
    719         else if (i>45.and.i<=51) then   ! Lecture des variables en (time,lat,lon)
     729        else if (i.gt.45.and.i.LE.51) then   ! Lecture des variables en (time,lat,lon)
    720730           ierr = NF90_GET_VAR(nid,var3didin(i),resul2, count = [1, 1, ntime])
    721731           print *,'read2_cas(resul2), on a lu ',i,name_var(i)
     
    819829
    820830  !program reading forcing of the case study
     831  use netcdf, only: nf90_get_var
    821832  implicit none
     833  INCLUDE "netcdf.inc"
    822834
    823835  integer ntime,nlevel,k,t
     
    876888     else
    877889        !-----------------------------------------------------------------------
    878         if(i<=4) then     ! Lecture des coord pression en (nlevelp1,lat,lon)
     890        if(i.LE.4) then     ! Lecture des coord pression en (nlevelp1,lat,lon)
    879891           ierr = NF90_GET_VAR(nid,var3didin(i),apbp)
    880892           print *,'read2_cas(apbp), on a lu ',i,name_var(i)
     
    884896           endif
    885897           !-----------------------------------------------------------------------
    886         else if(i>4.and.i<=12) then   ! Lecture des variables en (time,nlevel,lat,lon)
     898        else if(i.gt.4.and.i.LE.12) then   ! Lecture des variables en (time,nlevel,lat,lon)
    887899           ierr = NF90_GET_VAR(nid,var3didin(i),resul1)
    888900           print *,'read2_cas(resul1), on a lu ',i,name_var(i)
     
    893905           print*,'Lecture de la variable #i ',i,name_var(i),minval(resul1),maxval(resul1)
    894906           !-----------------------------------------------------------------------
    895         else if(i>12.and.i<=54) then   ! Lecture des variables en (time,nlevel,lat,lon)
     907        else if(i.gt.12.and.i.LE.54) then   ! Lecture des variables en (time,nlevel,lat,lon)
    896908           ierr = NF90_GET_VAR(nid,var3didin(i),resul)
    897909           print *,'read2_cas(resul), on a lu ',i,name_var(i)
     
    902914           print*,'Lecture de la variable #i ',i,name_var(i),minval(resul),maxval(resul)
    903915           !-----------------------------------------------------------------------
    904         else if (i>54.and.i<=65) then   ! Lecture des variables en (time,lat,lon)
     916        else if (i.gt.54.and.i.LE.65) then   ! Lecture des variables en (time,lat,lon)
    905917           ierr = NF90_GET_VAR(nid,var3didin(i),resul2)
    906918           print *,'read2_cas(resul2), on a lu ',i,name_var(i)
     
    11361148
    11371149  it_cas1=INT(timeit/pdt_cas)+1
    1138   IF (it_cas1 == nt_cas) THEN
     1150  IF (it_cas1 .EQ. nt_cas) THEN
    11391151     it_cas2=it_cas1
    11401152  ELSE
     
    11451157  !print *,'it_cas1,it_cas2,time_cas1,time_cas2=',it_cas1,it_cas2,time_cas1,time_cas2
    11461158
    1147   if (it_cas1 > nt_cas) then
     1159  if (it_cas1 .gt. nt_cas) then
    11481160     write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: '            &
    11491161          ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit
     
    11521164
    11531165  ! time interpolation:
    1154   IF (it_cas1 == it_cas2) THEN
     1166  IF (it_cas1 .EQ. it_cas2) THEN
    11551167     frac=0.
    11561168  ELSE
     
    13511363
    13521364  it_cas1=INT(timeit/pdt_cas)+1
    1353   IF (it_cas1 == nt_cas) THEN
     1365  IF (it_cas1 .EQ. nt_cas) THEN
    13541366     it_cas2=it_cas1
    13551367  ELSE
     
    13611373  !print *,'it_cas1,it_cas2,time_cas1,time_cas2=',it_cas1,it_cas2,time_cas1,time_cas2
    13621374
    1363   if (it_cas1 > nt_cas) then
     1375  if (it_cas1 .gt. nt_cas) then
    13641376     write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: '            &
    13651377          ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit
     
    13681380
    13691381  ! time interpolation:
    1370   IF (it_cas1 == it_cas2) THEN
     1382  IF (it_cas1 .EQ. it_cas2) THEN
    13711383     frac=0.
    13721384  ELSE
     
    14631475!**********************************************************************************************
    14641476
    1465 END MODULE mod_1D_cases_read2
  • LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read_std.F90

    r5075 r5084  
    33!
    44MODULE mod_1D_cases_read_std
    5   USE lmdz_netcdf, ONLY:nf_noerr,nf_inq_varid,nf_inq_dimid,nf_inq_dimlen,nf_open,nf_nowrite,&
    6           nf_strerror,nf90_get_var
    75
    86!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    8987  !**********************************************************************************************
    9088  SUBROUTINE read_SCM_cas
     89    use netcdf, only: nf90_get_var
    9190    implicit none
    9291
     92    INCLUDE "netcdf.inc"
    9393    INCLUDE "date_cas.h"
    9494
     
    101101    ierr = NF_OPEN(fich_cas,NF_NOWRITE,nid)
    102102    print*,'fich_cas,NF_NOWRITE,nid ',fich_cas,NF_NOWRITE,nid
    103     if (ierr/=NF_NOERR) then
     103    if (ierr.NE.NF_NOERR) then
    104104       write(*,*) 'ERROR: GROS Pb opening forcings nc file '
    105105       write(*,*) NF_STRERROR(ierr)
     
    108108    !.......................................................................
    109109    ierr=NF_INQ_DIMID(nid,'lat',rid)
    110     IF (ierr/=NF_NOERR) THEN
     110    IF (ierr.NE.NF_NOERR) THEN
    111111       print*, 'Oh probleme lecture dimension lat'
    112112    ENDIF
     
    115115    !.......................................................................
    116116    ierr=NF_INQ_DIMID(nid,'lon',rid)
    117     IF (ierr/=NF_NOERR) THEN
     117    IF (ierr.NE.NF_NOERR) THEN
    118118       print*, 'Oh probleme lecture dimension lon'
    119119    ENDIF
     
    122122    !.......................................................................
    123123    ierr=NF_INQ_DIMID(nid,'lev',rid)
    124     IF (ierr/=NF_NOERR) THEN
     124    IF (ierr.NE.NF_NOERR) THEN
    125125       print*, 'Oh probleme lecture dimension nlev'
    126126    ENDIF
     
    134134    ierr=NF_INQ_DIMID(nid,'time',rid)
    135135    nt_cas=0
    136     IF (ierr/=NF_NOERR) THEN
     136    IF (ierr.NE.NF_NOERR) THEN
    137137       stop 'Oh probleme lecture dimension time'
    138138    ENDIF
     
    329329
    330330    !program reading forcing of the case study
     331    use netcdf, only: nf90_get_var
    331332    implicit none
     333    INCLUDE "netcdf.inc"
    332334    INCLUDE "compar1d.h"
    333335
     
    453455          ! Reading variables 1D (N+1) vertical variables (nlevelp1,lat,lon)
    454456          !-----------------------------------------------------------------------
    455           if(i<=4) then
     457          if(i.LE.4) then
    456458             ierr = NF90_GET_VAR(nid,var3didin(i),apbp)
    457459             print *,'read_SCM(apbp), on a lu ',i,name_var(i)
     
    464466             !  Reading 1D (N) vertical varialbes    (nlevel,lat,lon)   
    465467             !-----------------------------------------------------------------------
    466           else if(i>4.and.i<=12) then
     468          else if(i.gt.4.and.i.LE.12) then 
    467469             ierr = NF90_GET_VAR(nid,var3didin(i),resul1)
    468470             print *,'read_SCM(resul1), on a lu ',i,name_var(i)
     
    477479             !  TBD : seems to be the same as above.
    478480             !-----------------------------------------------------------------------
    479           else if(i>12.and.i<=61) then
     481          else if(i.gt.12.and.i.LE.61) then
    480482             ierr = NF90_GET_VAR(nid,var3didin(i),resul)
    481483             print *,'read_SCM(resul), on a lu ',i,name_var(i)
     
    489491             !  Reading 1D time variables (time,lat,lon)
    490492             !-----------------------------------------------------------------------
    491           else if (i>62.and.i<=75) then
     493          else if (i.gt.62.and.i.LE.75) then
    492494             ierr = NF90_GET_VAR(nid,var3didin(i),resul2)
    493495             print *,'read_SCM(resul2), on a lu ',i,name_var(i)
     
    775777
    776778    it_cas1=INT(timeit/pdt_cas)+1
    777     IF (it_cas1 == nt_cas) THEN
     779    IF (it_cas1 .EQ. nt_cas) THEN
    778780       it_cas2=it_cas1
    779781    ELSE
     
    785787    !     print *,'it_cas1,it_cas2,time_cas1,time_cas2=',it_cas1,it_cas2,time_cas1,time_cas2
    786788
    787     if (it_cas1 > nt_cas) then
     789    if (it_cas1 .gt. nt_cas) then
    788790       write(*,*) 'PB-stop: day, day_ju_ini_cas,it_cas1, it_cas2, timeit: '            &
    789791            ,day,day_ju_ini_cas,it_cas1,it_cas2,timeit
     
    792794
    793795    ! time interpolation:
    794     IF (it_cas1 == it_cas2) THEN
     796    IF (it_cas1 .EQ. it_cas2) THEN
    795797       frac=0.
    796798    ELSE
     
    987989    do l = 1, llm
    988990
    989        if (play(l)>=plev_prof_cas(nlev_cas)) then
     991       if (play(l).ge.plev_prof_cas(nlev_cas)) then
    990992
    991993          mxcalc=l
     
    994996          k2=0
    995997
    996           if (play(l)<=plev_prof_cas(1)) then
     998          if (play(l).le.plev_prof_cas(1)) then
    997999
    9981000             do k = 1, nlev_cas-1
    999                 if (play(l)<=plev_prof_cas(k).and. play(l)>plev_prof_cas(k+1)) then
     1001                if (play(l).le.plev_prof_cas(k).and. play(l).gt.plev_prof_cas(k+1)) then
    10001002                   k1=k
    10011003                   k2=k+1
     
    10031005             enddo
    10041006
    1005              if (k1==0 .or. k2==0) then
     1007             if (k1.eq.0 .or. k2.eq.0) then
    10061008                write(*,*) 'PB! k1, k2 = ',k1,k2
    10071009                write(*,*) 'l,play(l) = ',l,play(l)/100
     
    10171019             t_mod_cas(l)= t_prof_cas(k2) - frac*(t_prof_cas(k2)-t_prof_cas(k1))
    10181020             theta_mod_cas(l)= th_prof_cas(k2) - frac*(th_prof_cas(k2)-th_prof_cas(k1))
    1019              if(theta_mod_cas(l)/=0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD)
     1021             if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD)
    10201022             thv_mod_cas(l)= thv_prof_cas(k2) - frac*(thv_prof_cas(k2)-thv_prof_cas(k1))
    10211023             thl_mod_cas(l)= thl_prof_cas(k2) - frac*(thl_prof_cas(k2)-thl_prof_cas(k1))
     
    10661068             t_mod_cas(l)= frac1*t_prof_cas(k1) - frac2*t_prof_cas(k2)
    10671069             theta_mod_cas(l)= frac1*th_prof_cas(k1) - frac2*th_prof_cas(k2)
    1068              if(theta_mod_cas(l)/=0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD)
     1070             if(theta_mod_cas(l).NE.0) t_mod_cas(l)= theta_mod_cas(l)*(play(l)/100000.)**(RD/RCPD)
    10691071             thv_mod_cas(l)= frac1*thv_prof_cas(k1) - frac2*thv_prof_cas(k2)
    10701072             thl_mod_cas(l)= frac1*thl_prof_cas(k1) - frac2*thl_prof_cas(k2)
     
    11631165    do l = 1, llm+1
    11641166
    1165        if (plev(l)>=plev_prof_cas(nlev_cas)) then
     1167       if (plev(l).ge.plev_prof_cas(nlev_cas)) then
    11661168
    11671169          mxcalc=l
     
    11691171          k2=0
    11701172
    1171           if (plev(l)<=plev_prof_cas(1)) then
     1173          if (plev(l).le.plev_prof_cas(1)) then
    11721174
    11731175             do k = 1, nlev_cas-1
    1174                 if (plev(l)<=plev_prof_cas(k).and. plev(l)>plev_prof_cas(k+1)) then
     1176                if (plev(l).le.plev_prof_cas(k).and. plev(l).gt.plev_prof_cas(k+1)) then
    11751177                   k1=k
    11761178                   k2=k+1
     
    11781180             enddo
    11791181
    1180              if (k1==0 .or. k2==0) then
     1182             if (k1.eq.0 .or. k2.eq.0) then
    11811183                write(*,*) 'PB! k1, k2 = ',k1,k2
    11821184                write(*,*) 'l,plev(l) = ',l,plev(l)/100
  • LMDZ6/trunk/libf/phylmd/dyn1d/old_1DUTILS_read_interp.h

    r5075 r5084  
    146146!program reading forcings of the TWP-ICE experiment
    147147
    148         use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,&
    149             nf_inq_dimid,nf_inq_dimlen
    150 
     148        use netcdf, only: nf90_get_var
    151149
    152150      implicit none
     151
     152      INCLUDE "netcdf.inc"
    153153
    154154      integer ntime,nlevel
     
    492492         subroutine catchaxis(nid,ttm,llm,time,lev,ierr)
    493493
    494          use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,&
    495             nf_inq_dimid,nf_inq_dimlen
     494         use netcdf, only: nf90_get_var
    496495
    497496         implicit none
     497         INCLUDE "netcdf.inc"
    498498         integer nid,ttm,llm
    499499         real*8 time(ttm)
     
    21702170
    21712171
    2172       use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,&
    2173             nf_inq_dimid,nf_inq_dimlen
     2172      use netcdf, only: nf90_get_var
    21742173      implicit none
     2174
     2175      INCLUDE "netcdf.inc"
    21752176
    21762177      integer ntime,nlevel
     
    23802381!program reading initial profils and forcings of the Dice case study
    23812382
    2382       use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,&
    2383             nf_inq_dimid,nf_inq_dimlen
     2383      use netcdf, only: nf90_get_var
    23842384
    23852385      implicit none
    23862386
     2387      INCLUDE "netcdf.inc"
    23872388      INCLUDE "YOMCST.h"
    23882389
     
    27142715!program reading initial profils and forcings of the Gabls4 case study
    27152716
    2716       use lmdz_netcdf, ONLY: nf_open,nf_nowrite,nf_noerr,nf_strerror,nf_inq_varid,nf90_get_var,&
    2717             nf_inq_dimid,nf_inq_dimlen
     2717      use netcdf, only: nf90_get_var
    27182718
    27192719      implicit none
     2720
     2721      INCLUDE "netcdf.inc"
    27202722
    27212723      integer ntime,nlevel,nsol
  • LMDZ6/trunk/libf/phylmd/dyn1d/old_1D_decl_cases.h

    r5075 r5084  
     1         INCLUDE "netcdf.inc"
    12
    23! Declarations specifiques au cas Toga
  • LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90

    r5075 r5084  
    4444   USE temps_mod, ONLY: annee_ref, calend, day_end, day_ini, day_ref, &
    4545                        itau_dyn, itau_phy, start_time, year_len
    46    USE phys_cal_mod, ONLY : year_len_phys_cal_mod => year_len
    47    USE mod_1D_cases_read, ONLY: interp_case_time ! used in included old_1D_read_forc_cases.h
    48 
     46   USE phys_cal_mod, ONLY : year_len_phys_cal_mod => year_len
    4947
    5048      implicit none
     
    368366      if (forcing_type <=0) THEN
    369367       forcing_les = .true.
    370       elseif (forcing_type ==1) THEN
     368      elseif (forcing_type .eq.1) THEN
    371369       forcing_radconv = .true.
    372       elseif (forcing_type ==2) THEN
     370      elseif (forcing_type .eq.2) THEN
    373371       forcing_toga    = .true.
    374       elseif (forcing_type ==3) THEN
     372      elseif (forcing_type .eq.3) THEN
    375373       forcing_GCM2SCM = .true.
    376       elseif (forcing_type ==4) THEN
     374      elseif (forcing_type .eq.4) THEN
    377375       forcing_twpice = .true.
    378       elseif (forcing_type ==5) THEN
     376      elseif (forcing_type .eq.5) THEN
    379377       forcing_rico = .true.
    380       elseif (forcing_type ==6) THEN
     378      elseif (forcing_type .eq.6) THEN
    381379       forcing_amma = .true.
    382       elseif (forcing_type ==7) THEN
     380      elseif (forcing_type .eq.7) THEN
    383381       forcing_dice = .true.
    384       elseif (forcing_type ==8) THEN
     382      elseif (forcing_type .eq.8) THEN
    385383       forcing_gabls4 = .true.
    386       elseif (forcing_type ==101) THEN ! Cindynamo starts 1-10-2011 0h
     384      elseif (forcing_type .eq.101) THEN ! Cindynamo starts 1-10-2011 0h
    387385       forcing_case = .true.
    388386       year_ini_cas=2011
     
    391389       heure_ini_cas=0.
    392390       pdt_cas=3*3600.         ! forcing frequency
    393       elseif (forcing_type ==102) THEN ! Bomex starts 24-6-1969 0h
     391      elseif (forcing_type .eq.102) THEN ! Bomex starts 24-6-1969 0h
    394392       forcing_case = .true.
    395393       year_ini_cas=1969
     
    398396       heure_ini_cas=0.
    399397       pdt_cas=1800.         ! forcing frequency
    400       elseif (forcing_type ==103) THEN ! Arm_cu starts 21-6-1997 11h30
     398      elseif (forcing_type .eq.103) THEN ! Arm_cu starts 21-6-1997 11h30
    401399       forcing_case2 = .true.
    402400       year_ini_cas=1997
     
    405403       heure_ini_cas=11.5
    406404       pdt_cas=1800.         ! forcing frequency
    407       elseif (forcing_type ==104) THEN ! rico starts 16-12-2004 0h
     405      elseif (forcing_type .eq.104) THEN ! rico starts 16-12-2004 0h
    408406       forcing_case2 = .true.
    409407       year_ini_cas=2004
     
    412410       heure_ini_cas=0.
    413411       pdt_cas=1800.         ! forcing frequency
    414       elseif (forcing_type ==105) THEN ! bomex starts 16-12-2004 0h
     412      elseif (forcing_type .eq.105) THEN ! bomex starts 16-12-2004 0h
    415413       forcing_case2 = .true.
    416414       year_ini_cas=1969
     
    419417       heure_ini_cas=0.
    420418       pdt_cas=1800.         ! forcing frequency
    421       elseif (forcing_type ==106) THEN ! ayotte_24SC starts 6-11-1992 0h
     419      elseif (forcing_type .eq.106) THEN ! ayotte_24SC starts 6-11-1992 0h
    422420       forcing_case2 = .true.
    423421       year_ini_cas=1992
     
    426424       heure_ini_cas=10.
    427425       pdt_cas=86400.        ! forcing frequency
    428       elseif (forcing_type ==113) THEN ! Arm_cu starts 21-6-1997 11h30
     426      elseif (forcing_type .eq.113) THEN ! Arm_cu starts 21-6-1997 11h30
    429427       forcing_SCM = .true.
    430428       year_ini_cas=1997
     
    434432       mth_ini_cas=1 ! pour le moment on compte depuis le debut de l'annee
    435433       call getin('time_ini',heure_ini_cas)
    436       elseif (forcing_type ==40) THEN
     434      elseif (forcing_type .eq.40) THEN
    437435       forcing_GCSSold = .true.
    438       elseif (forcing_type ==50) THEN
     436      elseif (forcing_type .eq.50) THEN
    439437       forcing_fire = .true.
    440       elseif (forcing_type ==59) THEN
     438      elseif (forcing_type .eq.59) THEN
    441439       forcing_sandu   = .true.
    442       elseif (forcing_type ==60) THEN
     440      elseif (forcing_type .eq.60) THEN
    443441       forcing_astex   = .true.
    444       elseif (forcing_type ==61) THEN
     442      elseif (forcing_type .eq.61) THEN
    445443       forcing_armcu = .true.
    446        IF(llm/=19.AND.llm/=40) stop 'Erreur nombre de niveaux !!'
     444       IF(llm.NE.19.AND.llm.NE.40) stop 'Erreur nombre de niveaux !!'
    447445      else
    448446       write (*,*) 'ERROR : unknown forcing_type ', forcing_type
     
    463461     jcode = iflag_nudge
    464462     do i = 1,nudge_max
    465        nudge(i) = mod(jcode,10) >= 1
     463       nudge(i) = mod(jcode,10) .ge. 1
    466464       jcode = jcode/10
    467465     enddo
     
    530528
    531529! Special case for arm_cu which lasts less than one day : 53100s !! (MPL 20111026)
    532       IF(forcing_type == 61) fnday=53100./86400.
    533       IF(forcing_type == 103) fnday=53100./86400.
     530      IF(forcing_type .EQ. 61) fnday=53100./86400.
     531      IF(forcing_type .EQ. 103) fnday=53100./86400.
    534532! Special case for amma which lasts less than one day : 64800s !! (MPL 20120216)
    535       IF(forcing_type == 6) fnday=64800./86400.
     533      IF(forcing_type .EQ. 6) fnday=64800./86400.
    536534!     IF(forcing_type .EQ. 6) fnday=50400./86400.
    537  IF(forcing_type == 8 ) fnday=129600./86400.
     535 IF(forcing_type .EQ. 8 ) fnday=129600./86400.
    538536      annee_ref = anneeref
    539537      mois = 1
     
    546544      day_end = day_ini + int(fnday)
    547545
    548       IF (forcing_type ==2) THEN
     546      IF (forcing_type .eq.2) THEN
    549547! Convert the initial date of Toga-Coare to Julian day
    550548      call ymds2ju                                                          &
    551549     & (year_ini_toga,mth_ini_toga,day_ini_toga,heure,day_ju_ini_toga)
    552550
    553       ELSEIF (forcing_type ==4) THEN
     551      ELSEIF (forcing_type .eq.4) THEN
    554552! Convert the initial date of TWPICE to Julian day
    555553      call ymds2ju                                                          &
    556554     & (year_ini_twpi,mth_ini_twpi,day_ini_twpi,heure_ini_twpi              &
    557555     & ,day_ju_ini_twpi)
    558       ELSEIF (forcing_type ==6) THEN
     556      ELSEIF (forcing_type .eq.6) THEN
    559557! Convert the initial date of AMMA to Julian day
    560558      call ymds2ju                                                          &
    561559     & (year_ini_amma,mth_ini_amma,day_ini_amma,heure_ini_amma              &
    562560     & ,day_ju_ini_amma)
    563       ELSEIF (forcing_type ==7) THEN
     561      ELSEIF (forcing_type .eq.7) THEN
    564562! Convert the initial date of DICE to Julian day
    565563      call ymds2ju                                                         &
    566564     & (year_ini_dice,mth_ini_dice,day_ini_dice,heure_ini_dice             &
    567565     & ,day_ju_ini_dice)
    568  ELSEIF (forcing_type ==8 ) THEN
     566 ELSEIF (forcing_type .eq.8 ) THEN
    569567! Convert the initial date of GABLS4 to Julian day
    570568      call ymds2ju                                                         &
    571569     & (year_ini_gabls4,mth_ini_gabls4,day_ini_gabls4,heure_ini_gabls4     &
    572570     & ,day_ju_ini_gabls4)
    573       ELSEIF (forcing_type >100) THEN
     571      ELSEIF (forcing_type .gt.100) THEN
    574572! Convert the initial date to Julian day
    575573      day_ini_cas=day_deb
     
    579577     & ,day_ju_ini_cas)
    580578      print*,'time case 2',day_ini_cas,day_ju_ini_cas
    581       ELSEIF (forcing_type ==59) THEN
     579      ELSEIF (forcing_type .eq.59) THEN
    582580! Convert the initial date of Sandu case to Julian day
    583581      call ymds2ju                                                          &
     
    585583     &    time_ini*3600.,day_ju_ini_sandu)
    586584
    587       ELSEIF (forcing_type ==60) THEN
     585      ELSEIF (forcing_type .eq.60) THEN
    588586! Convert the initial date of Astex case to Julian day
    589587      call ymds2ju                                                          &
     
    591589     &    time_ini*3600.,day_ju_ini_astex)
    592590
    593       ELSEIF (forcing_type ==61) THEN
     591      ELSEIF (forcing_type .eq.61) THEN
    594592! Convert the initial date of Arm_cu case to Julian day
    595593      call ymds2ju                                                          &
     
    598596      ENDIF
    599597
    600       IF (forcing_type >100) THEN
     598      IF (forcing_type .gt.100) THEN
    601599      daytime = day + heure_ini_cas/24. ! 1st day and initial time of the simulation
    602600      ELSE
     
    640638      call phys_state_var_init(read_climoz)
    641639
    642       if (ngrid/=klon) then
     640      if (ngrid.ne.klon) then
    643641         print*,'stop in inifis'
    644642         print*,'Probleme de dimensions :'
     
    704702      zlay=-rd*300.*log(play/psurf)/rg ! moved after reading profiles
    705703
    706       IF (forcing_type == 59) THEN
     704      IF (forcing_type .eq. 59) THEN
    707705! pour forcing_sandu, on cherche l'indice le plus proche de 700hpa#3000m
    708706      write(*,*) '***********************'
    709707      do l = 1, llm
    710708       write(*,*) 'l,play(l),presnivs(l): ',l,play(l),presnivs(l)
    711        if (trouve_700 .and. play(l)<=70000) then
     709       if (trouve_700 .and. play(l).le.70000) then
    712710         llm700=l
    713711         print *,'llm700,play=',llm700,play(l)/100.
     
    828826        print*,'avant phyredem'
    829827        pctsrf(1,:)=0.
    830           if (nat_surf==0.) then
     828          if (nat_surf.eq.0.) then
    831829          pctsrf(1,is_oce)=1.
    832830          pctsrf(1,is_ter)=0.
    833831          pctsrf(1,is_lic)=0.
    834832          pctsrf(1,is_sic)=0.
    835         else if (nat_surf == 1) then
     833        else if (nat_surf .eq. 1) then
    836834          pctsrf(1,is_oce)=0.
    837835          pctsrf(1,is_ter)=1.
    838836          pctsrf(1,is_lic)=0.
    839837          pctsrf(1,is_sic)=0.
    840         else if (nat_surf == 2) then
     838        else if (nat_surf .eq. 2) then
    841839          pctsrf(1,is_oce)=0.
    842840          pctsrf(1,is_ter)=0.
    843841          pctsrf(1,is_lic)=1.
    844842          pctsrf(1,is_sic)=0.
    845         else if (nat_surf == 3) then
     843        else if (nat_surf .eq. 3) then
    846844          pctsrf(1,is_oce)=0.
    847845          pctsrf(1,is_ter)=0.
     
    872870        pbl_tke(:,2,:)=1.e-2
    873871        PRINT *, ' pbl_tke dans lmdz1d '
    874         if (prt_level >= 5) then
     872        if (prt_level .ge. 5) then
    875873         DO nsrf = 1,4
    876874           PRINT *,'pbl_tke(1,:,',nsrf,') ',pbl_tke(1,:,nsrf)
     
    10231021      endif
    10241022!Al1 ================  end restart =================================
    1025       IF (ecrit_slab_oc==1) then
     1023      IF (ecrit_slab_oc.eq.1) then
    10261024         open(97,file='div_slab.dat',STATUS='UNKNOWN')
    1027        elseif (ecrit_slab_oc==0) then
     1025       elseif (ecrit_slab_oc.eq.0) then
    10281026         open(97,file='div_slab.dat',STATUS='OLD')
    10291027       endif
     
    10481046      it_end = nint(fnday*day_step)
    10491047!test JLD     it_end = 10
    1050       do while(it<=it_end)
    1051 
    1052        if (prt_level>=1) then
     1048      do while(it.le.it_end)
     1049
     1050       if (prt_level.ge.1) then
    10531051         print*,'XXXXXXXXXXXXXXXXXXX ITAP,day,time=',                       &
    10541052     &             it,day,time,it_end,day_step
     
    10561054       endif
    10571055!Al1 demande de restartphy.nc
    1058        if (it==it_end) lastcall=.True.
     1056       if (it.eq.it_end) lastcall=.True.
    10591057
    10601058!---------------------------------------------------------------------
     
    11511149
    11521150       if (forcing_toga .or. forcing_GCSSold .or. forcing_twpice            &
    1153      &    .or.forcing_amma .or. forcing_type==101) then
     1151     &    .or.forcing_amma .or. forcing_type.eq.101) then
    11541152         fcoriolis=0.0 ; ug=0. ; vg=0.
    11551153       endif
     
    11661164!on calcule dt_cooling
    11671165        do l=1,llm
    1168         if (play(l)>=20000.) then
     1166        if (play(l).ge.20000.) then
    11691167            dt_cooling(l)=-1.5/86400.
    1170         elseif ((play(l)>=10000.).and.((play(l)<20000.))) then
     1168        elseif ((play(l).ge.10000.).and.((play(l).lt.20000.))) then
    11711169            dt_cooling(l)=-1.5/86400.*(play(l)-10000.)/(10000.)-1./86400.*(20000.-play(l))/10000.*(temp(l)-200.)
    11721170        else
     
    12751273     &               +d_q_nudge(1:mxcalc,:) )
    12761274
    1277         if (prt_level>=3) then
     1275        if (prt_level.ge.3) then
    12781276          print *,                                                          &
    12791277     &    'physiq-> temp(1),dt_phys(1),d_t_adv(1),dt_cooling(1) ',         &
     
    13531351
    13541352!Al1
    1355       if (ecrit_slab_oc/=-1) close(97)
     1353      if (ecrit_slab_oc.ne.-1) close(97)
    13561354
    13571355!Al1 Call to 1D equivalent of dynredem (an,mois,jour,heure ?)
  • LMDZ6/trunk/libf/phylmd/grid_noro_m.F90

    r5075 r5084  
    435435! Purpose: Read parameters usually determined with grid_noro from a file.
    436436!===============================================================================
    437   USE lmdz_netcdf, ONLY: NF90_OPEN,  NF90_INQ_DIMID, NF90_INQUIRE_DIMENSION,        &
     437  USE netcdf, ONLY: NF90_OPEN,  NF90_INQ_DIMID, NF90_INQUIRE_DIMENSION,        &
    438438        NF90_NOERR, NF90_CLOSE, NF90_INQ_VARID, NF90_GET_VAR, NF90_STRERROR,   &
    439439        NF90_NOWRITE
  • LMDZ6/trunk/libf/phylmd/ice_sursat_mod.F90

    r5075 r5084  
    9696  USE mod_phys_lmdz_para, ONLY: scatter, bcast
    9797  USE print_control_mod, ONLY: lunout
    98   USE lmdz_netcdf, ONLY: nf90_get_var, nf_inq_varid, nf_inq_dimlen, nf_inq_dimid, &
    99       nf_open, nf_noerr
    10098
    10199  IMPLICIT NONE
    102100
    103101  INCLUDE "YOMCST.h"
     102  INCLUDE 'netcdf.inc'
    104103
    105104  !--------------------------------------------------------
     
    169168      iret = nf_inq_varid(ncida, 'lev', varid)
    170169      IF (iret /= NF_NOERR) CALL abort_physic(modname,'problem to get lev dimid aircraft_phy.nc file',1)
    171       iret = nf90_get_var(ncida, varid, zmida)
     170      iret = nf_get_var_double(ncida, varid, zmida)
    172171      IF (iret /= NF_NOERR) CALL abort_physic(modname,'problem to read zmida file',1)
    173172      !
    174173      iret = nf_inq_varid(ncida, 'emi_co2_aircraft', varid)  !--CO2 as a proxy for m flown -
    175174      IF (iret /= NF_NOERR) CALL abort_physic(modname,'problem to get emi_distance dimid aircraft_phy.nc file',1)
    176       iret = nf90_get_var(ncida, varid, pkm_airpl_glo)
     175      iret = nf_get_var_double(ncida, varid, pkm_airpl_glo)
    177176      IF (iret /= NF_NOERR) CALL abort_physic(modname,'problem to read pkm_airpl file',1)
    178177      !
    179178      iret = nf_inq_varid(ncida, 'emi_h2o_aircraft', varid)
    180179      IF (iret /= NF_NOERR) CALL abort_physic(modname,'problem to get emi_h2o_aircraft dimid aircraft_phy.nc file',1)
    181       iret = nf90_get_var(ncida, varid, ph2o_airpl_glo)
     180      iret = nf_get_var_double(ncida, varid, ph2o_airpl_glo)
    182181      IF (iret /= NF_NOERR) CALL abort_physic(modname,'problem to read ph2o_airpl file',1)
    183182      !
     
    277276  !
    278277  DO i=1, klon
    279    IF (latitude_deg(i)>=42.0.AND.latitude_deg(i)<=48.0) THEN
     278   IF (latitude_deg(i).GE.42.0.AND.latitude_deg(i).LE.48.0) THEN
    280279     flight_m(i,38) = 50000.0  !--5000 m of flight/second in grid cell x 10 scaling
    281280   ENDIF
     
    413412     pdf_b = pdf_k/(2.*sqrt(2.))
    414413     pdf_e1 = pdf_a+pdf_b
    415      IF (abs(pdf_e1)>=erf_lim) THEN
     414     IF (abs(pdf_e1).GE.erf_lim) THEN
    416415        pdf_e1 = sign(1.,pdf_e1)
    417416        pdf_N = max(0.,sign(rneb,pdf_e1))
     
    426425     ! On perd la memoire sur la temperature (sur qvc) pour garder
    427426     ! celle sur alpha_cld
    428      IF (pdf_N>1.) THEN
     427     IF (pdf_N.GT.1.) THEN
    429428        ! On inverse alpha_cld = int_qvc^infty P(q) dq
    430429        ! pour determiner qvc = f(alpha_cld)
     
    442441        pdf_a = log(qvc/q)/(pdf_k*sqrt(2.))
    443442        pdf_e1 = pdf_a+pdf_b
    444         IF (abs(pdf_e1)>=erf_lim) THEN
     443        IF (abs(pdf_e1).GE.erf_lim) THEN
    445444           pdf_e1 = sign(1.,pdf_e1)
    446445        ELSE
     
    462461        pdf_a = log(qvc*gamma_prec/q)/(pdf_k*sqrt(2.))
    463462        pdf_e2 = pdf_a+pdf_b
    464         IF (abs(pdf_e2)>=erf_lim) THEN
     463        IF (abs(pdf_e2).GE.erf_lim) THEN
    465464           pdf_e2 = sign(1.,pdf_e2)
    466465        ELSE
     
    469468        pdf_e2 = 0.5*(1.+pdf_e2) ! integrale sous P pour q > gamma qsat
    470469
    471         IF (abs(pdf_e1-pdf_e2)<eps) THEN
     470        IF (abs(pdf_e1-pdf_e2).LT.eps) THEN
    472471           pdf_N1 = pdf_N2
    473472        ELSE
     
    476475
    477476        ! Barriere qui traite le cas gamma_prec = 1.
    478         IF (pdf_N1<=0.) THEN
     477        IF (pdf_N1.LE.0.) THEN
    479478           pdf_N1 = 0.
    480            IF (pdf_e2>eps) THEN
     479           IF (pdf_e2.GT.eps) THEN
    481480              pdf_N2 = rneb/pdf_e2
    482481           ELSE
     
    488487     ! Physique 1
    489488     ! Sublimation
    490      IF (qvc<qsat) THEN
     489     IF (qvc.LT.qsat) THEN
    491490        pdf_a = log(qvc/q)/(pdf_k*sqrt(2.))
    492491        pdf_e1 = pdf_a+pdf_b
    493         IF (abs(pdf_e1)>=erf_lim) THEN
     492        IF (abs(pdf_e1).GE.erf_lim) THEN
    494493           pdf_e1 = sign(1.,pdf_e1)
    495494        ELSE
     
    499498        pdf_a = log(qsat/q)/(pdf_k*sqrt(2.))
    500499        pdf_e2 = pdf_a+pdf_b
    501         IF (abs(pdf_e2)>=erf_lim) THEN
     500        IF (abs(pdf_e2).GE.erf_lim) THEN
    502501           pdf_e2 = sign(1.,pdf_e2)
    503502        ELSE
     
    517516
    518517     ! Condensation
    519      IF (gamma_ss*qsat<gamma_prec*qvc) THEN
     518     IF (gamma_ss*qsat.LT.gamma_prec*qvc) THEN
    520519     
    521520        pdf_a = log(gamma_ss*qsat/q)/(pdf_k*sqrt(2.))
    522521        pdf_e1 = pdf_a+pdf_b
    523         IF (abs(pdf_e1)>=erf_lim) THEN
     522        IF (abs(pdf_e1).GE.erf_lim) THEN
    524523           pdf_e1 = sign(1.,pdf_e1)
    525524        ELSE
     
    529528        pdf_a = log(gamma_prec*qvc/q)/(pdf_k*sqrt(2.))
    530529        pdf_e2 = pdf_a+pdf_b
    531         IF (abs(pdf_e2)>=erf_lim) THEN
     530        IF (abs(pdf_e2).GE.erf_lim) THEN
    532531           pdf_e2 = sign(1.,pdf_e2)
    533532        ELSE
     
    546545        pdf_a = log(gamma_ss*qsat/q)/(pdf_k*sqrt(2.))
    547546        pdf_e1 = pdf_a+pdf_b
    548         IF (abs(pdf_e1)>=erf_lim) THEN
     547        IF (abs(pdf_e1).GE.erf_lim) THEN
    549548           pdf_e1 = sign(1.,pdf_e1)
    550549        ELSE
     
    563562     pdf_a = log(qsat/q)/(pdf_k*sqrt(2.))
    564563     pdf_e1 = pdf_a+pdf_b
    565      IF (abs(pdf_e1)>=erf_lim) THEN
     564     IF (abs(pdf_e1).GE.erf_lim) THEN
    566565        pdf_e1 = sign(1.,pdf_e1)
    567566     ELSE
     
    571570
    572571     pdf_e2 = pdf_a-pdf_b
    573      IF (abs(pdf_e2)>=erf_lim) THEN
     572     IF (abs(pdf_e2).GE.erf_lim) THEN
    574573        pdf_e2 = sign(1.,pdf_e2)
    575574     ELSE
     
    585584     pdf_a = log(max(qsat,qvc)/q)/(pdf_k*sqrt(2.))
    586585     pdf_e1 = pdf_a-pdf_b
    587      IF (abs(pdf_e1)>=erf_lim) THEN
     586     IF (abs(pdf_e1).GE.erf_lim) THEN
    588587        pdf_e1 = sign(1.,pdf_e1)
    589588     ELSE
     
    593592     pdf_a = log(min(gamma_ss*qsat,gamma_prec*qvc)/q)/(pdf_k*sqrt(2.))
    594593     pdf_e2 = pdf_a-pdf_b
    595      IF (abs(pdf_e2)>=erf_lim) THEN
     594     IF (abs(pdf_e2).GE.erf_lim) THEN
    596595        pdf_e2 = sign(1.,pdf_e2)
    597596     ELSE
     
    604603
    605604     ! Partie 2 (sous condition)
    606      IF (gamma_ss*qsat>gamma_prec*qvc) THEN
     605     IF (gamma_ss*qsat.GT.gamma_prec*qvc) THEN
    607606        pdf_a = log(gamma_ss*qsat/q)/(pdf_k*sqrt(2.))
    608607        pdf_e1 = pdf_a-pdf_b
    609         IF (abs(pdf_e1)>=erf_lim) THEN
     608        IF (abs(pdf_e1).GE.erf_lim) THEN
    610609           pdf_e1 = sign(1.,pdf_e1)
    611610        ELSE
     
    633632
    634633     ! Physique 2 : Turbulence
    635      IF (rneb>eps.AND.rneb<1.-eps) THEN ! rneb != 0 and != 1
     634     IF (rneb.GT.eps.AND.rneb.LT.1.-eps) THEN ! rneb != 0 and != 1
    636635       !
    637636       tke = pbl_tke(i,k,is_ave)
     
    643642       b_tur = (rneb*V_cell/4./PI/N_cld)**(1./3.)
    644643       ! On verifie que la longeur de melange n'est pas trop grande
    645        IF (L_tur>b_tur) THEN
     644       IF (L_tur.GT.b_tur) THEN
    646645          L_tur = b_tur
    647646       ENDIF
     
    666665       q_eq = q_eq/(V_env + V_cld)
    667666
    668        IF (q_eq>qsat) THEN
     667       IF (q_eq.GT.qsat) THEN
    669668          drnebclr = - V_clr/V_cell
    670669          dqclr = drnebclr*qclr/MAX(eps,rnebclr)
     
    704703     ! Barrieres
    705704     ! ISSR trop petite
    706      IF (rnebss<eps) THEN
     705     IF (rnebss.LT.eps) THEN
    707706        rneb = MIN(rneb + rnebss,1.0-eps) !--ajout OB barriere
    708707        qcld = qcld + qss
     
    712711
    713712     ! le nuage est trop petit
    714      IF (rneb<eps) THEN
     713     IF (rneb.LT.eps) THEN
    715714        ! s'il y a une ISSR on met tout dans l'ISSR, sinon dans le
    716715        ! clear sky
    717         IF (rnebss<eps) THEN
     716        IF (rnebss.LT.eps) THEN
    718717           rnebclr = 1.
    719718           rnebss = 0. !--ajout OB
     
    750749     !--critical T_LM below which no liquid contrail can form in exhaust
    751750     !Tcontr(i,k) = 226.69+9.43*log(Gcontr-0.053)+0.72*(log(Gcontr-0.053))**2 !--K
    752      IF (Gcontr > 0.1) THEN
     751     IF (Gcontr .GT. 0.1) THEN
    753752     !
    754753       Tcontr = 226.69+9.43*log(Gcontr-0.053)+0.72*(log(Gcontr-0.053))**2 !--K
     
    776775       !qcontr2 = eps_w*qcontr / (pplay+eps_w*qcontr)
    777776       !
    778        IF (t < Tcontr) THEN !--contrail formation is possible
     777       IF (t .LT. Tcontr) THEN !--contrail formation is possible
    779778       !
    780779       !--compute fractions of persistent (P) and non-persistent(N) contrail potential regions
    781780       !!IF (qcontr(i,k).GE.qsat) THEN
    782        IF (qcontr2>=qsat) THEN
     781       IF (qcontr2.GE.qsat) THEN
    783782         !--none of the unsaturated clear sky is prone for contrail formation
    784783         !!fcontrN(i,k) = 0.0
     
    788787         pdf_a = log(qsat/q)/(pdf_k*sqrt(2.))
    789788         pdf_e1 = pdf_a+pdf_b
    790          IF (abs(pdf_e1)>=erf_lim) THEN
     789         IF (abs(pdf_e1).GE.erf_lim) THEN
    791790            pdf_e1 = sign(1.,pdf_e1)
    792791         ELSE
     
    797796         pdf_a = log(MIN(qcontr2,qvc)/q)/(pdf_k*sqrt(2.))
    798797         pdf_e2 = pdf_a+pdf_b
    799          IF (abs(pdf_e2)>=erf_lim) THEN
     798         IF (abs(pdf_e2).GE.erf_lim) THEN
    800799            pdf_e2 = sign(1.,pdf_e2)
    801800         ELSE
     
    808807         pdf_a = log(qsat/q)/(pdf_k*sqrt(2.))
    809808         pdf_e1 = pdf_a+pdf_b
    810          IF (abs(pdf_e1)>=erf_lim) THEN
     809         IF (abs(pdf_e1).GE.erf_lim) THEN
    811810            pdf_e1 = sign(1.,pdf_e1)
    812811         ELSE
     
    817816         pdf_a = log(MIN(qcontr2,qvc)/q)/(pdf_k*sqrt(2.))
    818817         pdf_e2 = pdf_a+pdf_b
    819          IF (abs(pdf_e2)>=erf_lim) THEN
     818         IF (abs(pdf_e2).GE.erf_lim) THEN
    820819            pdf_e2 = sign(1.,pdf_e2)
    821820         ELSE
     
    828827         pdf_a = log(MAX(qsat,qvc)/q)/(pdf_k*sqrt(2.))
    829828         pdf_e1 = pdf_a+pdf_b
    830          IF (abs(pdf_e1)>=erf_lim) THEN
     829         IF (abs(pdf_e1).GE.erf_lim) THEN
    831830            pdf_e1 = sign(1.,pdf_e1)
    832831         ELSE
     
    837836         pdf_a = log(MIN(qcontr2,MIN(gamma_prec*qvc,gamma_ss*qsat))/q)/(pdf_k*sqrt(2.))
    838837         pdf_e2 = pdf_a+pdf_b
    839          IF (abs(pdf_e2)>=erf_lim) THEN
     838         IF (abs(pdf_e2).GE.erf_lim) THEN
    840839            pdf_e2 = sign(1.,pdf_e2)
    841840         ELSE
     
    848847         pdf_a = log(gamma_prec*qvc/q)/(pdf_k*sqrt(2.))
    849848         pdf_e1 = pdf_a+pdf_b
    850          IF (abs(pdf_e1)>=erf_lim) THEN
     849         IF (abs(pdf_e1).GE.erf_lim) THEN
    851850            pdf_e1 = sign(1.,pdf_e1)
    852851         ELSE
     
    857856         pdf_a = log(MIN(qcontr2,gamma_ss*qsat)/q)/(pdf_k*sqrt(2.))
    858857         pdf_e2 = pdf_a+pdf_b
    859          IF (abs(pdf_e2)>=erf_lim) THEN
     858         IF (abs(pdf_e2).GE.erf_lim) THEN
    860859            pdf_e2 = sign(1.,pdf_e2)
    861860         ELSE
     
    876875         pdf_a = log(qcontr2/q)/(pdf_k*sqrt(2.))
    877876         pdf_e1 = pdf_a+pdf_b   !--normalement pdf_b est deja defini
    878          IF (abs(pdf_e1)>=erf_lim) THEN
     877         IF (abs(pdf_e1).GE.erf_lim) THEN
    879878            pdf_e1 = sign(1.,pdf_e1)
    880879         ELSE
     
    884883         pdf_a = log(qsat/q)/(pdf_k*sqrt(2.))
    885884         pdf_e2 = pdf_a+pdf_b
    886          IF (abs(pdf_e2)>=erf_lim) THEN
     885         IF (abs(pdf_e2).GE.erf_lim) THEN
    887886            pdf_e2 = sign(1.,pdf_e2)
    888887         ELSE
  • LMDZ6/trunk/libf/phylmd/inlandsis/surf_inlandsis_mod.F90

    r5075 r5084  
    638638            END DO
    639639
    640             IF (sissnow(ikl) <= sn_low) THEN  !add snow
    641                 IF (isnoSV(ikl)>=1) THEN
     640            IF (sissnow(ikl) .LE. sn_low) THEN  !add snow
     641                IF (isnoSV(ikl).GE.1) THEN
    642642                    dzsnSV(ikl, 1) = dzsnSV(ikl, 1) + sn_add / max(ro__SV(ikl, 1), epsi)
    643643                    toicSV(ikl) = toicSV(ikl) - sn_add
     
    657657            END IF
    658658
    659             IF (sissnow(ikl) >= sn_upp) THEN  !thinnen snow layer below
     659            IF (sissnow(ikl) .ge. sn_upp) THEN  !thinnen snow layer below
    660660                dzsnSV(ikl, 1) = dzsnSV(ikl, 1) / sn_div
    661661                toicSV(ikl) = toicSV(ikl) + dzsnSV(ikl, 1) * ro__SV(ikl, 1) / sn_div
     
    10491049        ! Objet: Lecture du fichier de conditions initiales pour SISVAT
    10501050        !======================================================================
     1051        include "netcdf.inc"
    10511052        !    include "indicesol.h"
    10521053
     
    11171118
    11181119        DO isn = 1, nsno
    1119             IF (isn<=99) THEN
     1120            IF (isn.LE.99) THEN
    11201121                WRITE(str2, '(i2.2)') isn
    11211122                CALL get_field("AGESNOW" // str2, &
     
    11271128        ENDDO
    11281129        DO isn = 1, nsno
    1129             IF (isn<=99) THEN
     1130            IF (isn.LE.99) THEN
    11301131                WRITE(str2, '(i2.2)') isn
    11311132                CALL get_field("DZSNOW" // str2, &
     
    11371138        ENDDO
    11381139        DO isn = 1, nsno
    1139             IF (isn<=99) THEN
     1140            IF (isn.LE.99) THEN
    11401141                WRITE(str2, '(i2.2)') isn
    11411142                CALL get_field("G2SNOW" // str2, &
     
    11471148        ENDDO
    11481149        DO isn = 1, nsno
    1149             IF (isn<=99) THEN
     1150            IF (isn.LE.99) THEN
    11501151                WRITE(str2, '(i2.2)') isn
    11511152                CALL get_field("G1SNOW" // str2, &
     
    11571158        ENDDO
    11581159        DO isn = 1, nsismx
    1159             IF (isn<=99) THEN
     1160            IF (isn.LE.99) THEN
    11601161                WRITE(str2, '(i2.2)') isn
    11611162                CALL get_field("ETA" // str2, &
     
    11671168        ENDDO
    11681169        DO isn = 1, nsismx
    1169             IF (isn<=99) THEN
     1170            IF (isn.LE.99) THEN
    11701171                WRITE(str2, '(i2.2)') isn
    11711172                CALL get_field("RO" // str2, &
     
    11771178        ENDDO
    11781179        DO isn = 1, nsismx
    1179             IF (isn<=99) THEN
     1180            IF (isn.LE.99) THEN
    11801181                WRITE(str2, '(i2.2)') isn
    11811182                CALL get_field("TSS" // str2, &
     
    11871188        ENDDO
    11881189        DO isn = 1, nsno
    1189             IF (isn<=99) THEN
     1190            IF (isn.LE.99) THEN
    11901191                WRITE(str2, '(i2.2)') isn
    11911192                CALL get_field("HISTORY" // str2, &
     
    12861287        IMPLICIT none
    12871288
     1289        include "netcdf.inc"
    12881290        !    include "indicesol.h"
    12891291        !    include "dimsoil.h"
     
    14011403
    14021404            DO isn = 1, nsno
    1403                 IF (isn<=99) THEN
     1405                IF (isn.LE.99) THEN
    14041406                    WRITE(str2, '(i2.2)') isn
    14051407                    CALL put_field(pass, "AGESNOW" // str2, &
     
    14121414            ENDDO
    14131415            DO isn = 1, nsno
    1414                 IF (isn<=99) THEN
     1416                IF (isn.LE.99) THEN
    14151417                    WRITE(str2, '(i2.2)') isn
    14161418                    CALL put_field(pass, "DZSNOW" // str2, &
     
    14231425            ENDDO
    14241426            DO isn = 1, nsno
    1425                 IF (isn<=99) THEN
     1427                IF (isn.LE.99) THEN
    14261428                    WRITE(str2, '(i2.2)') isn
    14271429                    CALL put_field(pass, "G2SNOW" // str2, &
     
    14341436            ENDDO
    14351437            DO isn = 1, nsno
    1436                 IF (isn<=99) THEN
     1438                IF (isn.LE.99) THEN
    14371439                    WRITE(str2, '(i2.2)') isn
    14381440                    CALL put_field(pass, "G1SNOW" // str2, &
     
    14451447            ENDDO
    14461448            DO isn = 1, nsismx
    1447                 IF (isn<=99) THEN
     1449                IF (isn.LE.99) THEN
    14481450                    WRITE(str2, '(i2.2)') isn
    14491451                    CALL put_field(pass, "ETA" // str2, &
     
    14561458            ENDDO
    14571459            DO isn = 1, nsismx   !nsno
    1458                 IF (isn<=99) THEN
     1460                IF (isn.LE.99) THEN
    14591461                    WRITE(str2, '(i2.2)') isn
    14601462                    CALL put_field(pass, "RO" // str2, &
     
    14671469            ENDDO
    14681470            DO isn = 1, nsismx
    1469                 IF (isn<=99) THEN
     1471                IF (isn.LE.99) THEN
    14701472                    WRITE(str2, '(i2.2)') isn
    14711473                    CALL put_field(pass, "TSS" // str2, &
     
    14781480            ENDDO
    14791481            DO isn = 1, nsno
    1480                 IF (isn<=99) THEN
     1482                IF (isn.LE.99) THEN
    14811483                    WRITE(str2, '(i2.2)') isn
    14821484                    CALL put_field(pass, "HISTORY" // str2, &
  • LMDZ6/trunk/libf/phylmd/interfoce_lim.F90

    r5075 r5084  
    1010  USE mod_phys_lmdz_para
    1111  USE indice_sol_mod
    12   USE lmdz_netcdf, ONLY: nf90_get_var,nf_close,nf_noerr,nf_inq_varid,nf_open,nf_nowrite
    1312 
    1413  IMPLICIT NONE
     14 
     15  INCLUDE "netcdf.inc"
    1516
    1617! Cette routine sert d'interface entre le modele atmospherique et un fichier
     
    115116        fich = TRIM(fich)
    116117        ierr = NF_OPEN (fich, NF_NOWRITE,nid)
    117         IF (ierr/=NF_NOERR) THEN
     118        IF (ierr.NE.NF_NOERR) THEN
    118119           abort_message = 'Pb d''ouverture du fichier de conditions aux limites'
    119120           CALL abort_physic(modname,abort_message,1)
     
    136137              CALL abort_physic(modname,abort_message,1)
    137138           ENDIF
    138            ierr = nf90_get_var(nid,nvarid,pct_tmp(:,is_oce),start,epais)
     139#ifdef NC_DOUBLE
     140           ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,epais,pct_tmp(1,is_oce))
     141#else
     142           ierr = NF_GET_VARA_REAL(nid,nvarid,start,epais,pct_tmp(1,is_oce))
     143#endif
    139144           IF (ierr /= NF_NOERR) THEN
    140145              abort_message = 'Lecture echouee pour <FOCE>'
     
    149154              CALL abort_physic(modname,abort_message,1)
    150155           ENDIF
    151            ierr = nf90_get_var(nid,nvarid,pct_tmp(:,is_sic),start,epais)
     156#ifdef NC_DOUBLE
     157           ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,epais,pct_tmp(1,is_sic))
     158#else
     159           ierr = NF_GET_VARA_REAL(nid,nvarid,start,epais,pct_tmp(1,is_sic))
     160#endif
    152161           IF (ierr /= NF_NOERR) THEN
    153162              abort_message = 'Lecture echouee pour <FSIC>'
     
    162171              CALL abort_physic(modname,abort_message,1)
    163172           ENDIF
    164            ierr = nf90_get_var(nid,nvarid,pct_tmp(:,is_ter),start,epais)
     173#ifdef NC_DOUBLE
     174           ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,epais,pct_tmp(1,is_ter))
     175#else
     176           ierr = NF_GET_VARA_REAL(nid,nvarid,start,epais,pct_tmp(1,is_ter))
     177#endif
    165178           IF (ierr /= NF_NOERR) THEN
    166179              abort_message = 'Lecture echouee pour <FTER>'
     
    175188              CALL abort_physic(modname,abort_message,1)
    176189           ENDIF
    177            ierr = nf90_get_var(nid,nvarid,pct_tmp(:,is_lic),start,epais)
     190#ifdef NC_DOUBLE
     191           ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,epais,pct_tmp(1,is_lic))
     192#else
     193           ierr = NF_GET_VARA_REAL(nid,nvarid,start,epais,pct_tmp(1,is_lic))
     194#endif
    178195           IF (ierr /= NF_NOERR) THEN
    179196              abort_message = 'Lecture echouee pour <FLIC>'
     
    188205              CALL abort_physic(modname,abort_message,1)
    189206           ENDIF
    190            ierr = nf90_get_var(nid,nvarid,nat_lu,start,epais)
     207#ifdef NC_DOUBLE
     208           ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,epais, nat_lu)
     209#else
     210           ierr = NF_GET_VARA_REAL(nid,nvarid,start,epais, nat_lu)
     211#endif
    191212           IF (ierr /= NF_NOERR) THEN
    192213              abort_message = 'Lecture echouee pour <NAT>'
     
    218239           CALL abort_physic(modname,abort_message,1)
    219240        ENDIF
    220         ierr = nf90_get_var(nid,nvarid,sst_lu,start,epais)
     241#ifdef NC_DOUBLE
     242        ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,epais, sst_lu)
     243#else
     244        ierr = NF_GET_VARA_REAL(nid,nvarid,start,epais, sst_lu)
     245#endif
    221246        IF (ierr /= NF_NOERR) THEN
    222247           abort_message = 'Lecture echouee pour <SST>'
  • LMDZ6/trunk/libf/phylmd/iostart.F90

    r5075 r5084  
    11MODULE iostart
    2  
     2
    33PRIVATE
    44    INTEGER,SAVE :: nid_start
     
    3030
    3131  SUBROUTINE Open_startphy(filename)
    32   USE lmdz_netcdf, ONLY: nf90_nowrite, nf90_noerr,nf90_open
     32  USE netcdf
    3333  USE mod_phys_lmdz_para
    3434  IMPLICIT NONE
     
    3838    IF (is_mpi_root .AND. is_omp_root) THEN
    3939      ierr = NF90_OPEN (filename, NF90_NOWRITE,nid_start)
    40       IF (ierr/=NF90_NOERR) THEN
     40      IF (ierr.NE.NF90_NOERR) THEN
    4141        write(6,*)' Pb d''ouverture du fichier '//filename
    4242        write(6,*)' ierr = ', ierr
     
    4848
    4949  SUBROUTINE Close_startphy
    50   USE lmdz_netcdf, ONLY: nf90_close
     50  USE netcdf
    5151  USE mod_phys_lmdz_para
    5252  IMPLICIT NONE
     
    6161
    6262  FUNCTION Inquire_Field(Field_name)
    63   USE lmdz_netcdf, ONLY: nf90_noerr,nf90_inq_varid
     63  USE netcdf
    6464  USE mod_phys_lmdz_para
    6565  IMPLICIT NONE
     
    115115 
    116116  SUBROUTINE Get_field_rgen(field_name,field,field_size,found)
    117   USE lmdz_netcdf, ONLY: nf90_inq_varid,nf90_noerr,nf90_get_var
     117  USE netcdf
    118118  USE dimphy
    119119  USE geometry_mod
     
    251251
    252252  SUBROUTINE Get_var_rgen(var_name,var,var_size,found)
    253   USE lmdz_netcdf, ONLY: nf90_noerr,nf90_get_var,nf90_inq_varid
     253  USE netcdf
    254254  USE dimphy
    255255  USE mod_grid_phy_lmdz
     
    301301
    302302  SUBROUTINE open_restartphy(filename)
    303   USE lmdz_netcdf, ONLY: nf90_create,nf90_clobber,nf90_64bit_offset,nf90_noerr,nf90_strerror,&
    304           nf90_global,nf90_put_att,nf90_def_dim
     303  USE netcdf
    305304  USE mod_phys_lmdz_para, ONLY: is_master
    306305  USE mod_grid_phy_lmdz, ONLY: klon_glo
     
    333332 
    334333  SUBROUTINE enddef_restartphy
    335   USE lmdz_netcdf, ONLY: nf90_enddef
     334  USE netcdf
    336335  USE mod_phys_lmdz_para
    337336  IMPLICIT NONE
     
    343342
    344343  SUBROUTINE close_restartphy
    345   USE lmdz_netcdf, ONLY: nf90_close
     344  USE netcdf
    346345  USE mod_phys_lmdz_para
    347346  IMPLICIT NONE
     
    386385 
    387386  SUBROUTINE put_field_rgen(pass, field_name,title,field,field_size)
    388   USE lmdz_netcdf, ONLY: nf90_def_var,nf90_format,nf90_put_att,nf90_inq_varid,nf90_put_var
     387  USE netcdf
    389388  USE dimphy
    390389  USE geometry_mod
     
    425424         
    426425!      ierr = NF90_REDEF (nid_restart)
    427       ierr = NF90_DEF_VAR (nid_restart, field_name, NF90_FORMAT,(/ idim /),nvarid)
     426#ifdef NC_DOUBLE
     427      ierr = NF90_DEF_VAR (nid_restart, field_name, NF90_DOUBLE,(/ idim /),nvarid)
     428#else
     429      ierr = NF90_DEF_VAR (nid_restart, field_name, NF90_FLOAT,(/ idim /),nvarid)
     430#endif
    428431      IF (LEN_TRIM(title) > 0) ierr = NF90_PUT_ATT (nid_restart,nvarid,"title", title)
    429432!      ierr = NF90_ENDDEF(nid_restart)
     
    509512
    510513  SUBROUTINE put_var_rgen(pass, var_name,title,var,var_size)
    511   USE lmdz_netcdf, ONLY: nf90_format,nf90_def_var,nf90_put_var,nf90_inq_varid,nf90_put_att
     514  USE netcdf
    512515  USE dimphy
    513516  USE mod_phys_lmdz_para
     
    534537!      ierr = NF90_REDEF (nid_restart)
    535538
    536         ierr = NF90_DEF_VAR (nid_restart, var_name, NF90_FORMAT,(/ idim1 /),nvarid)
     539#ifdef NC_DOUBLE
     540        ierr = NF90_DEF_VAR (nid_restart, var_name, NF90_DOUBLE,(/ idim1 /),nvarid)
     541#else
     542        ierr = NF90_DEF_VAR (nid_restart, var_name, NF90_FLOAT,(/ idim1 /),nvarid)
     543#endif
    537544        IF (LEN_TRIM(title)>0) ierr = NF90_PUT_ATT (nid_restart,nvarid,"title", title)
    538545!      ierr = NF90_ENDDEF(nid_restart)
  • LMDZ6/trunk/libf/phylmd/iotd_ecrit.F90

    r5075 r5084  
    2222!=================================================================
    2323 
    24       USE lmdz_netcdf, ONLY: nf90_put_var,nf_inq_varid,nf_enddef,nf_redef,nf_sync,nf_noerr,&
    25               nf_float,nf_def_var
     24      use netcdf, only: nf90_put_var
    2625      implicit none
    2726
    2827! Commons
    2928
     29      INCLUDE "netcdf.inc"
    3030      INCLUDE "iotd.h"
    3131
     
    9090
    9191!! Quand on tombe sur la premiere variable on ajoute un pas de temps
    92         if (nom==firstnom) then
     92        if (nom.eq.firstnom) then
    9393        ! We have identified a "first call" (at given date)
    9494
     
    114114!        print*,'IOTD Date ,varid,nid,ntime,date',varid,nid,ntime,date
    115115
    116            if (ierr/=NF_NOERR) then
     116           if (ierr.ne.NF_NOERR) then
    117117              write(*,*) "***** PUT_VAR matter in writediagfi_nc"
    118118              write(*,*) "***** with time"
     
    175175      ierr= NF90_PUT_VAR(nid,varid,zx,corner,edges)
    176176
    177       if (ierr/=NF_NOERR) then
     177      if (ierr.ne.NF_NOERR) then
    178178           write(*,*) "***** PUT_VAR problem in writediagfi"
    179179           write(*,*) "***** with ",nom
  • LMDZ6/trunk/libf/phylmd/iotd_fin.F90

    r5075 r5084  
    1 SUBROUTINE iotd_fin
    2   USE lmdz_netcdf, ONLY : nf_close
     1      SUBROUTINE iotd_fin
     2      IMPLICIT NONE
    33
    4   IMPLICIT NONE
     4!=======================================================================
     5!
     6!   Auteur:  F. Hourdin
     7!   -------
     8!
     9!   Objet:
     10!   ------
     11!   Light interface for netcdf outputs. can be used outside LMDZ
     12!
     13!=======================================================================
    514
    6   !=======================================================================
    7   !
    8   !   Auteur:  F. Hourdin
    9   !   -------
    10   !
    11   !   Objet:
    12   !   ------
    13   !   Light interface for netcdf outputs. can be used outside LMDZ
    14   !
    15   !=======================================================================
    1615
    17   INCLUDE "iotd.h"
    18   integer ierr
     16      INCLUDE "netcdf.inc"
     17      INCLUDE "iotd.h"
     18      integer ierr
    1919
    20   !   Arguments:
    21   !   ----------
     20!   Arguments:
     21!   ----------
    2222
    23   ierr = NF_close(nid)
     23      ierr=NF_close(nid)
    2424
    25 END
     25      END
  • LMDZ6/trunk/libf/phylmd/iotd_ini.F90

    r5075 r5084  
    11      SUBROUTINE iotd_ini(fichnom,iim,jjm,llm,prlon,prlat,pcoordv,jour0,mois0,an0,t0,timestep,calendrier)
    2             USE lmdz_netcdf, ONLY: nf_enddef,nf_put_att_text,nf_float,nf_def_var,nf_redef,&
    3                     nf_global,nf_def_dim,nf_create,nf_clobber,nf_unlimited,nf90_put_var
    42      IMPLICIT NONE
    53
     
    1816!   -------------
    1917
     18      INCLUDE "netcdf.inc"
    2019      INCLUDE "iotd.h"
    2120
     
    3231      real  px(1000)
    3332      character (len=10) :: nom
    34       real(kind=4) rlon(iim),rlat(jjm),coordv(llm)
     33      real*4 rlon(iim),rlat(jjm),coordv(llm)
    3534
    3635!   Local:
     
    7271      n_names_iotd_def=0
    7372      open(99,file='iotd.def',form='formatted',status='old',iostat=ierr)
    74          if ( ierr==0 ) then
     73         if ( ierr.eq.0 ) then
    7574            ierr=0
    7675            do while (ierr==0)
     
    113112      ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',12,"degrees_east")
    114113      ierr=NF_ENDDEF(nid)
    115       ierr=nf90_put_var(nid,nvarid,rlon)
     114      ierr=NF_PUT_VAR_REAL(nid,nvarid,rlon)
    116115       print*,ierr
    117116
     
    122121      ierr=NF_PUT_ATT_TEXT(nid,nvarid,'units',13,"degrees_north")
    123122      ierr=NF_ENDDEF(nid)
    124       ierr=nf90_put_var(nid,nvarid,rlat)
     123      ierr=NF_PUT_VAR_REAL(nid,nvarid,rlat)
    125124!
    126125! ---- vertical ------------
     
    136135      endif
    137136      ierr=NF_ENDDEF(nid)
    138       ierr=nf90_put_var(nid,nvarid,coordv)
     137      ierr=NF_PUT_VAR_REAL(nid,nvarid,coordv)
    139138
    140139!
  • LMDZ6/trunk/libf/phylmd/limit_read_mod.F90

    r5075 r5084  
    165165    USE mod_phys_lmdz_para
    166166    USE surface_data, ONLY : type_ocean, ok_veget
    167     USE lmdz_netcdf, ONLY:nf90_get_var,nf90_inq_varid,nf90_close,nf90_inquire_dimension,&
    168             nf90_inquire,nf90_get_att,nf90_inq_dimid,nf90_nowrite,nf90_noerr,nf90_open
     167    USE netcdf
    169168    USE indice_sol_mod
    170169    USE phys_cal_mod, ONLY : calend, year_len
  • LMDZ6/trunk/libf/phylmd/limit_slab.F90

    r5075 r5084  
    66  USE mod_grid_phy_lmdz, ONLY: klon_glo
    77  USE mod_phys_lmdz_para
    8   USE lmdz_netcdf, ONLY: nf90_close,nf90_get_var,nf90_inq_varid,nf90_nowrite,nf90_noerr,nf90_open
     8  USE netcdf
    99  USE indice_sol_mod
    1010  USE ocean_slab_mod, ONLY: nslay
     
    9999        END IF
    100100        ! Try next layers if more than 1
    101         IF ((nslay>1).AND.read_bils) THEN
     101        IF ((nslay.GT.1).AND.read_bils) THEN
    102102          DO i=2,nslay
    103103            WRITE(str2,'(i2.2)') i
    104104            ierr = NF90_INQ_VARID(nid,'BILS_OCE'//str2, nvarid)
    105             IF (ierr==NF90_NOERR) THEN
     105            IF (ierr.EQ.NF90_NOERR) THEN
    106106              ierr = NF90_GET_VAR(nid,nvarid,bils_glo(:,i),start,epais)
    107107            ENDIF
  • LMDZ6/trunk/libf/phylmd/mo_simple_plumes.F90

    r5075 r5084  
    2424MODULE MO_SIMPLE_PLUMES
    2525
    26     USE lmdz_netcdf, ONLY:nf90_get_var,nf90_close,nf90_inq_varid,nf90_inq_dimid,&
    27             nf90_inquire_dimension,nf90_noerr,nf90_nowrite,nf90_open
     26  USE netcdf
    2827
    2928  IMPLICIT NONE
  • LMDZ6/trunk/libf/phylmd/moy_undefSTD.F90

    r5075 r5084  
    33
    44SUBROUTINE moy_undefstd(itap, itapm1)
    5   USE lmdz_netcdf, ONLY: nf90_fill_real
     5  USE netcdf
    66  USE dimphy
    77#ifdef CPP_IOIPSL
  • LMDZ6/trunk/libf/phylmd/open_climoz_m.F90

    r5075 r5084  
    1313!-------------------------------------------------------------------------------
    1414  USE netcdf95, ONLY: nf95_open, nf95_close, nf95_gw_var, nf95_inq_varid
    15   USE lmdz_netcdf,   ONLY: nf90_nowrite
     15  USE netcdf,   ONLY: nf90_nowrite
    1616  USE mod_phys_lmdz_mpi_data,      ONLY: is_mpi_root
    1717  USE mod_phys_lmdz_mpi_transfert, ONLY: bcast_mpi
  • LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90

    r5075 r5084  
    415415    use lmdz_blowing_snow_ini, only : zeta_bs
    416416    USE wxios, ONLY: missing_val_xios => missing_val, using_xios
    417     USE lmdz_netcdf, only: missing_val_netcdf => nf90_fill_real
     417    USE netcdf, only: missing_val_netcdf => nf90_fill_real
    418418
    419419     
  • LMDZ6/trunk/libf/phylmd/phyaqua_mod.F90

    r5073 r5084  
    133133    !END IF
    134134   
    135     if (year_len/=360) then
     135    if (year_len.ne.360) then
    136136      write (*,*) year_len
    137137      call abort_physic("iniaqua", 'iniaqua: 360 day calendar is required !', 1)
     
    517517    IMPLICIT NONE
    518518
     519    include "netcdf.inc"
     520
    519521    INTEGER, INTENT (IN) :: klon
    520522    REAL, INTENT (IN) :: phy_nat(klon, 360)
     
    570572    USE mod_phys_lmdz_transfert_para, ONLY: gather
    571573    USE phys_cal_mod, ONLY: year_len
    572     use lmdz_netcdf, ONLY: nf90_def_var, nf90_put_var, nf90_get_var, nf_strerror, nf_close, &
    573             nf_enddef, nf_put_att_text, nf_unlimited, nf_noerr, nf_global, nf_clobber, &
    574             nf_64bit_offset, nf90_format, nf_def_dim, nf_create
     574    use netcdf, only: nf90_def_var, nf90_double, nf90_float
    575575    IMPLICIT NONE
     576    include "netcdf.inc"
    576577
    577578    INTEGER, INTENT (IN) :: klon
     
    615616      dims(2) = ntim
    616617
    617       ierr = nf90_def_var(nid, 'TEMPS', NF90_FORMAT, [ntim], id_tim)
     618#ifdef NC_DOUBLE
     619      ierr = nf90_def_var(nid, 'TEMPS', nf90_double, [ntim], id_tim)
     620#else
     621      ierr = nf90_def_var(nid, 'TEMPS', nf90_float, [ntim], id_tim)
     622#endif
    618623      ierr = nf_put_att_text(nid, id_tim, 'title', 17, 'Jour dans l annee')
    619624
    620       ierr = nf90_def_var(nid, 'NAT', NF90_FORMAT, dims, id_nat)
     625#ifdef NC_DOUBLE
     626      ierr = nf90_def_var(nid, 'NAT', nf90_double, dims, id_nat)
     627#else
     628      ierr = nf90_def_var(nid, 'NAT', nf90_float, dims, id_nat)
     629#endif
    621630      ierr = nf_put_att_text(nid, id_nat, 'title', 23, &
    622631        'Nature du sol (0,1,2,3)')
    623632
    624       ierr = nf90_def_var(nid, 'SST', NF90_FORMAT, dims, id_sst)
     633#ifdef NC_DOUBLE
     634      ierr = nf90_def_var(nid, 'SST', nf90_double, dims, id_sst)
     635#else
     636      ierr = nf90_def_var(nid, 'SST', nf90_float, dims, id_sst)
     637#endif
    625638      ierr = nf_put_att_text(nid, id_sst, 'title', 35, &
    626639        'Temperature superficielle de la mer')
    627640
    628       ierr = nf90_def_var(nid, 'BILS', NF90_FORMAT, dims, id_bils)
     641#ifdef NC_DOUBLE
     642      ierr = nf90_def_var(nid, 'BILS', nf90_double, dims, id_bils)
     643#else
     644      ierr = nf90_def_var(nid, 'BILS', nf90_float, dims, id_bils)
     645#endif
    629646      ierr = nf_put_att_text(nid, id_bils, 'title', 32, &
    630647        'Reference flux de chaleur au sol')
    631648
    632       ierr = nf90_def_var(nid, 'ALB', NF90_FORMAT, dims, id_alb)
     649#ifdef NC_DOUBLE
     650      ierr = nf90_def_var(nid, 'ALB', nf90_double, dims, id_alb)
     651#else
     652      ierr = nf90_def_var(nid, 'ALB', nf90_float, dims, id_alb)
     653#endif
    633654      ierr = nf_put_att_text(nid, id_alb, 'title', 19, 'Albedo a la surface')
    634655
    635       ierr = nf90_def_var(nid, 'RUG', NF90_FORMAT, dims, id_rug)
     656#ifdef NC_DOUBLE
     657      ierr = nf90_def_var(nid, 'RUG', nf90_double, dims, id_rug)
     658#else
     659      ierr = nf90_def_var(nid, 'RUG', nf90_float, dims, id_rug)
     660#endif
    636661      ierr = nf_put_att_text(nid, id_rug, 'title', 8, 'Rugosite')
    637662
    638       ierr = nf90_def_var(nid, 'FTER', NF90_FORMAT, dims, id_fter)
     663#ifdef NC_DOUBLE
     664      ierr = nf90_def_var(nid, 'FTER', nf90_double, dims, id_fter)
     665#else
     666      ierr = nf90_def_var(nid, 'FTER', nf90_float, dims, id_fter)
     667#endif
    639668      ierr = nf_put_att_text(nid, id_fter, 'title',10,'Frac. Land')
    640       ierr = nf90_def_var(nid, 'FOCE', NF90_FORMAT, dims, id_foce)
     669#ifdef NC_DOUBLE
     670      ierr = nf90_def_var(nid, 'FOCE', nf90_double, dims, id_foce)
     671#else
     672      ierr = nf90_def_var(nid, 'FOCE', nf90_float, dims, id_foce)
     673#endif
    641674      ierr = nf_put_att_text(nid, id_foce, 'title',11,'Frac. Ocean')
    642       ierr = nf90_def_var(nid, 'FSIC', NF90_FORMAT, dims, id_fsic)
     675#ifdef NC_DOUBLE
     676      ierr = nf90_def_var(nid, 'FSIC', nf90_double, dims, id_fsic)
     677#else
     678      ierr = nf90_def_var(nid, 'FSIC', nf90_float, dims, id_fsic)
     679#endif
    643680      ierr = nf_put_att_text(nid, id_fsic, 'title',13,'Frac. Sea Ice')
    644       ierr = nf90_def_var(nid, 'FLIC', NF90_FORMAT, dims, id_flic)
     681#ifdef NC_DOUBLE
     682      ierr = nf90_def_var(nid, 'FLIC', nf90_double, dims, id_flic)
     683#else
     684      ierr = nf90_def_var(nid, 'FLIC', nf90_float, dims, id_flic)
     685#endif
    645686      ierr = nf_put_att_text(nid, id_flic, 'title',14,'Frac. Land Ice')
    646687
     
    654695      ! write the 'times'
    655696      DO k = 1, year_len
    656         ierr = nf90_put_var(nid, id_tim, k, [k])
     697#ifdef NC_DOUBLE
     698        ierr = nf_put_var1_double(nid, id_tim, k, dble(k))
     699#else
     700        ierr = nf_put_var1_real(nid, id_tim, k, float(k))
     701#endif
    657702        IF (ierr/=nf_noerr) THEN
    658703          WRITE (*, *) 'writelim error with temps(k),k=', k
     
    667712    CALL gather(phy_nat, phy_glo)
    668713    IF (is_master) THEN
    669       ierr = nf90_put_var(nid, id_nat, phy_glo)
     714#ifdef NC_DOUBLE
     715      ierr = nf_put_var_double(nid, id_nat, phy_glo)
     716#else
     717      ierr = nf_put_var_real(nid, id_nat, phy_glo)
     718#endif
    670719      IF (ierr/=nf_noerr) THEN
    671720        WRITE (*, *) 'writelim error with phy_nat'
     
    676725    CALL gather(phy_sst, phy_glo)
    677726    IF (is_master) THEN
    678       ierr = nf90_put_var(nid, id_sst, phy_glo)
     727#ifdef NC_DOUBLE
     728      ierr = nf_put_var_double(nid, id_sst, phy_glo)
     729#else
     730      ierr = nf_put_var_real(nid, id_sst, phy_glo)
     731#endif
    679732      IF (ierr/=nf_noerr) THEN
    680733        WRITE (*, *) 'writelim error with phy_sst'
     
    685738    CALL gather(phy_bil, phy_glo)
    686739    IF (is_master) THEN
    687       ierr = nf90_put_var(nid, id_bils, phy_glo)
     740#ifdef NC_DOUBLE
     741      ierr = nf_put_var_double(nid, id_bils, phy_glo)
     742#else
     743      ierr = nf_put_var_real(nid, id_bils, phy_glo)
     744#endif
    688745      IF (ierr/=nf_noerr) THEN
    689746        WRITE (*, *) 'writelim error with phy_bil'
     
    694751    CALL gather(phy_alb, phy_glo)
    695752    IF (is_master) THEN
    696       ierr = nf90_put_var(nid, id_alb, phy_glo)
     753#ifdef NC_DOUBLE
     754      ierr = nf_put_var_double(nid, id_alb, phy_glo)
     755#else
     756      ierr = nf_put_var_real(nid, id_alb, phy_glo)
     757#endif
    697758      IF (ierr/=nf_noerr) THEN
    698759        WRITE (*, *) 'writelim error with phy_alb'
     
    703764    CALL gather(phy_rug, phy_glo)
    704765    IF (is_master) THEN
    705       ierr = nf90_put_var(nid, id_rug, phy_glo)
     766#ifdef NC_DOUBLE
     767      ierr = nf_put_var_double(nid, id_rug, phy_glo)
     768#else
     769      ierr = nf_put_var_real(nid, id_rug, phy_glo)
     770#endif
    706771      IF (ierr/=nf_noerr) THEN
    707772        WRITE (*, *) 'writelim error with phy_rug'
     
    712777    CALL gather(phy_fter, phy_glo)
    713778    IF (is_master) THEN
    714       ierr = nf90_put_var(nid, id_fter, phy_glo)
     779#ifdef NC_DOUBLE
     780      ierr = nf_put_var_double(nid, id_fter, phy_glo)
     781#else
     782      ierr = nf_put_var_real(nid, id_fter, phy_glo)
     783#endif
    715784      IF (ierr/=nf_noerr) THEN
    716785        WRITE (*, *) 'writelim error with phy_fter'
     
    721790    CALL gather(phy_foce, phy_glo)
    722791    IF (is_master) THEN
    723       ierr = nf90_put_var(nid, id_foce, phy_glo)
     792#ifdef NC_DOUBLE
     793      ierr = nf_put_var_double(nid, id_foce, phy_glo)
     794#else
     795      ierr = nf_put_var_real(nid, id_foce, phy_glo)
     796#endif
    724797      IF (ierr/=nf_noerr) THEN
    725798        WRITE (*, *) 'writelim error with phy_foce'
     
    730803    CALL gather(phy_fsic, phy_glo)
    731804    IF (is_master) THEN
    732       ierr = nf90_put_var(nid, id_fsic, phy_glo)
     805#ifdef NC_DOUBLE
     806      ierr = nf_put_var_double(nid, id_fsic, phy_glo)
     807#else
     808      ierr = nf_put_var_real(nid, id_fsic, phy_glo)
     809#endif
    733810      IF (ierr/=nf_noerr) THEN
    734811        WRITE (*, *) 'writelim error with phy_fsic'
     
    739816    CALL gather(phy_flic, phy_glo)
    740817    IF (is_master) THEN
    741       ierr = nf90_put_var(nid, id_flic, phy_glo)
     818#ifdef NC_DOUBLE
     819      ierr = nf_put_var_double(nid, id_flic, phy_glo)
     820#else
     821      ierr = nf_put_var_real(nid, id_flic, phy_glo)
     822#endif
    742823      IF (ierr/=nf_noerr) THEN
    743824        WRITE (*, *) 'writelim error with phy_flic'
     
    9391020      END IF
    9401021
    941       if (type_profil==20) then
     1022      if (type_profil.EQ.20) then
    9421023      print*,'Profile SST 20'
    9431024!     Méthode 13 "Qmax2K" plateau réel �|  l'Equateur augmenté +2K
     
    9481029      endif
    9491030
    950       if (type_profil==21) then
     1031      if (type_profil.EQ.21) then
    9511032      print*,'Profile SST 21'
    9521033!     Méthode 13 "Qmax2K" plateau réel �|  l'Equateur augmenté +2K
  • LMDZ6/trunk/libf/phylmd/phyetat0_mod.F90

    r5075 r5084  
    4040  USE time_phylmdz_mod, ONLY: init_iteration, pdtphys, itau_phy
    4141  USE wxios, ONLY: missing_val_xios => missing_val, using_xios
    42   use lmdz_netcdf, only: missing_val_netcdf => nf90_fill_real
     42  use netcdf, only: missing_val_netcdf => nf90_fill_real
    4343  use config_ocean_skin_m, only: activate_ocean_skin
    4444
     
    152152  tab_cntrl(6)=nbapp_rad
    153153
    154   IF (iflag_cycle_diurne>=1) tab_cntrl( 7) = iflag_cycle_diurne
     154  IF (iflag_cycle_diurne.GE.1) tab_cntrl( 7) = iflag_cycle_diurne
    155155  IF (soil_model) tab_cntrl( 8) =1.
    156156  IF (new_oliq) tab_cntrl( 9) =1.
     
    251251       + pctsrf(1 : klon, is_lic)
    252252  DO i = 1 , klon
    253      IF ( abs(fractint(i) - zmasq(i) ) > EPSFRA ) THEN
     253     IF ( abs(fractint(i) - zmasq(i) ) .GT. EPSFRA ) THEN
    254254        WRITE(*, *) 'phyetat0: attention fraction terre pas ',  &
    255255             'coherente ', i, zmasq(i), pctsrf(i, is_ter) &
     
    262262       + pctsrf(1 : klon, is_sic)
    263263  DO i = 1 , klon
    264      IF ( abs( fractint(i) - (1. - zmasq(i))) > EPSFRA ) THEN
     264     IF ( abs( fractint(i) - (1. - zmasq(i))) .GT. EPSFRA ) THEN
    265265        WRITE(*, *) 'phyetat0 attention fraction ocean pas ',  &
    266266             'coherente ', i, zmasq(i) , pctsrf(i, is_oce) &
     
    290290  DO nsrf = 1, nbsrf
    291291     DO isw=1, nsw
    292         IF (isw>99) THEN
     292        IF (isw.GT.99) THEN
    293293           PRINT*, "Trop de bandes SW"
    294294           call abort_physic("phyetat0", "", 1)
     
    313313
    314314   DO isoil=1, nsoilmx
    315         IF (isoil>99) THEN
     315        IF (isoil.GT.99) THEN
    316316           PRINT*, "Trop de couches "
    317317           call abort_physic("phyetat0", "", 1)
     
    416416  !          dummy values (as is the case when generated by ce0l,
    417417  !          or by iniaqua)
    418   IF ( (maxval(q_ancien)==minval(q_ancien))       .OR. &
    419        (maxval(ql_ancien)==minval(ql_ancien))     .OR. &
    420        (maxval(qs_ancien)==minval(qs_ancien))     .OR. &
    421        (maxval(rneb_ancien)==minval(rneb_ancien)) .OR. &
    422        (maxval(prw_ancien)==minval(prw_ancien))   .OR. &
    423        (maxval(prlw_ancien)==minval(prlw_ancien)) .OR. &
    424        (maxval(prsw_ancien)==minval(prsw_ancien)) .OR. &
    425        (maxval(t_ancien)==minval(t_ancien)) ) THEN
     418  IF ( (maxval(q_ancien).EQ.minval(q_ancien))       .OR. &
     419       (maxval(ql_ancien).EQ.minval(ql_ancien))     .OR. &
     420       (maxval(qs_ancien).EQ.minval(qs_ancien))     .OR. &
     421       (maxval(rneb_ancien).EQ.minval(rneb_ancien)) .OR. &
     422       (maxval(prw_ancien).EQ.minval(prw_ancien))   .OR. &
     423       (maxval(prlw_ancien).EQ.minval(prlw_ancien)) .OR. &
     424       (maxval(prsw_ancien).EQ.minval(prsw_ancien)) .OR. &
     425       (maxval(t_ancien).EQ.minval(t_ancien)) ) THEN
    426426    ancien_ok=.false.
    427427  ENDIF
    428428
    429429  IF (ok_bs) THEN
    430     IF ( (maxval(qbs_ancien)==minval(qbs_ancien))       .OR. &
    431          (maxval(prbsw_ancien)==minval(prbsw_ancien)) ) THEN
     430    IF ( (maxval(qbs_ancien).EQ.minval(qbs_ancien))       .OR. &
     431         (maxval(prbsw_ancien).EQ.minval(prbsw_ancien)) ) THEN
    432432       ancien_ok=.false.
    433433    ENDIF
     
    549549  IF ( type_ocean == 'slab' ) THEN
    550550      CALL ocean_slab_init(phys_tstep, pctsrf)
    551       IF (nslay==1) THEN
     551      IF (nslay.EQ.1) THEN
    552552        found=phyetat0_get(tslab,["tslab01","tslab  "],"tslab",0.)
    553553      ELSE
     
    578578              PRINT*, "Initialisation a 0/1m suivant fraction glace"
    579579              seaice(:)=0.
    580               WHERE (pctsrf(:,is_sic)>EPSFRA)
     580              WHERE (pctsrf(:,is_sic).GT.EPSFRA)
    581581                  seaice=917.
    582582              ENDWHERE
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r5066 r5084  
    352352!$OMP THREADPRIVATE(d_deltat_vdf, d_deltaq_vdf)
    353353!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_vdf, d_dens_vdf
    354 !!!$OMP THREADPRIVATE(d_s_vdf, d_dens_vdf)
     354!!!OMP THREADPRIVATE(d_s_vdf, d_dens_vdf)
    355355    REAL, SAVE, ALLOCATABLE,DIMENSION(:,:)          :: d_deltat_the, d_deltaq_the
    356356!$OMP THREADPRIVATE(d_deltat_the, d_deltaq_the)
    357357!!!      REAL,ALLOCATABLE,SAVE,DIMENSION(:)          :: d_s_the, d_dens_the
    358 !!!$OMP THREADPRIVATE(d_s_the, d_dens_the)
     358!!!OMP THREADPRIVATE(d_s_the, d_dens_the)
    359359      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)           :: d_deltat_ajs_cv, d_deltaq_ajs_cv
    360360!$OMP THREADPRIVATE(d_deltat_ajs_cv, d_deltaq_ajs_cv)
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r5075 r5084  
    456456    USE ioipsl, ONLY: histend, histsync
    457457    USE iophy, ONLY: set_itau_iophy, histwrite_phy
    458     USE lmdz_netcdf, ONLY: nf90_fill_real
     458    USE netcdf, ONLY: nf90_fill_real
    459459    USE print_control_mod, ONLY: prt_level,lunout
    460460    ! ug Pour les sorties XIOS
     
    555555      kmax_100m=1
    556556      DO k=1, klev-1
    557         IF (presnivs(k)>0.97*101325.) kmax_100m = k !--finding out max level for 100 m with a good margin
     557        IF (presnivs(k).GT.0.97*101325.) kmax_100m = k !--finding out max level for 100 m with a good margin
    558558      ENDDO
    559559    ENDIF
     
    782782          DO k=1, kmax_100m-1                                      !--we could stop much lower
    783783            DO i=1,klon
    784               IF (z(i,k)<100..AND.z(i,k+1)>=100.) THEN
     784              IF (z(i,k).LT.100..AND.z(i,k+1).GE.100.) THEN
    785785                wind100m(i)=SQRT( (u_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(u_seri(i,k+1)-u_seri(i,k)))**2.0 + &
    786786                                  (v_seri(i,k)+(100.-z(i,k))/(z(i,k+1)-z(i,k))*(v_seri(i,k+1)-v_seri(i,k)))**2.0 )
     
    794794         !--polynomial fit for 14,Vestas,1074,V136/3450 kW windmill - Olivier
    795795         DO i=1,klon
    796            IF (pctsrf(i,is_ter)>0.05 .AND. wind100m(i)/=missing_val) THEN
     796           IF (pctsrf(i,is_ter).GT.0.05 .AND. wind100m(i).NE.missing_val) THEN
    797797             x=wind100m(i)
    798              IF (x<=3.0 .OR. x>=22.5) THEN
     798             IF (x.LE.3.0 .OR. x.GE.22.5) THEN
    799799               zx_tmp_fi2d(i)=0.0
    800              ELSE IF (x>=10.0) THEN
     800             ELSE IF (x.GE.10.0) THEN
    801801               zx_tmp_fi2d(i)=1.0
    802802             ELSE
     
    815815         !--polynomial fit for 14,Vestas,867,V164/8000 kW - Olivier
    816816         DO i=1,klon
    817            IF (pctsrf(i,is_oce)>0.05 .AND. wind100m(i)/=missing_val) THEN
     817           IF (pctsrf(i,is_oce).GT.0.05 .AND. wind100m(i).NE.missing_val) THEN
    818818             x=wind100m(i)
    819              IF (x<=3.0 .OR. x>=25.5) THEN
     819             IF (x.LE.3.0 .OR. x.GE.25.5) THEN
    820820               zx_tmp_fi2d(i)=0.0
    821              ELSE IF (x>=12.5) THEN
     821             ELSE IF (x.GE.12.5) THEN
    822822               zx_tmp_fi2d(i)=1.0
    823823             ELSE
     
    14071407       CALL histwrite_phy(o_uwat, uwat)
    14081408       CALL histwrite_phy(o_vwat, vwat)
    1409        IF (iflag_con>=3) THEN ! sb
     1409       IF (iflag_con.GE.3) THEN ! sb
    14101410          CALL histwrite_phy(o_cape, cape)
    14111411          CALL histwrite_phy(o_pbase, ema_pcb)
     
    15121512            DO k=1, nlevSTD
    15131513              bb2=clevSTD(k)
    1514               IF (bb2=="850".OR.bb2=="700".OR. &
    1515                   bb2=="500".OR.bb2=="200".OR. &
    1516                   bb2=="100".OR. &
    1517                   bb2=="50".OR.bb2=="10") THEN
     1514              IF (bb2.EQ."850".OR.bb2.EQ."700".OR. &
     1515                  bb2.EQ."500".OR.bb2.EQ."200".OR. &
     1516                  bb2.EQ."100".OR. &
     1517                  bb2.EQ."50".OR.bb2.EQ."10") THEN
    15181518                  ll=ll+1
    15191519                  CALL histwrite_phy(o_uSTDlevs(ll),ulevSTD(:,k))
     
    15301530       IF (vars_defined) THEN
    15311531          DO i=1, klon
    1532              IF (pctsrf(i,is_oce)>epsfra.OR. &
    1533                   pctsrf(i,is_sic)>epsfra) THEN
     1532             IF (pctsrf(i,is_oce).GT.epsfra.OR. &
     1533                  pctsrf(i,is_sic).GT.epsfra) THEN
    15341534                zx_tmp_fi2d(i) = (ftsol(i, is_oce) * pctsrf(i,is_oce)+ &
    15351535                     ftsol(i, is_sic) * pctsrf(i,is_sic))/ &
     
    15431543
    15441544       ! Couplage convection-couche limite
    1545        IF (iflag_con>=3) THEN
     1545       IF (iflag_con.GE.3) THEN
    15461546          IF (iflag_coupl>=1) THEN
    15471547             CALL histwrite_phy(o_ale_bl, ale_bl)
     
    15501550       ENDIF !(iflag_con.GE.3)
    15511551       ! Wakes
    1552        IF (iflag_con==3) THEN
     1552       IF (iflag_con.EQ.3) THEN
    15531553          CALL histwrite_phy(o_Mipsh, Mipsh)
    15541554          IF (iflag_wake>=1) THEN
     
    16201620          CALL histwrite_phy(o_fqd, fqd)
    16211621       ENDIF !(iflag_con.EQ.3)
    1622        IF (iflag_con==3.OR.iflag_con==30) THEN
     1622       IF (iflag_con.EQ.3.OR.iflag_con.EQ.30) THEN
    16231623          ! sortie RomP convection descente insaturee iflag_con=30
    16241624          ! etendue a iflag_con=3 (jyg)
     
    16511651       IF (type_ocean=='slab ') THEN
    16521652          CALL histwrite_phy(o_slab_bils, slab_wfbils)
    1653           IF (nslay==1) THEN
     1653          IF (nslay.EQ.1) THEN
    16541654              IF (vars_defined) zx_tmp_fi2d(:)=tslab(:,1)
    16551655              CALL histwrite_phy(o_tslab, zx_tmp_fi2d)
     
    16691669          ENDIF
    16701670          IF (slab_hdiff) THEN
    1671             IF (nslay==1) THEN
     1671            IF (nslay.EQ.1) THEN
    16721672                IF (vars_defined) zx_tmp_fi2d(:)=dt_hdiff(:,1)
    16731673                CALL histwrite_phy(o_slab_hdiff, zx_tmp_fi2d)
     
    16761676            ENDIF
    16771677          ENDIF
    1678           IF (slab_ekman>0) THEN
    1679             IF (nslay==1) THEN
     1678          IF (slab_ekman.GT.0) THEN
     1679            IF (nslay.EQ.1) THEN
    16801680                IF (vars_defined) zx_tmp_fi2d(:)=dt_ekman(:,1)
    16811681                CALL histwrite_phy(o_slab_ekman, zx_tmp_fi2d)
     
    17021702       IF (vars_defined) THEN
    17031703          DO i=1, klon
    1704              IF (zt2m(i)<=273.15) then
     1704             IF (zt2m(i).LE.273.15) then
    17051705                zx_tmp_fi2d(i)=MAX(0.,rh2m(i)*100.)
    17061706             ELSE
     
    17441744!This is warranted by treating INCA aerosols as offline aerosols
    17451745#ifndef CPP_ECRAD
    1746        IF (flag_aerosol>0) THEN
     1746       IF (flag_aerosol.GT.0) THEN
    17471747          IF (type_trac/='inca' .OR. config_inca=='aeNP') THEN
    17481748
     
    17771777       ENDIF
    17781778       !--STRAT AER
    1779        IF (flag_aerosol>0.OR.flag_aerosol_strat>0) THEN
     1779       IF (flag_aerosol.GT.0.OR.flag_aerosol_strat.GT.0) THEN
    17801780          DO naero = 1, naero_tot
    17811781             CALL histwrite_phy(o_tausumaero(naero),tausum_aero(:,2,naero))
    17821782          ENDDO
    17831783       ENDIF
    1784        IF (flag_aerosol_strat>0) THEN
     1784       IF (flag_aerosol_strat.GT.0) THEN
    17851785          CALL histwrite_phy(o_tausumaero_lw,tausum_aero(:,6,id_STRAT_phy))
    17861786       ENDIF
     
    19331933          CALL histwrite_phy(o_sollwai, zx_tmp_fi2d)
    19341934       ENDIF
    1935        IF (flag_aerosol>0.AND.ok_cdnc) THEN
     1935       IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
    19361936          CALL histwrite_phy(o_scdnc, scdnc)
    19371937          CALL histwrite_phy(o_cldncl, cldncl)
     
    20022002#endif
    20032003
    2004        IF (flag_aerosol_strat==2) THEN
     2004       IF (flag_aerosol_strat.EQ.2) THEN
    20052005         CALL histwrite_phy(o_stratomask, stratomask)
    20062006       ENDIF
     
    20302030       CALL histwrite_phy(o_rnebjn, zx_tmp_fi3d)
    20312031       CALL histwrite_phy(o_rhum, zx_rh)
    2032        IF (iflag_ice_thermo > 0) THEN
     2032       IF (iflag_ice_thermo .GT. 0) THEN
    20332033          IF (vars_defined) zx_tmp_fi3d = zx_rhl * 100.
    20342034          CALL histwrite_phy(o_rhl, zx_tmp_fi3d)
     
    21112111       CALL histwrite_phy(o_dqlphy2d,  zx_tmp_fi2d)
    21122112
    2113        IF (nqo==3) THEN
     2113       IF (nqo.EQ.3) THEN
    21142114       CALL histwrite_phy(o_dqsphy,  d_qx(:,:,isol))
    21152115       IF (vars_defined) CALL water_int(klon,klev,d_qx(:,:,isol),zmasse,zx_tmp_fi2d)
     
    21952195       ENDIF
    21962196       CALL histwrite_phy(o_dtcon, zx_tmp_fi3d)
    2197        IF (iflag_thermals==0) THEN
     2197       IF (iflag_thermals.EQ.0) THEN
    21982198          IF (vars_defined) THEN
    21992199             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
     
    22012201          ENDIF
    22022202          CALL histwrite_phy(o_tntc, zx_tmp_fi3d)
    2203        ELSE IF(iflag_thermals>=1.AND.iflag_wake==1) THEN
     2203       ELSE IF(iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
    22042204          IF (vars_defined) THEN
    22052205             zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys + &
     
    22182218       CALL histwrite_phy(o_dqcon2d, zx_tmp_fi2d)
    22192219
    2220        IF (iflag_thermals==0) THEN
     2220       IF (iflag_thermals.EQ.0) THEN
    22212221          IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys
    22222222          CALL histwrite_phy(o_tnhusc, zx_tmp_fi3d)
    2223        ELSE IF (iflag_thermals>=1.AND.iflag_wake==1) THEN
     2223       ELSE IF (iflag_thermals.GE.1.AND.iflag_wake.EQ.1) THEN
    22242224          IF (vars_defined) THEN
    22252225             zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys + &
     
    26942694             DO k=1, nlevSTD
    26952695                DO i=1, klon
    2696                    IF (O3STD(i,k)/=missing_val) THEN
     2696                   IF (O3STD(i,k).NE.missing_val) THEN
    26972697                      zx_tmp_fi3d_STD(i,k) = O3STD(i,k) * 1.e+9
    26982698                   ELSE
     
    27072707                DO k=1, nlevSTD
    27082708                   DO i=1, klon
    2709                       IF (O3daySTD(i,k)/=missing_val) THEN
     2709                      IF (O3daySTD(i,k).NE.missing_val) THEN
    27102710                         zx_tmp_fi3d_STD(i,k) = O3daySTD(i,k) * 1.e+9
    27112711                      ELSE
  • LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90

    r5075 r5084  
    1010! Declaration des variables
    1111      USE dimphy
    12       USE lmdz_netcdf, only: nf90_fill_real
     12      USE netcdf, only: nf90_fill_real
    1313      INTEGER, PARAMETER :: nlevSTD=17
    1414      INTEGER, PARAMETER :: nlevSTD8=8
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r5075 r5084  
    4848    USE mod_phys_lmdz_para
    4949    USE netcdf95, only: nf95_close
    50     USE lmdz_netcdf, only: nf90_fill_real     ! IM for NMC files
     50    USE netcdf, only: nf90_fill_real     ! IM for NMC files
    5151    USE open_climoz_m, only: open_climoz ! ozone climatology from a file
    5252    USE ozonecm_m, only: ozonecm ! ozone of J.-F. Royer
     
    12501250    !lwoff=y : offset LW CRE for radiation code and other schemes
    12511251    REAL, SAVE :: betalwoff
    1252     !$OMP THREADPRIVATE(betalwoff)
     1252    !OMP THREADPRIVATE(betalwoff)
    12531253!
    12541254    INTEGER :: nbtr_tmp ! Number of tracer inside concvl
  • LMDZ6/trunk/libf/phylmd/plevel.F90

    r5075 r5084  
    77  ! ================================================================
    88  ! ================================================================
    9   USE lmdz_netcdf, ONLY: nf90_fill_real
     9  USE netcdf
    1010  USE dimphy
    1111#ifdef CPP_IOIPSL
  • LMDZ6/trunk/libf/phylmd/plevel_new.F90

    r5075 r5084  
    88  ! ================================================================
    99  ! ================================================================
     10  USE netcdf
    1011  USE dimphy
    1112#ifdef CPP_IOIPSL
  • LMDZ6/trunk/libf/phylmd/press_coefoz_m.F90

    r5075 r5084  
    2424
    2525    use netcdf95, only: nf95_open, nf95_close, nf95_gw_var, nf95_inq_varid
    26     use lmdz_netcdf, only: nf90_nowrite
     26    use netcdf, only: nf90_nowrite
    2727
    2828    use mod_phys_lmdz_mpi_data, only: is_mpi_root
  • LMDZ6/trunk/libf/phylmd/read_map2D.F90

    r5075 r5084  
    33! Return variable for the given timestep.
    44  USE dimphy
    5   USE lmdz_netcdf, ONLY: nf90_open,nf90_close,nf90_nowrite,nf90_noerr,nf90_get_var,nf90_inq_varid
     5  USE netcdf
    66  USE mod_grid_phy_lmdz
    77  USE mod_phys_lmdz_para
  • LMDZ6/trunk/libf/phylmd/read_pstoke.F90

    r5075 r5084  
    1717  ! ******************************************************************************
    1818
    19   USE lmdz_netcdf, ONLY: nf90_open,nf90_inq_varid,nf90_nowrite,nf90_get_var,nf_inq_dim,&
    20           nf_inq_dimid
     19  USE netcdf
    2120  USE dimphy
    2221  USE indice_sol_mod
     
    2423
    2524  IMPLICIT NONE
     25
     26  include "netcdf.inc"
    2627
    2728  INTEGER klono, klevo, imo, jmo
  • LMDZ6/trunk/libf/phylmd/read_pstoke0.F90

    r5075 r5084  
    1616  ! ******************************************************************************
    1717
    18   USE lmdz_netcdf, ONLY: nf_inq_dimid,nf_inq_dim,nf90_get_var,nf90_inq_varid,nf90_open,&
    19           nf90_nowrite
     18  USE netcdf
    2019  USE dimphy
    2120  USE indice_sol_mod
     
    2322
    2423  IMPLICIT NONE
     24
     25  include "netcdf.inc"
    2526
    2627  INTEGER kon, kev, zkon, zkev
     
    252253    ! niveaux de pression
    253254
    254     status = nf90_get_var(ncidp, varidpl, pl, [1], [kev])
     255    status = nf_get_vara_real(ncidp, varidpl, 1, kev, pl)
    255256
    256257    ! lecture de aire et phis
     
    269270    ! **** Geopotentiel au sol ***************************************
    270271    ! phis
    271     status = nf90_get_var(ncidp, varidps, phisfi2, start, count)
     272#ifdef NC_DOUBLE
     273    status = nf_get_vara_double(ncidp, varidps, start, count, phisfi2)
     274#else
     275    status = nf_get_vara_real(ncidp, varidps, start, count, phisfi2)
     276#endif
    272277    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, phisfi2, phisfi)
    273278
    274279    ! **** Aires des mails aux sol ************************************
    275280    ! aire
    276     status = nf90_get_var(ncidp, varidai, airefi2, start, count)
     281#ifdef NC_DOUBLE
     282    status = nf_get_vara_double(ncidp, varidai, start, count, airefi2)
     283#else
     284    status = nf_get_vara_real(ncidp, varidai, start, count, airefi2)
     285#endif
    277286    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, airefi2, airefi)
    278287  ELSE
     
    301310
    302311    ! abder t
    303     status = nf90_get_var(ncidp, varidt, t2, start, count)
     312#ifdef NC_DOUBLE
     313    status = nf_get_vara_double(ncidp, varidt, start, count, t2)
     314#else
     315    status = nf_get_vara_real(ncidp, varidt, start, count, t2)
     316#endif
    304317    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, t2, t)
    305318
     
    307320    ! ********************************************
    308321    ! mfu
    309     status = nf90_get_var(ncidp, varidmfu, mfu2, start, count)
     322#ifdef NC_DOUBLE
     323    status = nf_get_vara_double(ncidp, varidmfu, start, count, mfu2)
     324#else
     325    status = nf_get_vara_real(ncidp, varidmfu, start, count, mfu2)
     326#endif
    310327    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, mfu2, mfu)
    311328
    312329    ! mfd
    313     status = nf90_get_var(ncidp, varidmfd, mfd2, start, count)
     330#ifdef NC_DOUBLE
     331    status = nf_get_vara_double(ncidp, varidmfd, start, count, mfd2)
     332#else
     333    status = nf_get_vara_real(ncidp, varidmfd, start, count, mfd2)
     334#endif
    314335    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, mfd2, mfd)
    315336
    316337    ! en_u
    317     status = nf90_get_var(ncidp, varidenu, en_u2, start, count)
     338#ifdef NC_DOUBLE
     339    status = nf_get_vara_double(ncidp, varidenu, start, count, en_u2)
     340#else
     341    status = nf_get_vara_real(ncidp, varidenu, start, count, en_u2)
     342#endif
    318343    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, en_u2, en_u)
    319344
    320345    ! de_u
    321     status = nf90_get_var(ncidp, variddeu, de_u2, start, count)
     346#ifdef NC_DOUBLE
     347    status = nf_get_vara_double(ncidp, variddeu, start, count, de_u2)
     348#else
     349    status = nf_get_vara_real(ncidp, variddeu, start, count, de_u2)
     350#endif
    322351    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, de_u2, de_u)
    323352
    324353    ! en_d
    325     status = nf90_get_var(ncidp, varidend, en_d2, start, count)
     354#ifdef NC_DOUBLE
     355    status = nf_get_vara_double(ncidp, varidend, start, count, en_d2)
     356#else
     357    status = nf_get_vara_real(ncidp, varidend, start, count, en_d2)
     358#endif
    326359    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, en_d2, en_d)
    327360
    328361    ! de_d
    329     status = nf90_get_var(ncidp, varidded, de_d2, start, count)
     362#ifdef NC_DOUBLE
     363    status = nf_get_vara_double(ncidp, varidded, start, count, de_d2)
     364#else
     365    status = nf_get_vara_real(ncidp, varidded, start, count, de_d2)
     366#endif
    330367    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, de_d2, de_d)
    331368
     
    334371    ! coefh
    335372    PRINT *, 'LECTURE de coefh a irec =', irec
    336     status = nf90_get_var(ncidp, varidch, coefh2, start, count)
     373#ifdef NC_DOUBLE
     374    status = nf_get_vara_double(ncidp, varidch, start, count, coefh2)
     375#else
     376    status = nf_get_vara_real(ncidp, varidch, start, count, coefh2)
     377#endif
    337378    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, coefh2, coefh)
    338379    ! call dump2d(iip1,jjp1,coefh2(1,2),'COEFH2READ   ')
     
    343384    ! Thermiques
    344385    PRINT *, 'LECTURE de fm_therm a irec =', irec
    345     status = nf90_get_var(ncidp, varidfmth, fm_therm2, start, count)
     386#ifdef NC_DOUBLE
     387    status = nf_get_vara_double(ncidp, varidfmth, start, count, fm_therm2)
     388#else
     389    status = nf_get_vara_real(ncidp, varidfmth, start, count, fm_therm2)
     390#endif
    346391    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, fm_therm2, fm_therm)
    347392    PRINT *, 'LECTURE de en_therm a irec =', irec
    348     status = nf90_get_var(ncidp, varidenth, en_therm2, start, count)
     393#ifdef NC_DOUBLE
     394    status = nf_get_vara_double(ncidp, varidenth, start, count, en_therm2)
     395#else
     396    status = nf_get_vara_real(ncidp, varidenth, start, count, en_therm2)
     397#endif
    349398    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, en_therm2, en_therm)
    350399
     
    352401    ! *******************************************
    353402    ! frac_impa
    354     status = nf90_get_var(ncidp, varidfi, frac_impa2, start, count)
     403#ifdef NC_DOUBLE
     404    status = nf_get_vara_double(ncidp, varidfi, start, count, frac_impa2)
     405#else
     406    status = nf_get_vara_real(ncidp, varidfi, start, count, frac_impa2)
     407#endif
    355408    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, frac_impa2, frac_impa)
    356409
    357410    ! frac_nucl
    358411
    359     status = nf90_get_var(ncidp, varidfn, frac_nucl2, start, count)
     412#ifdef NC_DOUBLE
     413    status = nf_get_vara_double(ncidp, varidfn, start, count, frac_nucl2)
     414#else
     415    status = nf_get_vara_real(ncidp, varidfn, start, count, frac_nucl2)
     416#endif
    360417    CALL gr_ecrit_fi(kev, kon, nbp_lon, nbp_lat, frac_nucl2, frac_nucl)
    361418
     
    369426    ! pyu1
    370427    PRINT *, 'LECTURE de yu1 a irec =', irec
    371     status = nf90_get_var(ncidp, varidyu1, pyu12, start, count)
     428#ifdef NC_DOUBLE
     429    status = nf_get_vara_double(ncidp, varidyu1, start, count, pyu12)
     430#else
     431    status = nf_get_vara_real(ncidp, varidyu1, start, count, pyu12)
     432#endif
    372433    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, pyu12, pyu1)
    373434
    374435    ! pyv1
    375436    PRINT *, 'LECTURE de yv1 a irec =', irec
    376     status = nf90_get_var(ncidp, varidyv1, pyv12, start, count)
     437#ifdef NC_DOUBLE
     438    status = nf_get_vara_double(ncidp, varidyv1, start, count, pyv12)
     439#else
     440    status = nf_get_vara_real(ncidp, varidyv1, start, count, pyv12)
     441#endif
    377442    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, pyv12, pyv1)
    378443
     
    380445    ! ftsol1
    381446    PRINT *, 'LECTURE de ftsol1 a irec =', irec
    382     status = nf90_get_var(ncidp, varidfts1, ftsol12, start, count)
     447#ifdef NC_DOUBLE
     448    status = nf_get_vara_double(ncidp, varidfts1, start, count, ftsol12)
     449#else
     450    status = nf_get_vara_real(ncidp, varidfts1, start, count, ftsol12)
     451#endif
    383452    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, ftsol12, ftsol1)
    384453
    385454    ! ftsol2
    386455    PRINT *, 'LECTURE de ftsol2 a irec =', irec
    387     status = nf90_get_var(ncidp, varidfts2, ftsol22, start, count)
     456#ifdef NC_DOUBLE
     457    status = nf_get_vara_double(ncidp, varidfts2, start, count, ftsol22)
     458#else
     459    status = nf_get_vara_real(ncidp, varidfts2, start, count, ftsol22)
     460#endif
    388461    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, ftsol22, ftsol2)
    389462
    390463    ! ftsol3
    391464    PRINT *, 'LECTURE de ftsol3 a irec =', irec
    392     status = nf90_get_var(ncidp, varidfts3, ftsol32, start, count)
     465#ifdef NC_DOUBLE
     466    status = nf_get_vara_double(ncidp, varidfts3, start, count, ftsol32)
     467#else
     468    status = nf_get_vara_real(ncidp, varidfts3, start, count, ftsol32)
     469#endif
    393470    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, ftsol32, ftsol3)
    394471
    395472    ! ftsol4
    396     status = nf90_get_var(ncidp, varidfts4, ftsol42, start, count)
     473#ifdef NC_DOUBLE
     474    status = nf_get_vara_double(ncidp, varidfts4, start, count, ftsol42)
     475#else
     476    status = nf_get_vara_real(ncidp, varidfts4, start, count, ftsol42)
     477#endif
    397478    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, ftsol42, ftsol4)
    398479
    399480    ! **** Nature sol ********************************************
    400481    ! psrf1
    401     status = nf90_get_var(ncidp, varidpsr1, psrf12, start, count)
     482#ifdef NC_DOUBLE
     483    status = nf_get_vara_double(ncidp, varidpsr1, start, count, psrf12)
     484#else
     485    status = nf_get_vara_real(ncidp, varidpsr1, start, count, psrf12)
     486#endif
    402487    ! call dump2d(iip1-1,jjm+1,psrf12,'PSRF1NC')
    403488    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, psrf12, psrf1)
    404489
    405490    ! psrf2
    406     status = nf90_get_var(ncidp, varidpsr2, psrf22, start, count)
     491#ifdef NC_DOUBLE
     492    status = nf_get_vara_double(ncidp, varidpsr2, start, count, psrf22)
     493#else
     494    status = nf_get_vara_real(ncidp, varidpsr2, start, count, psrf22)
     495#endif
    407496    ! call dump2d(iip1-1,jjm+1,psrf22,'PSRF2NC')
    408497    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, psrf22, psrf2)
    409498
    410499    ! psrf3
    411     status = nf90_get_var(ncidp, varidpsr3, psrf32, start, count)
     500#ifdef NC_DOUBLE
     501    status = nf_get_vara_double(ncidp, varidpsr3, start, count, psrf32)
     502#else
     503    status = nf_get_vara_real(ncidp, varidpsr3, start, count, psrf32)
     504#endif
    412505    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, psrf32, psrf3)
    413506
    414507    ! psrf4
    415     status = nf90_get_var(ncidp, varidpsr4, psrf42, start, count)
     508#ifdef NC_DOUBLE
     509    status = nf_get_vara_double(ncidp, varidpsr4, start, count, psrf42)
     510#else
     511    status = nf_get_vara_real(ncidp, varidpsr4, start, count, psrf42)
     512#endif
    416513    CALL gr_ecrit_fi(1, kon, nbp_lon, nbp_lat, psrf42, psrf4)
    417514
  • LMDZ6/trunk/libf/phylmd/readaerosol_mod.F90

    r5075 r5084  
    22!
    33MODULE readaerosol_mod
    4 
    5   USE lmdz_netcdf, ONLY: nf90_strerror,nf90_noerr,nf90_get_var,nf90_inq_varid,&
    6           nf90_inquire_dimension,nf90_inq_dimid,nf90_open,nf90_nowrite,nf90_close
    74
    85  REAL, SAVE :: not_valid=-333.
     
    8986! Read data depending on actual year and interpolate if necessary
    9087!****************************************************************************************
    91      IF (iyr_in < 1850) THEN
     88     IF (iyr_in .LT. 1850) THEN
    9289        cyear='.nat'
    9390        WRITE(lunout,*) 'get_aero 1 iyr_in=', iyr_in,'   ',cyear
     
    9693        CALL get_aero_fromfile(name_aero, cyear, filename, klev_src, pt_ap, pt_b, pt_out, psurf, load)
    9794       
    98      ELSE IF (iyr_in >= 2100) THEN
     95     ELSE IF (iyr_in .GE. 2100) THEN
    9996        cyear='2100'
    10097        WRITE(lunout,*) 'get_aero 2 iyr_in=', iyr_in,'   ',cyear
     
    106103        ! Read data from 2 decades and interpolate to actual year
    107104        ! a) from actual 10-yr-period
    108         IF (iyr_in<1900) THEN
     105        IF (iyr_in.LT.1900) THEN
    109106           iyr1 = 1850
    110107           iyr2 = 1900
    111         ELSE IF (iyr_in>=1900.AND.iyr_in<1920) THEN
     108        ELSE IF (iyr_in.GE.1900.AND.iyr_in.LT.1920) THEN
    112109           iyr1 = 1900
    113110           iyr2 = 1920
     
    177174
    178175SUBROUTINE init_aero_fromfile(flag_aerosol, aerosol_couple)
     176  USE netcdf
    179177  USE mod_phys_lmdz_para
    180178  USE mod_grid_phy_lmdz, ONLY: grid_type, unstructured
     
    267265!****************************************************************************************
    268266
     267    USE netcdf
    269268    USE dimphy
    270269    USE mod_grid_phy_lmdz, ONLY: nbp_lon_=>nbp_lon, nbp_lat_=>nbp_lat, klon_glo, &
     
    508507!****************************************************************************************
    509508          DO imth=1, 12
    510              IF (imth==1) THEN
     509             IF (imth.EQ.1) THEN
    511510                cvar=TRIM(varname)//'JAN'
    512              ELSE IF (imth==2) THEN
     511             ELSE IF (imth.EQ.2) THEN
    513512                cvar=TRIM(varname)//'FEB'
    514              ELSE IF (imth==3) THEN
     513             ELSE IF (imth.EQ.3) THEN
    515514                cvar=TRIM(varname)//'MAR'
    516              ELSE IF (imth==4) THEN
     515             ELSE IF (imth.EQ.4) THEN
    517516                cvar=TRIM(varname)//'APR'
    518              ELSE IF (imth==5) THEN
     517             ELSE IF (imth.EQ.5) THEN
    519518                cvar=TRIM(varname)//'MAY'
    520              ELSE IF (imth==6) THEN
     519             ELSE IF (imth.EQ.6) THEN
    521520                cvar=TRIM(varname)//'JUN'
    522              ELSE IF (imth==7) THEN
     521             ELSE IF (imth.EQ.7) THEN
    523522                cvar=TRIM(varname)//'JUL'
    524              ELSE IF (imth==8) THEN
     523             ELSE IF (imth.EQ.8) THEN
    525524                cvar=TRIM(varname)//'AUG'
    526              ELSE IF (imth==9) THEN
     525             ELSE IF (imth.EQ.9) THEN
    527526                cvar=TRIM(varname)//'SEP'
    528              ELSE IF (imth==10) THEN
     527             ELSE IF (imth.EQ.10) THEN
    529528                cvar=TRIM(varname)//'OCT'
    530              ELSE IF (imth==11) THEN
     529             ELSE IF (imth.EQ.11) THEN
    531530                cvar=TRIM(varname)//'NOV'
    532              ELSE IF (imth==12) THEN
     531             ELSE IF (imth.EQ.12) THEN
    533532                cvar=TRIM(varname)//'DEC'
    534533             END IF
     
    717716
    718717  SUBROUTINE check_err(status,text)
     718    USE netcdf
    719719    USE print_control_mod, ONLY: lunout
    720720    IMPLICIT NONE
  • LMDZ6/trunk/libf/phylmd/readaerosolstrato.F90

    r5075 r5084  
    33    use netcdf95, only: nf95_close, nf95_gw_var, nf95_inq_dimid, &
    44                        nf95_inq_varid, nf95_open
    5     use lmdz_netcdf, only: nf90_get_var, nf90_noerr, nf90_nowrite
     5    use netcdf, only: nf90_get_var, nf90_noerr, nf90_nowrite
    66
    77    USE phys_cal_mod, ONLY : mth_cur
     
    6868
    6969!--only read file if beginning of run or start of new month
    70     IF (debut.OR.mth_cur/=mth_pre) THEN
     70    IF (debut.OR.mth_cur.NE.mth_pre) THEN
    7171
    7272!--only root reads
    7373    IF (is_mpi_root.AND.is_omp_root) THEN
    7474
    75     IF (nbands/=2) THEN
     75    IF (nbands.NE.2) THEN
    7676        abort_message='nbands doit etre egal a 2 dans readaerosolstrat'
    7777        CALL abort_physic(modname,abort_message,1)
     
    8383    CALL nf95_gw_var(ncid_in, varid, lev)
    8484    n_lev = size(lev)
    85     IF (n_lev/=klev) THEN
     85    IF (n_lev.NE.klev) THEN
    8686       abort_message='Le nombre de niveaux n est pas egal a klev'
    8787       CALL abort_physic(modname,abort_message,1)
     
    9393    WRITE(lunout,*) 'LAT aerosol strato=', n_lat, latitude
    9494    IF (grid_type/=unstructured) THEN
    95       IF (n_lat/=nbp_lat) THEN
     95      IF (n_lat.NE.nbp_lat) THEN
    9696         abort_message='Le nombre de lat n est pas egal a nbp_lat'
    9797         CALL abort_physic(modname,abort_message,1)
     
    104104    IF (grid_type/=unstructured) THEN
    105105      WRITE(lunout,*) 'LON aerosol strato=', n_lon, longitude
    106       IF (n_lon/=nbp_lon) THEN
     106      IF (n_lon.NE.nbp_lon) THEN
    107107         abort_message='Le nombre de lon n est pas egal a nbp_lon'
    108108         CALL abort_physic(modname,abort_message,1)
     
    114114    n_month = size(time)
    115115    WRITE(lunout,*) 'TIME aerosol strato=', n_month, time
    116     IF (n_month/=12) THEN
     116    IF (n_month.NE.12) THEN
    117117       abort_message='Le nombre de month n est pas egal a 12'
    118118       CALL abort_physic(modname,abort_message,1)
     
    131131
    132132!---select the correct month
    133     IF (mth_cur<1.OR.mth_cur>12) THEN
     133    IF (mth_cur.LT.1.OR.mth_cur.GT.12) THEN
    134134     WRITE(lunout,*) 'probleme avec le mois dans readaerosolstrat =', mth_cur
    135135    ENDIF
  • LMDZ6/trunk/libf/phylmd/readaerosolstrato_m.F90

    r5075 r5084  
    2424
    2525SUBROUTINE init_readaerosolstrato1
    26   USE lmdz_netcdf, ONLY: nf90_nowrite
    27   USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, &
     26  USE netcdf
     27  USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, & 
    2828                      nf95_inq_varid, nf95_open
    2929  USE mod_phys_lmdz_para
     
    6767 
    6868SUBROUTINE init_readaerosolstrato2
    69   USE lmdz_netcdf, ONLY: nf90_nowrite
    70   USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, &
     69  USE netcdf
     70  USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, & 
    7171                      nf95_inq_varid, nf95_open
    7272  USE mod_phys_lmdz_para
  • LMDZ6/trunk/libf/phylmd/readchlorophyll.F90

    r5075 r5084  
    88
    99    USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, nf95_inq_varid, nf95_open
    10     USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     10    USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    1111    USE phys_cal_mod, ONLY: mth_cur
    1212    USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, klon_glo, grid2dto1d_glo
     
    5050
    5151!--only read file if beginning of run or start of new month
    52     IF (debut.OR.mth_cur/=mth_pre) THEN
     52    IF (debut.OR.mth_cur.NE.mth_pre) THEN
    5353
    5454    IF (is_mpi_root.AND.is_omp_root) THEN
     
    5959    CALL nf95_gw_var(ncid_in, varid, longitude)
    6060    n_lon = size(longitude)
    61     IF (n_lon/=nbp_lon) THEN
     61    IF (n_lon.NE.nbp_lon) THEN
    6262       abort_message='Le nombre de lon n est pas egal a nbp_lon'
    6363       CALL abort_physic(modname,abort_message,1)
     
    6767    CALL nf95_gw_var(ncid_in, varid, latitude)
    6868    n_lat = size(latitude)
    69     IF (n_lat/=nbp_lat) THEN
     69    IF (n_lat.NE.nbp_lat) THEN
    7070       abort_message='Le nombre de lat n est pas egal a jnbp_lat'
    7171       CALL abort_physic(modname,abort_message,1)
     
    7575    CALL nf95_gw_var(ncid_in, varid, time)
    7676    n_month = size(time)
    77     IF (n_month/=12) THEN
     77    IF (n_month.NE.12) THEN
    7878       abort_message='Le nombre de month n est pas egal a 12'
    7979       CALL abort_physic(modname,abort_message,1)
     
    9292
    9393!---select the correct month
    94     IF (mth_cur<1.OR.mth_cur>12) THEN
     94    IF (mth_cur.LT.1.OR.mth_cur.GT.12) THEN
    9595      WRITE(lunout,*)'probleme avec le mois dans readchlorophyll =', mth_cur
    9696    ENDIF
     
    104104!      if(isnan(chlorocon_mois_glo(i)))then ! isnan() is not in the Fortran standard...
    105105!      Another way to check for NaN:
    106        IF (chlorocon_mois_glo(i)/=chlorocon_mois_glo(i)) chlorocon_mois_glo(i)=0.
     106       IF (chlorocon_mois_glo(i).NE.chlorocon_mois_glo(i)) chlorocon_mois_glo(i)=0.
    107107    ENDDO
    108108
  • LMDZ6/trunk/libf/phylmd/regr_horiz_time_climoz_m.F90

    r5075 r5084  
    44  USE mod_grid_phy_lmdz, ONLY: nbp_lon, nbp_lat, grid_type, unstructured
    55  USE nrtype,            ONLY: pi
    6   USE lmdz_netcdf,   ONLY: NF90_CLOBBER, NF90_FLOAT,     NF90_OPEN,   &
     6  USE netcdf,   ONLY: NF90_CLOBBER, NF90_FLOAT,     NF90_OPEN,   &
    77                      NF90_NOWRITE, NF90_NOERR,     NF90_GET_ATT, NF90_GLOBAL
    88  USE netcdf95, ONLY: NF95_DEF_DIM, NF95_INQ_DIMID, NF95_INQUIRE_DIMENSION,    &
     
    702702!
    703703!-------------------------------------------------------------------------------
    704   USE lmdz_netcdf, ONLY: NF90_NOERR, NF90_strerror
     704  USE netcdf, ONLY: NF90_NOERR, NF90_strerror
    705705!-------------------------------------------------------------------------------
    706706! Arguments:
  • LMDZ6/trunk/libf/phylmd/regr_lat_time_coefoz_m.F90

    r5075 r5084  
    4545    use netcdf95, only: nf95_open, nf95_close, nf95_inq_varid, nf95_get_var, &
    4646         nf95_put_var, nf95_gw_var
    47     use lmdz_netcdf, only: nf90_nowrite
     47    use netcdf, only: nf90_nowrite
    4848    use nrtype, only: pi
    4949    use regular_lonlat_mod, only: boundslat_reg, south
     
    245245    use netcdf95, only: nf95_create, nf95_def_dim, nf95_def_var, &
    246246         nf95_put_att, nf95_enddef, nf95_copy_att, nf95_put_var
    247     use lmdz_netcdf, only: nf90_clobber, nf90_float, nf90_copy_att, nf90_global
     247    use netcdf, only: nf90_clobber, nf90_float, nf90_copy_att, nf90_global
    248248    use nrtype, only: pi
    249249    use regular_lonlat_mod, only : lat_reg
     
    328328    subroutine handle_err_copy_att(att_name)
    329329
    330       use lmdz_netcdf, only: nf90_noerr, nf90_strerror
     330      use netcdf, only: nf90_noerr, nf90_strerror
    331331
    332332      character(len=*), intent(in):: att_name
  • LMDZ6/trunk/libf/phylmd/regr_pr_comb_coefoz_m.F90

    r5075 r5084  
    7272
    7373    use netcdf95, only: nf95_open, nf95_close
    74     use lmdz_netcdf, only: nf90_nowrite
     74    use netcdf, only: nf90_nowrite
    7575    use assert_m, only: assert
    7676    use dimphy, only: klon
  • LMDZ6/trunk/libf/phylmd/regr_pr_o3_m.F90

    r5075 r5084  
    2626
    2727    use netcdf95, only: nf95_open, nf95_close, nf95_inq_varid, nf95_get_var
    28     use lmdz_netcdf, only:  nf90_nowrite
     28    use netcdf, only:  nf90_nowrite
    2929    use assert_m, only: assert
    3030    use regr_conserv_m, only: regr_conserv
  • LMDZ6/trunk/libf/phylmd/regr_pr_time_av_m.F90

    r5075 r5084  
    115115  USE netcdf95,       ONLY: NF95_INQ_VARID, NF95_INQUIRE_VARIABLE, &
    116116                            NF95_INQ_DIMID, NF95_INQUIRE_DIMENSION, nf95_get_var
    117   USE lmdz_netcdf,         ONLY: NF90_INQ_VARID, NF90_NOERR
     117  USE netcdf,         ONLY: NF90_INQ_VARID, NF90_NOERR
    118118  USE assert_m,       ONLY: assert
    119119  USE assert_eq_m,    ONLY: assert_eq
  • LMDZ6/trunk/libf/phylmd/rrtm/read_rsun_rrtm.F90

    r5075 r5084  
    88
    99  USE netcdf95, ONLY: nf95_close, nf95_inq_varid, nf95_open, nf95_gw_var
    10   USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     10  USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    1111
    1212  USE phys_cal_mod, ONLY : days_elapsed, year_len
  • LMDZ6/trunk/libf/phylmd/rrtm/readaerosolstrato1_rrtm.F90

    r5075 r5084  
    77    USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, &
    88                        nf95_inq_varid, nf95_open
    9     USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     9    USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    1010
    1111    USE phys_cal_mod, ONLY : mth_cur
  • LMDZ6/trunk/libf/phylmd/rrtm/readaerosolstrato2_rrtm.F90

    r5075 r5084  
    66    USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_dimid, &
    77                        nf95_inq_varid, nf95_open
    8     USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     8    USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    99
    1010    USE phys_cal_mod, ONLY : mth_cur
  • LMDZ6/trunk/libf/phylmd/tracco2i_mod.F90

    r5075 r5084  
    104104
    105105! Initialization of tr_seri(id_CO2) If it is not initialized
    106       IF (MAXVAL(tr_seri(:,:,id_CO2))<1.e-15) THEN
     106      IF (MAXVAL(tr_seri(:,:,id_CO2)).LT.1.e-15) THEN
    107107        tr_seri(:,:,id_CO2)=co2_ppm0*1.e-6/RMD*RMCO2 !--initialised from co2_ppm0 in rdem
    108108      ENDIF
     
    299299!--for every timestep comment out the IF ENDIF statements
    300300!--otherwise this is updated every day
    301     IF (debutphy.OR.day_cur/=day_pre) THEN
     301    IF (debutphy.OR.day_cur.NE.day_pre) THEN
    302302
    303303      CALL gather(tr_seri(:,:,id_CO2),co2_glo)
     
    351351
    352352    USE netcdf95, ONLY: nf95_close, nf95_gw_var, nf95_inq_varid, nf95_open
    353     USE lmdz_netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
     353    USE netcdf, ONLY: nf90_get_var, nf90_noerr, nf90_nowrite
    354354
    355355    USE carbon_cycle_mod, ONLY : fco2_ff, fco2_bb, fco2_land, fco2_ocean
     
    401401        CALL nf95_gw_var(ncid_in, varid, vector)
    402402        n_glo = size(vector)
    403         IF (n_glo/=klon_glo) THEN
     403        IF (n_glo.NE.klon_glo) THEN
    404404           abort_message='sflx_lmdz_co2_ff: le nombre de points n est pas egal a klon_glo'
    405405           CALL abort_physic(modname,abort_message,1)
     
    409409        CALL nf95_gw_var(ncid_in, varid, time)
    410410        n_month = size(time)
    411         IF (n_month/=12) THEN
     411        IF (n_month.NE.12) THEN
    412412           abort_message='sflx_lmdz_co2_ff: le nombre de month n est pas egal a 12'
    413413           CALL abort_physic(modname,abort_message,1)
     
    434434      CALL nf95_gw_var(ncid_in, varid, vector)
    435435      n_glo = size(vector)
    436       IF (n_glo/=klon_glo) THEN
     436      IF (n_glo.NE.klon_glo) THEN
    437437         abort_message='sflx_lmdz_co2_bb: le nombre de points n est pas egal a klon_glo'
    438438         CALL abort_physic(modname,abort_message,1)
     
    442442      CALL nf95_gw_var(ncid_in, varid, time)
    443443      n_month = size(time)
    444       IF (n_month/=12) THEN
     444      IF (n_month.NE.12) THEN
    445445         abort_message='sflx_lmdz_co2_bb: le nombre de month n est pas egal a 12'
    446446         CALL abort_physic(modname,abort_message,1)
     
    474474
    475475!---select the correct month
    476   IF (mth_cur<1.OR.mth_cur>12) THEN
     476  IF (mth_cur.LT.1.OR.mth_cur.GT.12) THEN
    477477    PRINT *,'probleme avec le mois dans co2_ini =', mth_cur
    478478  ENDIF
  • LMDZ6/trunk/libf/phylmd/undefSTD.F90

    r5075 r5084  
    33
    44SUBROUTINE undefstd(itap, read_climoz)
    5   USE lmdz_netcdf, ONLY: nf90_fill_real
     5  USE netcdf
    66  USE dimphy
    77#ifdef CPP_IOIPSL
Note: See TracChangeset for help on using the changeset viewer.