Ignore:
Timestamp:
Sep 21, 2022, 3:12:15 PM (2 years ago)
Author:
lguez
Message:

Replace nf_get_var_type by nf90_get_var

The immediate motivation is a bug fix: nf_get_var_type was called
with scalar resul3 or lat, lon, alt, phis instead of array actual
argument for dummy array argument rvals or dvals. Correcting this, we
might as well take the opportunity to use nf90_get_var, so we no
longer need to test NC_DOUBLE and we have half as many calls.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/dyn1d/mod_1D_cases_read2.F90

    r4273 r4274  
    317317  !**********************************************************************************************
    318318  SUBROUTINE old_read_SCM_cas
     319    use netcdf, only: nf90_get_var
    319320    implicit none
    320321
     
    376377    else
    377378       allocate(time_val(nt_cas))
    378 #ifdef NC_DOUBLE
    379        ierr = NF_GET_VAR_DOUBLE(nid,timeid,time_val)
    380 #else
    381        ierr = NF_GET_VAR_REAL(nid,timeid,time_val)
    382 #endif
     379       ierr = NF90_GET_VAR(nid,timeid,time_val)
    383380       if(ierr/=NF_NOERR) then
    384381          print *,'Pb a la lecture de time cas.nc: '
     
    544541
    545542  !program reading forcing of the case study
     543  use netcdf, only: nf90_get_var
    546544  implicit none
    547545#include "netcdf.inc"
     
    591589     print *,'Dans read_cas2, on va lire ',var3didin(i),name_var(i)
    592590     if(i.LE.35) then
    593 #ifdef NC_DOUBLE
    594         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul)
    595 #else
    596         ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul)
    597 #endif
     591        ierr = NF90_GET_VAR(nid,var3didin(i),resul)
    598592        print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i)
    599593        if(ierr/=NF_NOERR) then
     
    602596        endif
    603597     else
    604 #ifdef NC_DOUBLE
    605         ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul1)
    606 #else
    607         ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul1)
    608 #endif
     598        ierr = NF90_GET_VAR(nid,var3didin(i),resul1)
    609599        print *,'Dans read_cas2, on a lu ',ierr,var3didin(i),name_var(i)
    610600        if(ierr/=NF_NOERR) then
     
    667657
    668658  !program reading forcing of the case study
     659  use netcdf, only: nf90_get_var
    669660  implicit none
    670661#include "netcdf.inc"
     
    720711        !-----------------------------------------------------------------------
    721712        if(i.LE.4) then     ! Lecture des coord pression en (nlevelp1,lat,lon)
    722 #ifdef NC_DOUBLE
    723            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),apbp)
    724 #else
    725            ierr = NF_GET_VAR_REAL(nid,var3didin(i),apbp)
    726 #endif
     713           ierr = NF90_GET_VAR(nid,var3didin(i),apbp)
    727714           print *,'read2_cas(apbp), on a lu ',i,name_var(i)
    728715           if(ierr/=NF_NOERR) then
     
    732719           !-----------------------------------------------------------------------
    733720        else if(i.gt.4.and.i.LE.45) then   ! Lecture des variables en (time,nlevel,lat,lon)
    734 #ifdef NC_DOUBLE
    735            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul)
    736 #else
    737            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul)
    738 #endif
     721           ierr = NF90_GET_VAR(nid,var3didin(i),resul)
    739722           print *,'read2_cas(resul), on a lu ',i,name_var(i)
    740723           if(ierr/=NF_NOERR) then
     
    744727           !-----------------------------------------------------------------------
    745728        else if (i.gt.45.and.i.LE.51) then   ! Lecture des variables en (time,lat,lon)
    746 #ifdef NC_DOUBLE
    747            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul2)
    748 #else
    749            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul2)
    750 #endif
     729           ierr = NF90_GET_VAR(nid,var3didin(i),resul2)
    751730           print *,'read2_cas(resul2), on a lu ',i,name_var(i)
    752731           if(ierr/=NF_NOERR) then
     
    756735           !-----------------------------------------------------------------------
    757736        else     ! Lecture des constantes (lat,lon)
    758 #ifdef NC_DOUBLE
    759            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul3)
    760 #else
    761            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul3)
    762 #endif
     737           ierr = NF90_GET_VAR(nid,var3didin(i),resul3)
    763738           print *,'read2_cas(resul3), on a lu ',i,name_var(i)
    764739           if(ierr/=NF_NOERR) then
     
    853828
    854829  !program reading forcing of the case study
     830  use netcdf, only: nf90_get_var
    855831  implicit none
    856832#include "netcdf.inc"
     
    912888        !-----------------------------------------------------------------------
    913889        if(i.LE.4) then     ! Lecture des coord pression en (nlevelp1,lat,lon)
    914 #ifdef NC_DOUBLE
    915            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),apbp)
    916 #else
    917            ierr = NF_GET_VAR_REAL(nid,var3didin(i),apbp)
    918 #endif
     890           ierr = NF90_GET_VAR(nid,var3didin(i),apbp)
    919891           print *,'read2_cas(apbp), on a lu ',i,name_var(i)
    920892           if(ierr/=NF_NOERR) then
     
    924896           !-----------------------------------------------------------------------
    925897        else if(i.gt.4.and.i.LE.12) then   ! Lecture des variables en (time,nlevel,lat,lon)
    926 #ifdef NC_DOUBLE
    927            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul1)
    928 #else
    929            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul1)
    930 #endif
     898           ierr = NF90_GET_VAR(nid,var3didin(i),resul1)
    931899           print *,'read2_cas(resul1), on a lu ',i,name_var(i)
    932900           if(ierr/=NF_NOERR) then
     
    937905           !-----------------------------------------------------------------------
    938906        else if(i.gt.12.and.i.LE.54) then   ! Lecture des variables en (time,nlevel,lat,lon)
    939 #ifdef NC_DOUBLE
    940            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul)
    941 #else
    942            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul)
    943 #endif
     907           ierr = NF90_GET_VAR(nid,var3didin(i),resul)
    944908           print *,'read2_cas(resul), on a lu ',i,name_var(i)
    945909           if(ierr/=NF_NOERR) then
     
    950914           !-----------------------------------------------------------------------
    951915        else if (i.gt.54.and.i.LE.65) then   ! Lecture des variables en (time,lat,lon)
    952 #ifdef NC_DOUBLE
    953            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul2)
    954 #else
    955            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul2)
    956 #endif
     916           ierr = NF90_GET_VAR(nid,var3didin(i),resul2)
    957917           print *,'read2_cas(resul2), on a lu ',i,name_var(i)
    958918           if(ierr/=NF_NOERR) then
     
    963923           !-----------------------------------------------------------------------
    964924        else     ! Lecture des constantes (lat,lon)
    965 #ifdef NC_DOUBLE
    966            ierr = NF_GET_VAR_DOUBLE(nid,var3didin(i),resul3)
    967 #else
    968            ierr = NF_GET_VAR_REAL(nid,var3didin(i),resul3)
    969 #endif
     925           ierr = NF90_GET_VAR(nid,var3didin(i),resul3)
    970926           print *,'read2_cas(resul3), on a lu ',i,name_var(i)
    971927           if(ierr/=NF_NOERR) then
Note: See TracChangeset for help on using the changeset viewer.