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