wiki:IPSLCM6/Coupling/BugBilinear

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

Wind stress on ocean grid, U point

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:

  1. Run the model with bilinear interpolation of the wind stress ;
  1. Check the wind stress fields on the NEMO grid ;
  1. 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 ;
  1. Correct them with the program. You may need to adapt the program to the bug you observe :-(
  1. Put them in the IGCM repository where the other weights file lies ;
  1. Use MOZAIC interpolation for the wind stress, using these new weights files.
  1. 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
Last modified 7 years ago Last modified on 07/26/17 10:33:02

Attachments (1)

Download all attachments as: .zip