time_series/10.write_ameriflux_cn_FMH43cn.ncl
changeset 1 4be95183fbcd
equal deleted inserted replaced
-1:000000000000 0:018a5b95b56b
       
     1 ;************************************************
       
     2 ;    Read ascii, Write nc
       
     3 ;    output: lat: N->S     lon: -180W->180E                         
       
     4 ;************************************************
       
     5 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
       
     6 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
       
     7 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"  
       
     8 ;************************************************
       
     9 begin
       
    10 
       
    11 ; output
       
    12 
       
    13   model_name = "i01.43cn"
       
    14   
       
    15   ;diro  = "/ptmp/jeff/"
       
    16   diro  = "/lustre/wolf-ddn/scratch/hof/cases1/i01.43cn_out/"
       
    17   filo  = model_name + "_ameriflux_2876-2900_monthly.nc"
       
    18   c = addfile(diro+filo,"c")
       
    19   filedimdef(c,"year",-1,True) 
       
    20 
       
    21 ; input data
       
    22 
       
    23   nlat = 96
       
    24   nlon = 144
       
    25 
       
    26   year_start = 2876
       
    27   year_end   = 2900
       
    28 
       
    29   nyear  = year_end - year_start + 1
       
    30   nmonth = 12
       
    31   
       
    32   data1  = new((/nyear,nmonth,nlat,nlon/),float)
       
    33   data2  = new((/nyear,nmonth,nlat,nlon/),float)
       
    34   data3  = new((/nyear,nmonth,nlat,nlon/),float)
       
    35   ;data4  = new((/nyear,nmonth,nlat,nlon/),float)
       
    36   ;data5  = new((/nyear,nmonth,nlat,nlon/),float)
       
    37   data6  = new((/nyear,nmonth,nlat,nlon/),float)
       
    38   data7  = new((/nyear,nmonth,nlat,nlon/),float)
       
    39   data8  = new((/nyear,nmonth,nlat,nlon/),float)
       
    40   data9  = new((/nyear,nmonth,nlat,nlon/),float)
       
    41   data10 = new((/nyear,nmonth,nlat,nlon/),float)
       
    42   date   = new((/nyear,nmonth/),integer)
       
    43 
       
    44 ;  name dimensions and assign coordinate variables
       
    45 
       
    46   data1!0    ="year"
       
    47   data1!1    ="month"
       
    48   data1!2    = "lat"
       
    49   data1!3    = "lon"
       
    50 
       
    51   data2!0    ="year"
       
    52   data2!1    ="month"
       
    53   data2!2    = "lat"
       
    54   data2!3    = "lon"
       
    55 
       
    56   data3!0    ="year"
       
    57   data3!1    ="month"
       
    58   data3!2    = "lat"
       
    59   data3!3    = "lon"
       
    60 
       
    61   ;data4!0    ="year"
       
    62   ;data4!1    ="month"
       
    63   ;data4!2    = "lat"
       
    64   ;data4!3    = "lon"
       
    65 
       
    66   ;data5!0    ="year"
       
    67   ;data5!1    ="month"
       
    68   ;data5!2    = "lat"
       
    69   ;data5!3    = "lon"
       
    70 
       
    71   data6!0    ="year"
       
    72   data6!1    ="month"
       
    73   data6!2    = "lat"
       
    74   data6!3    = "lon"
       
    75 
       
    76   data7!0    ="year"
       
    77   data7!1    ="month"
       
    78   data7!2    = "lat"
       
    79   data7!3    = "lon"
       
    80 
       
    81   data8!0    ="year"
       
    82   data8!1    ="month"
       
    83   data8!2    = "lat"
       
    84   data8!3    = "lon"
       
    85 
       
    86   data9!0    ="year"
       
    87   data9!1    ="month"
       
    88   data9!2    = "lat"
       
    89   data9!3    = "lon"
       
    90 
       
    91   data10!0    ="year"
       
    92   data10!1    ="month"
       
    93   data10!2    = "lat"
       
    94   data10!3    = "lon"
       
    95 
       
    96   date!0    ="year"
       
    97   date!1    ="month"
       
    98   date@long_name  = "date: yyyymm"
       
    99 
       
   100 ; input dir
       
   101   diri  = "/lustre/wolf-ddn/scratch/hof/cases1/"+model_name+"/"
       
   102 
       
   103   do m = 0,nyear-1
       
   104      year = year_start + m
       
   105   do n = 0,nmonth-1
       
   106      nn = n+1
       
   107      date(m,n) = year*100 +nn 
       
   108      
       
   109 ;    input file
       
   110      if (nn .ge. 10) then
       
   111         fili = model_name+".clm2.h0."+year+"-"+nn+".nc"
       
   112      else
       
   113         fili = model_name+".clm2.h0."+year+"-0"+nn+".nc"
       
   114      end if
       
   115 
       
   116      print (fili)
       
   117 
       
   118      g = addfile (diri+fili,"r")
       
   119 
       
   120      b = g->NEE
       
   121      data1(m,n,:,:) = (/b(0,:,:)/)
       
   122      data1@long_name  = b@long_name
       
   123      data1@units      = b@units
       
   124      data1@_FillValue = b@_FillValue
       
   125      delete (b)
       
   126 
       
   127      b = g->GPP
       
   128      data2(m,n,:,:) = (/b(0,:,:)/)
       
   129      data2@long_name  = b@long_name
       
   130      data2@units      = b@units
       
   131      data2@_FillValue = b@_FillValue
       
   132      delete (b)
       
   133 
       
   134      b = g->ER
       
   135      data3(m,n,:,:) = (/b(0,:,:)/)
       
   136      data3@long_name  = b@long_name
       
   137      data3@units      = b@units
       
   138      data3@_FillValue = b@_FillValue
       
   139      delete (b)
       
   140 
       
   141      ;b = g->NETRAD
       
   142      ;data4(m,n,:,:) = (/b(0,:,:)/)
       
   143      ;data4@long_name  = b@long_name
       
   144      ;data4@units      = b@units
       
   145      ;data4@_FillValue = b@_FillValue
       
   146      ;delete (b)
       
   147 
       
   148      ;b = g->LATENT
       
   149      ;data5(m,n,:,:) = (/b(0,:,:)/)
       
   150      ;data5@long_name  = b@long_name
       
   151      ;data5@units      = b@units
       
   152      ;data5@_FillValue = b@_FillValue
       
   153      ;delete (b)
       
   154 
       
   155      b = g->FSH
       
   156      data6(m,n,:,:) = (/b(0,:,:)/)
       
   157      data6@long_name  = b@long_name
       
   158      data6@units      = b@units
       
   159      data6@_FillValue = b@_FillValue
       
   160      delete (b)
       
   161 
       
   162      b = g->FSDS
       
   163      data7(m,n,:,:) = (/b(0,:,:)/)
       
   164      data7@long_name  = b@long_name
       
   165      data7@units      = b@units
       
   166      data7@_FillValue = b@_FillValue
       
   167      delete (b)
       
   168 
       
   169      b = g->FCEV
       
   170      data8(m,n,:,:) = (/b(0,:,:)/)
       
   171      data8@long_name  = b@long_name
       
   172      data8@units      = b@units
       
   173      data8@_FillValue = b@_FillValue
       
   174      delete (b)
       
   175 
       
   176      b = g->FCTR
       
   177      data9(m,n,:,:) = (/b(0,:,:)/)
       
   178      data9@long_name  = b@long_name
       
   179      data9@units      = b@units
       
   180      data9@_FillValue = b@_FillValue
       
   181      delete (b)
       
   182 
       
   183      b = g->FGEV
       
   184      data10(m,n,:,:) = (/b(0,:,:)/)
       
   185      data10@long_name  = b@long_name
       
   186      data10@units      = b@units
       
   187      data10@_FillValue = b@_FillValue
       
   188      delete (b)
       
   189 
       
   190   end do
       
   191   end do
       
   192          
       
   193   c->NEE = data1
       
   194   c->GPP = data2
       
   195   c->ER  = data3
       
   196   ;c->NETRAD = data4
       
   197   ;c->LATENT = data5
       
   198   c->FSH    = data6
       
   199   c->FSDS   = data7
       
   200   c->FCEV   = data8
       
   201   c->FCTR   = data9
       
   202   c->FGEV   = data10
       
   203   c->date   = date
       
   204   c->area   = g->area
       
   205 
       
   206   print (date)
       
   207 
       
   208 end