program wwcdf CCC--------------------------------------------------------------------- CCC CC declarations of variables CC ========================= C IMPLICIT NONE CC CC jpi = longitude CC jpj = latitude CC jpk = depth CC jit = number of time step CC fix = undetermined values CC INTEGER jpi,jpj,jpk,jit PARAMETER(jpi=20,jpj=20,jpk=1,jit=1) INTEGER ji,jj,jk,it CC REAL wflx(jpi,jpj,jpk,jit) CC REAL lat(jpj), lon(jpi), depth(jpk), time(jit) REAL fix CC INCLUDE 'netcdf.inc' c INTEGER ncid, iret, varid INTEGER varlat, varlon, vardep, vartim INTEGER nvdims PARAMETER(nvdims = 4) INTEGER vardims(nvdims),start(nvdims),count(nvdims),stride(nvdims) INTEGER status c DATA start/1,1,1,1/ DATA count/jpi,jpj,jpk,jit/ DATA stride/1,1,1,1/ DATA fix/1.e35/ CC cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c open the netCDF file cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c status = nf_create("fileou.nc",nf_clobber,ncid) C if (status.ne.0) write(*,*) nf_strerror(status) c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c define attributes cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c status = nf_def_dim(ncid,'LONGITUDE',jpi,vardims(1)) status = nf_def_dim(ncid,'LATITUDE',jpj,vardims(2)) status = nf_def_dim(ncid,'DEPTH',jpk,vardims(3)) status = nf_def_dim(ncid,'TIME',jit,vardims(4)) c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c define variables cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c status = nf_def_var(ncid,'co2',nf_float,nvdims,vardims,varid) C status=nf_def_var(ncid,'LONGITUDE',nf_float,1,vardims(1),varlon) status=nf_def_var(ncid,'LATITUDE',nf_float,1,vardims(2),varlat) status=nf_def_var(ncid,'DEPTH',nf_float,1,vardims(3),vardep) status=nf_def_var(ncid,'TIME',nf_float,1,vardims(4),vartim) c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c create attributes cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c C for output C status = nf_put_att_text(ncid, varlon, 'units', 6, 'degrees') status = nf_put_att_text(ncid, varlat, 'units', 6, 'degrees') status = nf_put_att_text(ncid, vardep, 'units', 6, 'meters') C C for ocean data: C status = nf_put_att_text(ncid, vardep, 'positive', 4, 'down') status = nf_put_att_text(ncid, vartim, 'units', 4, 'year') C status = nf_put_att_text(ncid,varid,'units',3,'ppm') C status =nf_put_att_real(ncid, varid,'_FillValue', nf_float,1,fix) C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c end of define mode cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c status = nf_enddef(ncid) C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc C C allocate variables C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc C do ji = 1, jpi lon(ji) = float(ji) enddo do jj = 1, jpj lat(jj) = float(jj) enddo do jk = 1, jpk depth(jk) = float(jk) enddo do it = 1, jit time(it) = 1990. + float(it) enddo C do ji = 1, jpi do jj = 1, jpj do jk = 1, jpk do it = 1, jit wflx(ji,jj,jk,it) = 0. enddo enddo enddo enddo C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc C status = nf_put_var_real(ncid,varlon,lon) status = nf_put_var_real(ncid,varlat,lat) status = nf_put_var_real(ncid,vardep,depth) status = nf_put_var_real(ncid,vartim,time) C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c write data to file cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c status = nf_put_var_real(ncid,varid,wflx) C cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c close the netCDF file cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc c status = nf_close(ncid) write(*,*) 'global data written' C END