OASIS4 Developments and bug fix priorities
(S. Valcke - October 29, 2007)
Bug
under consideration High priority developments Medium priority developments
Low priority developments
Bug solved
Bug under consideration
- SCRIP problems near
the North Pole (in OASIS3 and
OASIS4)
- MetOffice (see
Richard's mail Sept. 13 2007)
- playback example
(see Rene's mail Sept 04 2007)
- BT42 to ORCA
- for regular
grids (Sophie, see Sophie's mail June 07 2007)
- priority: high
- Interpolation for
ORCA grid (see also Kristian's problem 3;
09/14/2006)
- status:
- Laure tested
ORCA to ORCA exchange with Sebastien's new corner definition: ORCAT-U-V
all using the same (ORCAT corners) are OK.
- Check if associating U
points to to the cells
formed by the V
points or to the cells formed by the F points does not change the
results (Laure)
- 2d
conservative:
- Overlapping
problem: pb for i=181 and 182 is solved (by excluding them from the
valid shape); pb for j=149 and 1/2 of 148 to check (excluding them from
valid_shape?); test with no mask for overlapping points (currently they
are masked).
- Solved: Pb on
the date line problem.
- interpolation
ORCA->ALADIN: some non-masked target points do not receive any value
(see Laure's mail June 06 2007 and René's answer on June 08
2007, and other mail exchanges June 18th); René to
improve/correct the
nearest-neighbour extra search on the ORCA grid.
- Solved: Results
are
good except for two grid points in the Arctic ocean; Hubert is working
on this
- Solved:
interpolation
ORCA->ORCA: strange results- partial lines of target points with
psmile_undef or partial ines of target point with initial value (see
Laure's mail June 08 2007)
- (solved) symptom: corner definition seem to be wrong (shift by 1 in i and
j)
- priority: high
- Memory leak in the
driver/transformer + pb in deallocation (see Rene's mail about
prismtrs_deallocate 02/22/07) (Sophie)
- status: Sophie to
test with IBM compiler with long runs; check dla_trans_in)
- priority: high
- Pb of PSMILe-T
synchronisation: (see Sophie's mail to Rene on August 21)
- Pb with extra
search (nneighbour) for ORCA->ALADIN grid (cf Laure's mail June 06
2007)
- Points in England
channel do not receive nearest-neighbour value but values from further
points
- Under
consideration by René (see René's mail June 08 2007)
- priority: medium
- Transformer bug for
interpolation on 3D degenerated grids, i.e. 2D (Sophie)
- cf Rene's mail
dated 03/07/2006: When 2d grids are specified but trilinear
interpolation is chosen the weights that are calculated by the driver
are wrong. Independent of the geographical source and target locations
weights are all 0.5 (see also mail Transformer bug 08/25/20006)
- status: one bug fix provided for
prismtrs_trilinear_weight.F90; correct the number of
neighbours transfered for target point located on the bottom (or top)
face of first (or last) source cells (Rene)
- priority: medium
- Johannes'
problem; interpolation at poles (René, Sophie)
- symptom: ripples
near the poles for interpolation from Gaus Red for bilinear and bicubic
- temporary solution: introduce a 4th behaviour "mirror"
which results in extension of the domain beyond the poles by mirroring
the domain for the local search and adapt Transformer (René,
Sophie)
- status:
- solved with CPP
key __MIRROR_POINTS for bicubic
- to implement
for bilinear (high priority)
- implement "new"
mirror option (more physically based)
- priority: medium
- Spurious areas at
the borders of the MPI domains of the target model
- reported by Johannes (june 07),
we asked Johannes if this problem still exist, he explained that the
spurious areas appear on the target grid at the border of the source
MPI domains so they are probably caused by the lack of global search on
the source grid
- status: should be
solved with implementation of global searchGlobal search for
irrlonlat_regvrt + reglonlatvrt (Hubert,
René)
- Treatment of
periodicity in j (cf Rene's mail to Johannes on 23/02/2006)
- quick fix by
René in March to overcome this problem
- full treatment later with low priority
- Vertical bounds in
debug files for regvrt grids with 1 level only
- nneighbour2d
/3d for reglonlatvrt and irrlonlat_regvrt grids
- All cases work now, but they gives
sligthly different results; investigate why (Sophie)
- priority: low
High priority
developments
- <> Global search for
gaussreduced_regvrt : to validate
(Hubert, René)>
- 2D conservative
remapping -not parallel
- implemented and
tested for irrlonlat_regvrt, reglonlatvrt,
gaussreduced_regvrt, ORCA (see "Bugs under consideration" above)
- 2D conservative remapping with global search (René)
- Use of Trac (SV)
- Interpolation quality check (parallel
+ monoproc) + comparison with OASIS3 results (Laure, Sophie)
- Toymodels reproducing CICLE coupled
models (parallel
+ monoproc) (Marie-Pierre)
- Interpolation using a user pre-defined
set of weights and addresses (Sophie)
- IO for "gridless" grid (Reiner)
- Distributed mode with netcdf, see
Reiner's mail 06/12/2006 (Reiner)
- implement if_masked for
nneighbour2D/3D adding vneighbours -see comments in
oasis4/doc/DescConf.tex (no if_missing nor if_outside for
now) (Rene)
- 2D conservative remapping:
Normalization by true area (Sophie)
Medium priority developments
- Adaptation of PSMILe to read interpolation/communication
information from files at restart instead of redoing all calculations
at the beginning of each run.
- Simple
research
algorithm applicable for all grids (monoproc,
as in OASIS3)
- Porting on CERFACS IBM (Sophie)
- Porting on Meteo-France NEC (Laure, Marie-Pierre)
- Review 2D1D interpolation (Sophie, Laure)
- Clean coding of Transformer interpolation routines (check
SX cpp key) (Sophie, Marie-Pierre)
- Interpolation behaviour at domain boundaries (cf minutes
of 25-27/10/2006 meeting in Sankt-Augustin)
- Problem with lag
greater than 1 coupling period (2 time occurence in the restart file,
see mail from Josefine 05/10/2006)
- Use of FCM for OASIS4 (and OASIS3) build system
- Warning in psmile_def_domain for the 3rd direction for
gaussreduced_regvrt grids (cf Laure's mail 03/22/2007)
- Combination of source fields (for CICLE) (Sophie)
- Change masks in T form integers to logical (Sophie)
- Review XML files and PSMILe API (?) in relation with
Curator and Metafor (in particular, remove
all description information from SMIOC, change grid and grid
family for resolution et grid, put nbr_overlap in
PSMILe API) (Sophie)
- Separate horizontal and vertical grid definition in API
(? cf gridspec.nc)
- Implement more SCC and SMIOC validity checks in Driver
(Sophie):
- no error
message is produced if the source of a field is not defined properly in
the smioc files
- if no max_proc
provided, use by default min_proc + number of procs (cf
Philippe's problem)
- Improve documentation on interpolation schemes (Sophie)
- Provide database of users, FAQs, CPU statistics on the
web/wiki (Sophie)
- Ensure coherence with PRISM SVN server in Hamburg (Sophie)
- Papers in "Earth Science
Informatics" (ESI, Springer) or possibly Geoscientific
Model Development (EGU)
- More PSMILe function to get SCC and SMIOC info in model
code (Sophie)
- Support of bundles, subgrids, vectors, and bundle of
vectors
- Automatic nightly build and test system
- Check time
operation below the prism_get (IO data only) and related returned info
code (Sophie)
Low priority
developments
- Transformer
relocated in source PSMILe (Kristian's need to run one component
sequentially one after the other - no load balancing pbs)
- Check PSMILe
behaviour for input from file: by default, time linear interpolation
within the bounds?
- prism_info
routine
(tu return the meaning of info arguments)
- Remove need of SCC
in standalone mode
- Support
conditional_computation in PMIOD (CM requirements) e.g. if an output
transient is calculated only under a certain condition or after a
certain period of time.Support more than one components running
sequentially into one application
- Support of GME grid
- Test spawning
of one application on different hosts
- Additional Driver
functions (prism_timestamp, prism_restartsaved, prism_message)
; provide more
information
on load
balance (e.g. how long Oasis4 waited on a call)
- Interpolation
- Implement tricubic interpolation
- 3D
conservativ3D (contact Balaji for method), user3d
- 1D cubic,
conservativ1D, user1d
- reconstruction of
vertical position of grid points based on the units and
auxiliary fields (see CF convention)
- 1D1D1D:
- Can be used for
grids with vertical units into which linear interpolation makes sense.
- 1D1D1D
supported in PSMILe following user's
choice in SMIOC ( inter1D,interp1D,interp1D)
- 1D:
1Dnneighbour, linear, none
- No need of
particular PS-T transfer routine
- Driver: Check that
interpolation method chosen is appropriate for the grid (e.g. check
that vertical units are in meters if nneighbour3D or trilinear is chosen (SV)
- PSMILe calendar tool (SV) on demand
- Support of other
type of exchange_date (once,
precise, lastdayinmonth, list)
- Support of source_time_operation: tmin
and tmax
- Support of
reduction, coupling and I/O after reduction
- Support of
unstructured grid (PS I/O already OK if local partition can be
expressed with only an offset in the global index space. For
unstructured grids, this is the case if the local partition covers one
segment in a 1D global space), expression of connectivity.
- Volume type: for irrlonlatvrt
and unstuctlonlatvrt grids, a
description of the way the corners are connected is needed. An
additional PSMILe call defining the
connectivity between the corners could be used, but the prefered solution for now would be to explicitely defined different volume types in a
User's Guide and refer to those explicitely
in the SMIOC.
- Saving of coupling
restarts more frequently than run chuncks
- Treatment of "abort
restart"
- Support of grid
evolving with time
- Automatic
verification of what has changed and recalculation only for what has
changed?
- Problem if the
grid changes between prism_put and coreesponding prism_get
with lag
- Problem of
automatic writing and reading of coupling restarts
- prism_def_var: arguments redundant with SMIOC information (SV)
- PSMILe I/O:
- Interaction with MetOffice; asynchronous IO server, netCDF vs HDF
performance, etc.
- Add option in
SMIOC and use it in PS so that grid information is not written to the
file with the data (RV, SV)
- Format
supported: mpp_ieee32 OK for I; mpp_native
for I; mpp_ascii; GRIB; other
- Output file size
chosen by user; add a keyword in SMIOC (RV, SV)
Bug solved and developments done
- Global
search for irrlonlat_regvrt + reglonlatvrt + irrlonlat vrt:
OK for all interpolation except 2d conservative remapping (Hubert, René)
- Interpolation
problems with Gaussian Reduced as source grid:
- Bilinear form
BT42 to AT42 with if_masked=nneighbour: it
aborts; solved by checkin from 21 Aug 2007 (Rev 1480)
- Bilinear/bicubic
with if_masked=nneighbour BT42 to ORCA2: some points are still at
psmile_undef; solved by Rev 1487
- 2D conservative:
pb of transfer between PSMILe and Transformer (see
Sophie's mail to Rene on August 20); solved by Rev 1530.
- priority: high
- Interpolation
between the grids
NEMO/ORCA2 T and ALADIN which are both irrlonlat_regvrt (in the frame
of CICLE), when if_masked=nneighbour.
- Symptom: aborts in
psmile_mg_srch_nneigh_irr_dble.F90: line 574 (see Laure's
mail, 05/29/2007)
- Solved by René (01 june 2007)
- Interpolation
between two gaussian reduced grids when the target grid has a mask (cf
mail by Laure on May 14th 2007)
- Symptom:
Aborts in psmile_mg_found_loc_to_3d.F90
- Solevd by René
(as well as other problem detected when interpolating between two different gaussian reduced grids)
- nneighbour2d
for reglonlatvrt (René)
- symptom: was not supported by the
PSMIle
(see René's mail 01/12/2007)
- now implemented and check OK by
Sophie (May 14, 2007)
- nneighbour2d
/3d for irrlonlat-regvrt (René):
- symptom: only the the target points
that coincide with the source points receive something (see
René's mail 01/12/2007)
- now implemented; checked by Sophie
(May 14, 2007)
- __PSMILE_IO_SYNC
directive in mpp_io (this invokes calls to mpp_flush.) (Reiner)
- Memory leak in SHMI
(René)
- Treatment of periodicity in j (cf Rene's mail to
Johannes on 23/02/2006)
- symptom: memory
increases with calls to PSMILe_bsend and terminates in MPI_Isend.
- status: maybe
solved with new psmile_bsend.c; confirmed by SMHI.
- Ian Henderson's bug:
- symptom: The target field has some
zero values when the longitude of the
grid are defined with numbers more negative than -180 (see Ian's mail
dated 11/15/2006)
- solved and checked in on trunk and
development branch 01/18/2007
- Richard Hill's problem (09/04): grid
points at +- 90 (René)
- status: solved and checked-in;
confirmed by Richard.
- Gauss reduced grid to high res ocean
grid (Kristian's problem 2; 09/14 and 09/06) (René)
- symptom: problems along the
greenwich meridian
- Johannes reproduced this problem in
his IFS-OASIS4-CTM environment
- status before 09/27: problem
identified, idea for a solution exist: perform some operations now done
in psmile_gauss_setup_dble/real somewhat earlier before the call to
psmile_get_grid_extent_dble/real and already use the auxillary grid
there instead of the true gauss grid
- status 09/27: solved and checked in
- Reg to Reg problem when no
psmile_set_mask is called (Kristian's problem 1; 09/14) (René)
- status: solved and checked in
- happens only when there are matching
grid points and non-matching grid points (see René's mail
09/22/2006)
- non-trivial to fix if we want to
maintain to optimisation done for reglonlatvrt grids
- the problem can be worked around by
calling a prism_set_mask
- Date line problem:
- reported by Johannes (june 07)
- status: solved; Johannes confirmed
in mail dated 30/10/2006