next up previous contents
Next: 7.4.6.3 Grille irrégulière : Up: 7.4.6.2 Grille régulière 3D Previous: 7.4.6.2.1 Fichier CDL

7.4.6.2.2 source FORTRAN

      PROGRAM GRID3D
c
      IMPLICIT NONE
c
      INTEGER DIM1, DIM2, DIM3, NDIMS
      INTEGER*4 BASETIME
      INTEGER NCID, RCODE
      INTEGER LAT_ID,LON_ID,ALT_ID,TIMOFF_ID,BTIM_ID
      INTEGER VAR_ID
      INTEGER X_SP_ID,Y_SP_ID,Z_SP_ID
      INTEGER XDIM, YDIM, ZDIM, TIMDIM
      CHARACTER FICNAME*14
c
      PARAMETER (NDIMS=4)
      PARAMETER (DIM1=3,DIM2=3,DIM3=2)
c
      INTEGER UDIMS(NDIMS)
      INTEGER COUNT4(NDIMS), START4(NDIMS)
      REAL LON,LAT,ALT,TIME
      REAL VAR_3D(DIM1, DIM2, DIM3)
c
c
      DATA COUNT4 /DIM1, DIM2, DIM3, 1/
      DATA START4 /1, 1, 1, 1/
      DATA LON,LAT,ALT/120.,230.,0./
      DATA BASETIME,TIME /720489600,3600./
c
      INCLUDE 'netcdf.inc'
c
c ----------    Creation du fichier ----------
c
      FICNAME = '3D.cdf'
      NCID = NCCRE(FICNAME, NCCLOB, RCODE)
c
c ----------    Definition dimensions ----------
c
      TIMDIM = NCDDEF(NCID, 'time', NCUNLIM, RCODE)
      XDIM = NCDDEF(NCID, 'x', DIM1, RCODE)
      YDIM = NCDDEF(NCID, 'y', DIM2, RCODE)
      ZDIM = NCDDEF(NCID, 'z', DIM3, RCODE)
c
      UDIMS(1) = XDIM
      UDIMS(2) = YDIM
      UDIMS(3) = ZDIM
      UDIMS(4) = TIMDIM
c
c ----------    Definition variables ----------
c
      VAR_ID = NCVDEF (NCID, 'var_3d', 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, 0, 1, RCODE)
      LAT_ID = NCVDEF (NCID, 'lat', NCFLOAT, 0, 1, RCODE)
      ALT_ID = NCVDEF (NCID, 'alt', NCFLOAT, 0, 1, RCODE)
      X_SP_ID = NCVDEF (NCID, 'x_spacing', NCFLOAT, 0, 1, RCODE)
      Y_SP_ID = NCVDEF (NCID, 'y_spacing', NCFLOAT, 0, 1, RCODE)
      Z_SP_ID = NCVDEF (NCID, 'z_spacing', NCFLOAT, 0, 1, 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 champ 3D', RCODE )
c
      CALL NCENDF (NCID, RCODE)
c
      CALL NCVPT (NCID, VAR_ID, START4, COUNT4, VAR_3D, RCODE)
      CALL NCVPT1 (NCID, BTIM_ID, 1, BASETIME, RCODE)
      CALL NCVPT (NCID, TIMOFF_ID, 1, 1, TIME, RCODE)
      CALL NCVPT1 (NCID, LON_ID, 1, LON, RCODE)
      CALL NCVPT1 (NCID, LAT_ID, 1, LAT, RCODE)
      CALL NCVPT1 (NCID, ALT_ID, 1, ALT, RCODE)
c
      CALL NCVPT1 (NCID, X_SP_ID, 1, 111.111, RCODE)
      CALL NCVPT1 (NCID, Y_SP_ID, 1, 111.111, RCODE)
      CALL NCVPT1 (NCID, Z_SP_ID, 1, 100., RCODE)
c
      CALL NCVPT (NCID, TIMOFF_ID, 1, 1, TIME, RCODE)
      CALL NCCLOS(NCID, RCODE)
c
c
      end



Catherine PIRIOU
2000-12-01