Bug on linear interpolation
Normally, the wind stress is interpolated with the bilinear interpolation scheme of the Scrip library included in OASIS-MCT.
In IPSLCM6 at resolution ORCA1 x LMD 144x144, the bilinear interpolation of the wind stress is bugged. Two NEMO points around 0°N/180°W takes there wind stress values from LMDZ points around 0°N/0°E, and the weights, base on the distance between the source and destination points, are totally wrong..
The bilinear interpolation of OASIS-MCT compute weights and adresses that are written in a file : rmp_tlmd_to_uorc_BILINEAR.nc, rmp_tlmd_to_torc_BILINEAR.nc or rmp_tlmd_to_torc_BILINEAR.nc.
Resolutions which are know to have the bug :
IPSLCM6 LR : eORCA1.2 x LMD144x144
Wrong fields are wind stress on T and U grids : COTAUXXU, COTAUYYU, COTAUZZU and COWINDSP.
Fields on V grids are OK.
IPSLCM6 MR : eORCA1.2 x LMD 280x180
Wrong fields are wind stress on T and U grids : COTAUXXU, COTAUYYU, COTAUZZU and COWINDSP.
Fields on V grids are OK.
IPSLCM6 MR : eORCA1.2 x LMD 256x256
Wrong fields are wind stress on T and U grids : COTAUXXU, COTAUYYU, COTAUZZU and COWINDSP.
Fields on V grids are OK.
Resolutions which are know to be free of the bug :
- IPSLCM5A2 VLR : ORCA2.3 x LMD96x95
How to detect the bug
Plot of the wind stress on the ocean grid, at U point. There is an obvious wrong point at 0°N/180°W.
Correction
A python program has been developed. It makes a few corrections of adresses and weights in a copy of the file.
The program is available at https://forge.ipsl.jussieu.fr/igcmg/browser/TOOLS/BUG_OASIS_BILINEAR
To run the correction, the steps are:
- Run the model with bilinear interpolation of the wind stress ;
- Check the wind stress fields on the NEMO grid ;
- If they are wrong, get the weigths files rmp_tlmd_to_[tuv]orc_BILINEAR.nc. They are produced by OASIS, but not saved by libIGCM ;
- Correct them with the program. You may need to adapt the program to the bug you observe :-(
- Put them in the IGCM repository where the other weights file lies ;
- Use MOZAIC interpolation for the wind stress, using these new weights files.
- Check the result ;-)
Namcouple content extract
for bilinear interpolation (1)
############################################################################ # # ATMOSPHERE --->>> OCEAN # ------------------------- ############################################################################ # # Field 8 : wind stress along X axis (a->o 1) # COTAUXXU O_OTaux1 23 <freq_coupling> 1 flxat.nc <output_mode> 256 257 362 332 tlmd uorc LAG=<lag_atm> P 0 P 2 SCRIPR BILINEAR LR SCALAR LATLON 10
for mozaic interpolation with corrected weights (6)
############################################################################ # # ATMOSPHERE --->>> OCEAN # ------------------------- ############################################################################ # # Field 8 : wind stress along X axis (a->o 1) # COTAUXXU O_OTaux1 23 <freq_coupling> 1 flxat.nc <output_mode> 256 257 362 332 tlmd uorc LAG=<lag_atm> P 0 P 2 MAPPING # Interpolation method ou parametres mozaic rmp_tlmd_to_uorc_BILINEAR_Corrected.nc dst
Attachments (1)
-
BugOasisBilinear.png
(109.2 KB) -
added by omamce 8 years ago.
Wind stress on ocean grid, U point
Download all attachments as: .zip