time_series/10.write_ameriflux_cn_FMH40cn.ncl
author Forrest Hoffman <forrest@climatemodeling.org>
Thu, 26 Mar 2009 14:02:21 -0400
changeset 1 4be95183fbcd
permissions -rw-r--r--
Modifications to scoring and graphics production for the final version of code for the C-LAMP paper in GCB.
     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.40cn"
    14   
    15   ;diro  = "/ptmp/jeff/"
    16   diro  = "/lustre/wolf-ddn/scratch/hof/cases1/i01.40cn_out/"
    17   filo  = model_name + "_ameriflux_2076-2100_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 = 2076
    27   year_end   = 2100
    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