[MITgcm-devel] possible issue with exf interp defaults

Jean-Michel Campin jmc at mit.edu
Thu Dec 22 17:45:01 EST 2016


Hi Gael,

Regarding default interpMethod, it's consistent with what the older
code was doing before addition of run-time param {inputfield}_interpMethod
(in Dec 2011), also (vaguely) consistent with the name of the CPP option
("USE_EXF_INTERP" and not "ALLOW_EXF_INTERP").
So I would prefer not to change this default.

Now, when the model grid is not a usual (non-rotated) lat,lon grid,
I don't see how we could define "good" default value for inp_lat0,lon0
& inp_dlat,dlon. So may be the second solution:
> - set the lon0, inc, etc defaults to UNSET_RL and stop if the user did not
>   define them in data.exf?
would be better.
Or may be similarly, just setting default {inputfield}_nlon & _nlat to zero
and check+stop if corresponding file name is used with interp and with nlon,nlat=0

One thing to add: in your case (usingCurvilinearGrid=.TRUE.,), delX & delY
are not used to build the grid so they are (probably) equal to UNSET_RL :
 inp_lon0=  6.172835000E+04
 inp_lat0=  6.172835000E+04
 inp_dLon=  1.234567000E+05
 inp_dLat=  1.234567000E+05
so a simple check (_lon_inc < 400 & _lat_inc < 100) would have stopped
the run.

Cheers,
Jean-Michel

On Wed, Dec 21, 2016 at 04:23:02PM -0500, gael forget wrote:
> Dear All,
> 
> I recently ran into trouble by assuming that the climsst_interpMethod default was 0 (i.e. "no interpolation" unless explicitly 
> specified in data.exf) and providing a relaxation field that was already on the LLC90 grid (in the 90x1170 ?compact? format).
> 
> I see now that a different default was chosen and that climsst_lon0, climsst_inc, etc. by default get assigned to:
>       inp_lon0 = xgOrigin + delX(1)*exf_half
>       inp_lat0 = ygOrigin + delY(1)*exf_half
>       inp_dLon = delX(1)
>       inp_dLat = delY(1)
> 
> I think, and Jean-Michel seemed to concur, that in the case of a simple lat-lon grid these defaults yield an interpolation 
> from XC, YC to XC, YC itself (i.e. kind of "no interpolation" but maybe not quite). However, unless I am missing 
> something obvious, this approach can lead to rather strange results for pretty much any other grid. 
> 
> Wouldn't one of the two following approaches make more sense:
> - set interpMethod defaults to 0 at least with usingCurvilinearGrid or rotateGrid?
> - set the lon0, inc, etc defaults to UNSET_RL and stop if the user did not define them in data.exf?
> 
> Please chime in.
> 
> Thanks,
> Gael



> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list