New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
WorkingGroups/ConfigurationManager (diff) – NEMO

Changes between Version 16 and Version 17 of WorkingGroups/ConfigurationManager


Ignore:
Timestamp:
2013-02-25T16:09:01+01:00 (11 years ago)
Author:
jpaul
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WorkingGroups/ConfigurationManager

    v16 v17  
    2525 
    2626= ''' 1. What do we need to create regional configuration ''' = 
    27  
    2827 * coordinates 
    2928 * bathymetry 
     
    3534 
    3635= ''' 2. How Mercator creates regional configuration ''' = 
    37  
    3836 1. Hypothesis 
    3937   * orca grid to irca grid 
     
    7775 
    7876= ''' 3. How NOC creates regional configuration ''' = 
     77 1. Boundary condition : BDY tools 
    7978 
    80  1. Boundary condition : BDY tools 
    8179The BDY subroutines can be employed to communicate information from out-side the regional model domain into the interior while supporting both outflow and inflow conditions. This set of tools was born out of a requirement to have a generic method by which to provide boundary data for use by these subroutines. The original code for these tools was written in Mathworks Matlab. It was subsequently translated into Python for wider distribution and to facilitate development. The Python port is 90% complete and should be finished at tested by the end of the month. At present the tools have only been tested by transferring data from global ORCA simulations to refined regional domains, although in principle could use non-ORCA input to generate BDY data. 
     80 
    8281 * Works using a NEMO style namelist to initiate BDY configuration. 
    8382 * Automatic identication of BDY points from a user chosen or predefined mask. 
    8483 * KDTree nearest neighbour matchup between the identied BDY points and the associated locations on source grid. 
    8584 * Data are rst interpolated (horizontally) from source grid to destination BDY points using: 
    86   * Bilinear 
    87   * Gauss like - distance weighted function using nearest 9 points with a decorrelation distance r0 proportional to dx*cos(lat(j,i)) 
    88   * Nearest - takes closest point on distance (for use with similar res src and dst grids) 
     85   * Bilinear 
     86   * Gauss like - distance weighted function using nearest 9 points with a decorrelation distance r0 proportional to dx*cos(lat(j,i)) 
     87   * Nearest - takes closest point on distance (for use with similar res src and dst grids) 
    8988 * Then in the vertical 
    90   * Linear 
    91   * Cubic Spline 
     89   * Linear 
     90   * Cubic Spline 
    9291 * Output in NEMO v3.2/3.3 and 3.4 forms Time stretching used to accommodate mismatch in source and destination calendars 
    9392 * Optional smoothing of BDY boundary (post interpolation) 
     
    9796 
    9897= ''' 4. How MetOffice creates regional configuration ''' = 
    99  1. Hypothesis 
    100   Regional models at the Met Oce up to now have been based on a standard latitude/longitude grid, sometimes rotated (ie. north pole of grid not at geographical north pole).   Open boundaries are handled using the NEMO BDY module. The code for generating the grid definition and model input files is a mixture of IDL and Fortran. 
    101   Most model input files are generated by 3D linear interpolation. Horizontal interpolation weights are calculated using the SCRIP code developed at Los Alamos. Met Office Fortran routines are used to calculate the vertical interpolation weights and perform the interpolation in 3D using the horizontal and vertical interpolation weights. The interpolation routine can handle full 3D interpolation required for eg.  s-coordinate models.  The interpolation routine rotates vector fields where necessary. 
     98 1. Hypothesis Regional models at the Met Oce up to now have been based on a standard latitude/longitude grid, sometimes rotated (ie. north pole of grid not at geographical north pole).   Open boundaries are handled using the NEMO BDY module. The code for generating the grid definition and model input files is a mixture of IDL and Fortran. Most model input files are generated by 3D linear interpolation. Horizontal interpolation weights are calculated using the SCRIP code developed at Los Alamos. Met Office Fortran routines are used to calculate the vertical interpolation weights and perform the interpolation in 3D using the horizontal and vertical interpolation weights. The interpolation routine can handle full 3D interpolation required for eg.  s-coordinate models.  The interpolation routine rotates vector fields where necessary. 
    10299 1. Limits 
    103   * Only handles latitude/longitude grids (with possible rotation). 
    104   * Does not make use of flexibility of BDY module - only handles regular rectangular boundaries at edge of the domain. 
    105  1. Coordinates 
    106  An IDL routine takes the model bathymetry as input (see 4.3) and generates the NEMO coordinates.nc file as well as the grid definition files required by the SCRIP routines. Note that this routine can only handle latitude/longitude grids with possible rotation. 
    107  1. Bathymetry 
    108  Bathymetry on the model domain is derived from the GEBCO dataset using a box-averaging algorithm, ie. all data points within a model gridbox are averaged to find the model depth at that point. IDL code. Bathmetry at open boundaries is matched to the bathymetry of the low-resolution model supplying the boundary data. Sometimes hand editing of the bathymetry is performed, eg. to remove nearly-enclosed inlets on the coast. Bathymetry for the North-West Shelf domain is derived from the NOOS 1 nautical mile bathymetry using grid-box averaging. 
    109  1. Boundary condition + Tide 
    110  An IDL routine takes the model coordinates.nc le as input and generates the coordinates.bdy.nc file (definition of boundary in BDY module) as well as the grid definition files required by SCRIP. Note that this routine can only handle regular open boundaries around the edge of a rectangular domain, so doesn't make use of the flexibility of the boundary zone definition in BDY. 
    111  Boundary data is generated using 3D linear interpolation. Tidal harmonic forcing data is interpolated from output from a tidal model. 
    112  1. Initial condition 
    113  Regional models are spun up from rest. Initial temperature and salinity fields are either taken from climatology or from a low-resolution FOAM analysis. The temperature and salinity fields are interpolated to the model grid using 3D linear interpolation. 
    114  1. Runoff 
    115  Runoff is generated from the GRDC climatological dataset using a set of bespoke scripts and fortran code. For each river the data point nearest to the coast is selected and applied to the nearest coastal point in the model. For large rivers the runoff is spread over a number of ocean points. Runoff is applied as a surface flux. 
     100   * Only handles latitude/longitude grids (with possible rotation). 
     101   * Does not make use of flexibility of BDY module - only handles regular rectangular boundaries at edge of the domain. 
     102 1. Coordinates An IDL routine takes the model bathymetry as input (see 4.3) and generates the NEMO coordinates.nc file as well as the grid definition files required by the SCRIP routines. Note that this routine can only handle latitude/longitude grids with possible rotation. 
     103 1. Bathymetry Bathymetry on the model domain is derived from the GEBCO dataset using a box-averaging algorithm, ie. all data points within a model gridbox are averaged to find the model depth at that point. IDL code. Bathmetry at open boundaries is matched to the bathymetry of the low-resolution model supplying the boundary data. Sometimes hand editing of the bathymetry is performed, eg. to remove nearly-enclosed inlets on the coast. Bathymetry for the North-West Shelf domain is derived from the NOOS 1 nautical mile bathymetry using grid-box averaging. 
     104 1. Boundary condition + Tide An IDL routine takes the model coordinates.nc le as input and generates the coordinates.bdy.nc file (definition of boundary in BDY module) as well as the grid definition files required by SCRIP. Note that this routine can only handle regular open boundaries around the edge of a rectangular domain, so doesn't make use of the flexibility of the boundary zone definition in BDY. Boundary data is generated using 3D linear interpolation. Tidal harmonic forcing data is interpolated from output from a tidal model. 
     105 1. Initial condition Regional models are spun up from rest. Initial temperature and salinity fields are either taken from climatology or from a low-resolution FOAM analysis. The temperature and salinity fields are interpolated to the model grid using 3D linear interpolation. 
     106 1. Runoff Runoff is generated from the GRDC climatological dataset using a set of bespoke scripts and fortran code. For each river the data point nearest to the coast is selected and applied to the nearest coastal point in the model. For large rivers the runoff is spread over a number of ocean points. Runoff is applied as a surface flux. 
    116107 1. Surface forcing 
     108 
    117109Surface forcing is derived from Met Office atmosphere model fields and interpolated to model points using bilinear interpolation. 
    118110 
    119111= ''' 5. How INGV creates regional configuration ''' = 
     112Most of the steps are done using matlab/f90 codes; We deal only with regional configuration regular configuration, no global. Our procedure is divided into 3 steps: Grid-[wiki:InitialCondition]-Forcing. 
    120113 
    121 Most of the steps are done using matlab/f90 codes; 
    122 We deal only with regional configuration regular configuration, no global. 
    123 Our procedure is divided into 3 steps: Grid-InitialCondition-Forcing.  
    124114 1. Grid 
    125   1. required input files: high resolution bathymetry (usually 1/2km), coast line (100m resolution); 
    126   1. define the region and the discretization step (lat, lon, delta-lat, delta-lon); 
    127   1. define kind of vertical discretization, zeta, sigma; 
    128   1. we usually define a regular horizontal mesh; 
    129   1. interpolate bathymetry into the model mesh (biliniar interpolation); 
    130   1. define number of vertical levels and they distribution: we usually make use of zeta coord with partial step. 
    131   For this case, in order to fix the vertical levels distribution we use ocean observations (CTD, XBT and ARGO). 
    132   We interpolate the obs data into several vertical grids generated using NEMO algorithm and then back to the original grid (usually 1m resolution); 
    133   we check for the vertical grid providing smaller interpolation error and able to reproduce the vertical water mass distribution;  
    134   when sigma coordinates are used we compute hydrostatic consistency factor and smooth (simple laplacian filter) the topography accordingly; 
    135   1. define minimum depth; 
    136   1. refine land-sea mask on the base of the coast-line dataset (matlab GUI); The idea is to preserve realistic coast line despite the minimum depth; 
     115   1. required input files: high resolution bathymetry (usually 1/2km), coast line (100m resolution); 
     116   1. define the region and the discretization step (lat, lon, delta-lat, delta-lon); 
     117   1. define kind of vertical discretization, zeta, sigma; 
     118   1. we usually define a regular horizontal mesh; 
     119   1. interpolate bathymetry into the model mesh (biliniar interpolation); 
     120   1. define number of vertical levels and they distribution: we usually make use of zeta coord with partial step. For this case, in order to fix the vertical levels distribution we use ocean observations (CTD, XBT and ARGO). We interpolate the obs data into several vertical grids generated using NEMO algorithm and then back to the original grid (usually 1m resolution); we check for the vertical grid providing smaller interpolation error and able to reproduce the vertical water mass distribution;  when sigma coordinates are used we compute hydrostatic consistency factor and smooth (simple laplacian filter) the topography accordingly; 
     121   1. define minimum depth; 
     122   1. refine land-sea mask on the base of the coast-line dataset (matlab GUI); The idea is to preserve realistic coast line despite the minimum depth; 
    137123 1. Initial Condition 
    138   1. required input file: observations, already existing mapped climatology (SeaDataNet, MedAtlas), or parent model results; 
    139   1. In case of sparse observation we do Objective Analysis to map the data into the model grid. in case of already existing mapped data we do a simple linear interpolation; 
    140   1. after the IC file is created we check for vertical stability and correct if necessary; 
     124   1. required input file: observations, already existing mapped climatology (SeaDataNet, MedAtlas), or parent model results; 
     125   1. In case of sparse observation we do Objective Analysis to map the data into the model grid. in case of already existing mapped data we do a simple linear interpolation; 
     126   1. after the IC file is created we check for vertical stability and correct if necessary; 
    141127 1. Forcing 
    142   1. surface forcings; No specific tools are used here, just convert grib into netcdf according NEMO needs; 
    143   1. Lateral open boundary condition (up to now only OBC, simple test with BDY); up to now only ad-hoc scripts; The only common point are the integral constrains we apply. I.E. Preserve transport before and after the interpolation.  
     128   1. surface forcings; No specific tools are used here, just convert grib into netcdf according NEMO needs; 
     129   1. Lateral open boundary condition (up to now only OBC, simple test with BDY); up to now only ad-hoc scripts; The only common point are the integral constrains we apply. I.E. Preserve transport before and after the interpolation. 
    144130 
    145131= ''' 6. Proposals to solve some limits ''' = 
     
    147133 * to create Bathymetry on this new grid we could use the GEBCO dataset with the OPABAT tool (already in NEMO). 
    148134 * we could used SCRIPP3D to create boundary condition and inital state so : 
    149   * we could change the number of vertical levels 
    150   * we could change z-coordinaltes to s-coordinates 
    151   * we could change grid orca to regular 
    152  However, It may not allow to keep U, V point on the boundary. 
     135   * we could change the number of vertical levels 
     136   * we could change z-coordinaltes to s-coordinates 
     137   * we could change grid orca to regular However, It may not allow to keep U, V point on the boundary. 
    153138 
    154 AM Treguier proposes to add the BMGtools as potential tools. The BMGtools (developped by Ifremer) allow to refine grid, to create bathymetry and to check 
    155 it. Moreover she proposes to use AGRIF nesting tools, as there is common tasks for both tools. So it will be easiest to maintain codes. 
    156  
    157  
    158  
     139AM Treguier proposes to add the BMGtools as potential tools. The BMGtools (developped by Ifremer) allow to refine grid, to create bathymetry and to check it. Moreover she proposes to use AGRIF nesting tools, as there is common tasks for both tools. So it will be easiest to maintain codes. 
    159140 
    160141= ''' 7. What the config manager could do, with which file and tool ''' = 
     142 1. Coordinates 
     143|| input || function || tool || advantage || inconvenience || 
     144|| '''low resolution coordinates''' || refine ORCA grid || AGRIF_create_coordinates || || || 
     145|| || || GRIDGEN || || || 
     146|| || || BMGtools|| || || 
     147|| '''high resolution coordinates''' || extract ORCA grid || Mercator Fortran code || || || 
     148|| || || GRIDGEN || || || 
     149|| || || BMGtools|| || || 
     150|| '''low resolution bathymetry''' || create regular grid || MetOffice IDL tools || || | 
     151 2. Bathymetry 
     152|| input || function || tool || advantage || inconvenience || 
     153|| '''bathymetry dateset''' || create bathymetry on grid || OPABAT || || || 
     154|| || || MetOffice IDL tools || || || 
     155|| || || BMGtools, based on SCRIPP3D || || || 
     156|| || || AGRIF_create_bathy || || || 
     157|| '''low resolution bathymetry''' || refine bathymetry || BMGtools || || || 
     158|| || || AGRIF_create_bathy || || || 
     159|| '''high resolution bathymetry''' || extract bathymetry || Mercator Fortran code || || | 
     160 3. Boundary Condition 
     161|| input || function || tool || advantage || inconvenience || 
     162|| '''low resolution climatolgy or analysis''' || interpolation to rectangular boundaries || SCRIP and MetOffice IDL tools || || || 
     163|| || || Mercator Fortran code || || || 
     164|| || interpolation to unstructured boundary || NOC python tools || || || 
     165 4. Initial Conndition 
     166|| input || function || tool || advantage || inconvenience || 
     167|| '''low resolution climatolgy or analysis''' || interpolation of T, S and start from rest || MetOffice IDL tools || || || 
     168|| '''low resolution climatolgy, analysis or restart''' || split restart and/or interpolation of T, S, U, V, SSH || Mercator Fortran code || || || 
     169 5. Runoff 
     170|| input || function || tool || advantage || inconvenience || 
     171|| '''low resolution climatology''' || as surface flux, on nearest coastal point, large rivers spread over ocean points || MetOffice Fortran code || || || 
     172|| || as surface flux, spread on coastal points, large rivers spread over ocean masks. || Mercator Fortran code || || || 
     173|| || as surface flux, spread on coastal points, and as BDY large rivers. || Mercator Fortran code || || || 
     174 6. Surface Forcing 
     175|| input || function || tool || advantage || inconvenience || 
     176|| '''low resolution climatology or analysis''' || interpolation on the fly || fldread || || || 
    161177= ''' 8. config manager demonstrator ''' = 
    162178I propose to build a demonstrator tool. This demonstrator will not be able to do all tasks listed in part III. However i will try to take it into account, in order to make it easy to plug in those tools.  The demonstrator will allow to create 1/12° regional configuration, using 1/4° global climatology to initialised and forced the new configuration. Bathymetry and grid will be extract from already existing files. I hope do it before this summer, so you could test it before next fall NEMO meeting, and maybe we could add this demonstrator to the next release of NEMO. Then we could add, step by step, other tools to improve the capabilities of the cong manager.