Hi,
Try to make this clear
I have variable SQ_VAR in 2-D (without long and lat, only level and time)
I would like to save this into Netcdf file. However, the result give me level in x axis rather then level axis.
say:
SQ_VAR should be long lat level and time
somehow it becomes
SQ_VAR level long lat and time
The code are shown as bellow.
Cheers,
Arnold
 ;************************************************
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
begin
 diri = "/cs/datastore/csdar/sul086/ipcc_workst/all/enso_iod_sam/enso/var/"  ; directory where files reside
 fili = systemfunc ("ls "+diri+"*_var.nc")
 fin  = addfiles (fili, "r")   ; note the "s" of addfile
 ListSetType (fin, "cat")               ; concatenate or "merge"
 Nmodel    = 24
 Nseason   = 4
 SQ_VAR    = new((/Nmodel,Nseason/),float)
 SQ_VAR(:,0)  = fin[:]->SQ_VAR_DJF
 SQ_VAR(:,1)  = fin[:]->SQ_VAR_MAM
 SQ_VAR(:,2)  = fin[:]->SQ_VAR_JJA
 SQ_VAR(:,3)  = fin[:]->SQ_VAR_SON
 diro       = "./"                           ; Output directory
 filo       = "merge_out.nc"                 ; Output file
 system("/bin/rm -f " + diro + filo)         ; remove if exists
 fout       = addfile (diro + filo, "c")     ; open output file
 fout@title<mailto:fout@title> = "enso var from model files"
 time = new(Nmodel,"integer") ; create time array
 do i=0,Nmodel-1
       time(i)=i                        ; combine to strings
 end do
 level = new(Nseason,"integer") ; create time array
 do i=0,Nseason-1
       level(i)=i                       ; combine to strings
 end do
 delete (time@_FillValue<mailto:time@_FillValue>)
 delete (level@_FillValue<mailto:level@_FillValue>)
; make time and UNLIMITED dimension      ; recommended  for most applications
 dimNames = (/"time","level"/)
 dimSizes = (/-1,Nseason/)
 dimUnlim = (/True,False/)
 filedimdef(fout,dimNames,dimSizes,dimUnlim)
 filevardef(fout, "time"   ,typeof(time)   ,"time")
 filevardef(fout, "level"  ,typeof(level)  ,"level")
 filevardef(fout, "SQ_VAR" ,typeof(SQ_VAR) ,(/"time","level"/))
 filevarattdef(fout,"time"  ,time)
 filevarattdef(fout,"level" ,level)
 filevarattdef(fout,"SQ_VAR",SQ_VAR)
 fout->time   = (/time/)              ; write SQ_VAR to a file
 fout->level  = (/level/)             ; write SQ_VAR to a file
 fout->SQ_VAR = (/SQ_VAR/)             ; write SQ_VAR to a file
end
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Wed Dec 23 15:46:55 2009
This archive was generated by hypermail 2.1.8 : Tue Dec 29 2009 - 10:29:16 MST