Changes between Version 2 and Version 3 of Branches/Driver_Atm_Lev


Ignore:
Timestamp:
2012-06-01T13:00:43+02:00 (12 years ago)
Author:
jpolcher
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Branches/Driver_Atm_Lev

    v2 v3  
    1818There are 3 problems with this approach : 
    1919 
    20 * We impose the same value for the heigh of the atmospheric forcing variables to all points of the globe (except in the case of WATCHOUT). 
     20  1. We impose the same value for the heigh of the atmospheric forcing variables to all points of the globe (except in the case of WATCHOUT). 
    2121 
    22 * As the height of the forcing variable is in the run.def the user can change forcing data and forget to provide the changed height of the variables. This can only be solved if the height of the forcing data is in the file containing the data itself. 
     22  2. As the height of the forcing variable is in the run.def the user can change forcing data and forget to provide the changed height of the variables. This can only be solved if the height of the forcing data is in the file containing the data itself. 
    2323 
    24 * The height of the variables cannot change over time. But this is the case if the atmospheric variable come from a model which uses some type of pressure coordinate. 
     24  3. The height of the variables cannot change over time. But this is the case if the atmospheric variable come from a model which uses some type of pressure coordinate. 
    2525 
    2626As the fluxes computed are strongly dependent on the height of the atmospheric variable a small error here as a large impact. 
     
    2828== Strategy for adapting the driver == 
    2929 
    30 The strategy to adapt the driver needs to ensure that what works today continues to work. It also needs to limit the work needed to adapt existing netCDF forcing files. 
     30The strategy to adapt the driver needs to ensure that what works today continues to work. It also needs to limit the work required to adapt existing netCDF forcing files. 
     31 
     32We propose to add to the netCDF files a scalar information on the height of the 2 types of atmospheric variables (scalar : T, Q and vector : wind). This can be done easily with the following type of script : 
     33 
     34Creat a cdf file (levels.cdf) of the following type : 
     35{{{ 
     36netcdf filename { 
     37dimensions: 
     38        lev = 1 ; 
     39variables: 
     40        float IFSHybSigA(lev) ; 
     41              IFSHybSigA:long_name = "hybrid level at layer midpoints" ; 
     42              IFSHybSigA:title="hyam (mlev=hyam+hybm*aps)"; 
     43        float IFSHybSigB(lev) ; 
     44              IFSHybSigB:long_name = "hybrid level at layer midpoints" ; 
     45              IFSHybSigB:title="hybm (mlev=hyam+hybm*aps)"; 
     46data: 
     47 IFSHybSigA = 0.0 ; 
     48 IFSHybSigB = 0.998815059661865 ; 
     49} 
     50}}} 
     51 
     52Then have a small script when generates the netCDF file (levels.nc) and adds the variables to an existing forcing file : 
     53{{{ 
     54ncgen -o levels.nc levels.cdf 
     55ncks -A -v IFSHybSigA,IFSHybSigB levels.nc My_ORCHIDEE_Forcing_2012.n 
     56}}} 
     57 
     58This scalar information can either be of 3 types : 
     59 
     60  1. Sigma level height : This allows then to compute the actual height given the surface pressure. 
     61 
     62  2. Hybrid sigma levels (as in the example above)  : Also given surface pressure we can compute the height. 
     63 
     64  3. height in meters : This is the usual way we get forcing data. 
     65 
     66Following a convention readdim2.f90 will check for the presence of either one of the 3 above listed cases.  
     67 
     68If one of the cases is found in the forcing file, forcing_just_read will compute the height directly after reading surface pressure. 
     69 
     70If none of the above cases is found, the variables  '''HEIGHT_LEV1''' and '''HEIGHT_LEVW''' found in run.def will be used to fill the global fields. 
    3171 
    3272== Proposed modifications in the code ==