next up previous contents
Next: 7.4.6.4 Sorties de modèles Up: 7.4.6.3 Grille irrégulière : Previous: 7.4.6.3.1 Fichier CDL

7.4.6.3.2 source FORTRAN

      PROGRAM IRRGRID
c
      IMPLICIT NONE
c
      INTEGER NDIMS, I
      INTEGER*4 BASETIME
      INTEGER NCID, RCODE
      INTEGER LON_ID,LAT_ID,ALT_ID,TIMOFF_ID,BTIM_ID
      INTEGER VAR_ID, PLAT_ID
      INTEGER LENDIM, PLATDIM, TIMDIM
      INTEGER PDIM, TDIM, LDIM
      CHARACTER FICNAME*14
c
      PARAMETER (NDIMS=2)
      PARAMETER (TDIM=3,PDIM=4,LDIM=25)
c
      INTEGER UDIMS(NDIMS), VDIMS(NDIMS)
      INTEGER COUNT2a(NDIMS), COUNT2b(NDIMS), START2(NDIMS)
      REAL VAR_IRR(PDIM,TDIM), LON(PDIM), LAT(PDIM), ALT(PDIM)
      REAL TTIME(TDIM)
      CHARACTER PLAT*256
c
c
      DATA COUNT2a /PDIM, TDIM/
      DATA COUNT2b /LDIM, PDIM/
      DATA START2 /1, 1/
      DATA BASETIME/720489600/
c
      INCLUDE 'netcdf.inc'
c
c ----------    Initialisation variables ----------
c
      PLAT = 'plat1                    '//
     s       'plat2                    '//
     s       'plat3                    '//
     s       'plat4                    '
c
      DO 100 I=1,PDIM
         LON(I) = 100. + I
         LAT(I) = 0. + 2*I
         ALT(I) = 10. * I
 100  CONTINUE
      DO 200 I=1,TDIM
         TTIME(I) = 5. * I
 200  CONTINUE
c
c ----------    Creation du fichier ----------
c
      FICNAME = 'irr.cdf'
      NCID = NCCRE(FICNAME, NCCLOB, RCODE)
c
c ----------    Definition dimensions ----------
c
      TIMDIM = NCDDEF(NCID, 'time', NCUNLIM, RCODE)
      PLATDIM = NCDDEF(NCID, 'platform', PDIM, RCODE)
      LENDIM = NCDDEF(NCID, 'fldlen', LDIM, RCODE)
c
      UDIMS(1) = PLATDIM
      UDIMS(2) = TIMDIM
c
      VDIMS(1) = LENDIM
      VDIMS(2) = PLATDIM
c
c ----------    Definition variables ----------
c
      VAR_ID = NCVDEF (NCID, 'var_irr', NCFLOAT, NDIMS, UDIMS, RCODE)
      BTIM_ID = NCVDEF (NCID, 'base_time', NCLONG, 0, 1, RCODE)
      TIMOFF_ID = NCVDEF (NCID, 'time_offset', NCFLOAT, 1, TIMDIM,
     s                    RCODE)
      LON_ID = NCVDEF (NCID, 'lon', NCFLOAT, 1, PLATDIM, RCODE)
      LAT_ID = NCVDEF (NCID, 'lat', NCFLOAT, 1, PLATDIM, RCODE)
      ALT_ID = NCVDEF (NCID, 'alt', NCFLOAT, 1, PLATDIM, RCODE)
      PLAT_ID = NCVDEF (NCID, 'platform', NCCHAR, NDIMS, VDIMS, RCODE)
c
c ----------    Definition attributs ----------
c
      CALL NCAPT (NCID, VAR_ID, 'missing_value', NCFLOAT, 1, -9999.,
     s            RCODE )
      CALL NCAPTC (NCID, VAR_ID, 'long_name', NCCHAR, 20, 
     s             'Variable grille irr.', RCODE )
c
      CALL NCENDF (NCID, RCODE)
c
c ----------    Ecriture des donnees ----------
c
      CALL NCVPT (NCID, VAR_ID, START2, COUNT2a, VAR_IRR, RCODE)
      CALL NCVPT1 (NCID, BTIM_ID, 1, BASETIME, RCODE)
      CALL NCVPT (NCID, TIMOFF_ID, 1, TDIM, TTIME, RCODE)
      CALL NCVPT (NCID, LON_ID, 1, PDIM, LON, RCODE)
      CALL NCVPT (NCID, LAT_ID, 1, PDIM, LAT, RCODE)
      CALL NCVPT (NCID, ALT_ID, 1, PDIM, ALT, RCODE)
      CALL NCVPTC (NCID, PLAT_ID, START2, COUNT2b, PLAT, PDIM*LDIM,
     s             RCODE)
c
      CALL NCCLOS(NCID, RCODE)
c
      END



Catherine PIRIOU
2000-12-01