Fork me on GitHub

Fortran 90 interface of NetCDF for LMDZ

Voici un exemple tiré du fichier dyn3d/limit_netcdf.F. L'interface pour Fortran 90 de NetCDF offre une procédure générique NF90_GET_VAR indépendante du type de la variable, indépendante de son rang (scalaire ou tableau), avec des arguments facultatifs. Dans l'exemple, avec l'interface Fortran 90, l'argument indiquant le nombre d'éléments à lire dans chaque dimension (imdep, jmdep) est inutile : c'est le profil de champ.

Avant

      ALLOCATE( champ(imdep*jmdep) )
         dimfirst(1) = 1
         dimfirst(2) = 1
         dimfirst(3) = l

         dimlast(1) = imdep
         dimlast(2) = jmdep
         dimlast(3) = 1
c
#ifdef NC_DOUBLE
         ierr = NF_GET_VARA_DOUBLE(ncid,varid,dimfirst,dimlast,champ)
#else
         ierr = NF_GET_VARA_REAL(ncid,varid,dimfirst,dimlast,champ)
#endif

Après

    ALLOCATE(champ(imdep, jmdep))
ierr = NF90_GET_VAR(ncid, varid, champ, start=(/1, 1, l/))

links

social