OASIS4 plan of development
June 2003
20/06/2003
Preliminary remarks:
-
Minimal list of local transformations to be included in OASIS4:
-
AVERAGE
-
ACCUMUL
-
T_MIN, T_MAX
-
multiplication by a factor,
-
addition of a constant
-
Minimal list of other transformations to be included in OASIS4:
-
2D interpolations : neareast-neighbour, 1st order conservative remapping
(all types of 2D grids)
-
3D interpolations: neareast-neighbour, 2D level per level + linear
vertically
-
Combinations: simple combination (different coupling fields, before or
after interpolation, masked or not, multiplied or not by a factor)
-
The grids evolving with time need not to be supported explicitely in the
prototype (but this extension must be possible in future version)
-
Support of PMILe prism_timestamp, prism_restartsaved, prism_message functions
(responsible: Damien and Sophie) would be nice but is not essential for
the prototype.
-
Support of PSMILe calendar functions (reponsible: IPSL) would be nice but
is not essential for the prototype.
-
Non-gridded data should be supported in the prototype.
List of developments and calendar
1.Transfer of information between the SCC and SMIOC xml files and
OASIS4 with the SASA tools:
1.1 - SCC DTD, one XML example, API (Sophie
& Damien; 15/05)
1.2 - SASA tool for extracting SCC information
(Philippe & Marie-Alice & Sophie; 15/08)
1.3 - PMIOD-SMIOC DTD, XML examples (Sophie
& Claes; 20/06)
1.4 - PMIOD-SMIOC API (Sophie & Damien;
30/07)
1.5 - SASA tool for extracting SMIOC information (Philippe & Marie-Alice
& Sophie; 30/08)
2. Driver:
2.0 - Transfer of SCC information to PSMIle (below prism_init)
(Damien; 30/06)
2.1 - SMIOC information structure, analysis, "intelligent" choices;
transfer of appropriate SMIOC information to each component model
PSMIle (below prism_init_comp), and to the Transformer (Damien & Sophie;
30/07)
2.2 - Use of SASA tool to get SCC information (Damien; 30/08)
2.3 - Use of SASA tools to get SMIOC information
(Damien; 15/09)
3. Transformer:
3.1 - Reception of SMIOC information from
Driver (Damien; 15/08)
3.2 - Reception of neighborhood relation
and communication information from the PSMILe (below prism_enddef) (Damien;
30/08)
-
2D interpolations : neareast-neighbour, 1st order conservative remapping
(all types of 2D grids)
-
3D interpolations: neareast-neighbour, 2D level per level + linear
vertically
3.3 - Calculation of interpolated target field:
-
2D interpolations : neareast-neighbour, 1st order conservative remapping
(all types of 2D grids) (Damien; 15/06)
-
3D interpolations: neareast-neighbour, 2D level per level + linear
vertically (Damien; 30/08)
3.4 - Support of simple combinations (Damien; 30/09)
4. PSMILe - coupling and I/O
4.1 - Implementation of structures for
information transfered through the PSMILe (grids, masks, etc) (done)
4.2 - Establishment of the different communicators
(done)
4.3 - Implementation of structures for
SCC information (done)
4.4 - Interaction with Driver to get SCC
information (below prism_init) (Damien, Rene and Hubert; 30/06)
4.5 - Implementation of structures for SMIOC
information (transient variables, transformations, source (file or I/O)
or target (file or I/O), input or output dates, etc.) (Rene and Hubert;
30/07)
4.6 - Interaction with Driver to get SMIOC
information (below prism_init_comp) (Rene and Hubert; 15/08)
4.7 - Determination of communication and
neighborhood search (below prism_enddef) (Rene and Hubert; 30/07)
4.8 - Transfer of neighborhood relations,
neighbor grid information and communication information to the Transformer;
Intialisation of domain and grid partitioning informations
for I/O (below prism_enddef)(Rene, Hubert 30/07 and Reiner; 15/08)
4.9 - Below prism_put:
-
Analysis of 'date' and `date_bounds' argument (Rene and Hubert; 30/07)
-
Local transformation (Sophie; 15/09)
-
Sending of coupling fields during the run (direct, through the Transformer)
(Rene and Hubert; 30/07)
-
I/O functionalities (Reiner)
-
Focus on NetCDF I/O, use of the MPP_IO package.
-
Enhancement of MPP_IO to support multiple MPI communicators
(needed for the multi-component single executable ansatz.)(15.08.2003)
-
Multiple MPI tasks write to one file. Domain stiching
is done by mpp_io. Information for that task is provided via the mpp_domains
module which will be initialized underneath of prism_enddef .(30/08, depends
partially on task 4.8)
-
Multiple MPI tasks write to multiple files. Information
about domain splitting is written to the NetCDF files as an global attribute.
Domain stitching is done by an afterburner provided with the MPP_IO package
(available) (or an XML based tool if somebody is writing that.)
-
Base file names can be choosen by the user. File
names will be extended by the initial date of the time stamps contained
in a certain file.(30/08, depends on task 4.5 and anylsis of date and bounds
(see above).
-
Grid and Mask will be written together with the data
in a first development step (30/08).. In a second step grid and mask are
separated from the data (30/09).
-
Chunking of time stamps series into a set of smaller
files. File size can be chosen by the user (30/09).
-
Four pack modes are supported (30/08):
-
1 double precision into 8 bytes
-
2 single precision into 8 bytes
-
4 2-byte entities into 8 bytes
-
8 1-byte entities into 8 bytes
-
Binary file output will be supported (30/09).
-
Future work might consider GRIB encoded files
(no specific date planed, mid year 3)..
-
4.10 - Below prism_get:
-
Analysis of 'date' and `date_bounds' argument
(Rene and Hubert; 30/07)
-
Local transformation (Sophie; 15/09)
-
Reception of coupling fields during the run (direct,
through the Transfromer) (Rene and Hubert; 30/07)
-
I/O functionalities(Reiner)
-
Focus on NetCDF CF I/O, use of the MPP_IO package.
-
Enhancement of MPP_IO to support multiple MPI communicators
(needed for the multi-component single executable ansatz.)(15.08.2003)
-
Multiple MPI tasks read from one file.
-
Distribution of data on domains provided via the
mpp_domains module of the mpp package.
-
mpp_domains will be initialized underneath prism_enddef.(30/08,
depends partially on task 4.8)
-
Multiple MPI tasks read from multiple files.
-
Number of MPI tasks should not change during the
run. Check for matching of domains and data provided will be done by mpp_io
and grid information provided by PSMIle interface. (30/08, depends partially
on task 4.8)
-
If number of MPI task changed data have to be stitched
together by means of an external tool provided either by the mpp package
(available) or an XML based tool.
-
File names can be chosen by the user. Consistency
ckecks will be performed like the check on the correct experiment or the
correct time stamps. (30/08, depends on task 4.5 and anylsis of date and
bounds (see above)
-
Grid and mask informations are kept with the data
in first development step(30/08). . In a second development step grid and
mask are read from separate files.
-
Support of chunks of time stamps distributed across
several files. Stitching of time stamp series is possible via cdscan (CDMS/CDAT).(30/09,
cdscan is available today)
-
Four pack modes are supported (30/08):
-
1 double precision into 8 bytes
-
2 single precision into 8 bytes
-
4 2-byte entities into 8 bytes
-
8 1-byte entities into 8 bytes
-
Binary input will be at low priority.
-
Future work might consider GRIB encoded files (no
specific date planed, mid year 3)
5. PSMILe - others
5.1 - Implementation of PSMILe prism_get_persist
functionality (Philippe & Marie-Alice; 30/09 ??)