ESMF mesh and MOM6 domain masks are inconsistent

Ok just summarising my latest progress.

Remember I had trouble running @Helen’s original configuration (140 x 249 Tasmanian domain at 0.05 resolution requesting 100 CPUs on a 10x10 layout) so I attempted to incrementally change @mmr 's original config (70x125 at 0.1 with 16 CPUs on a 4x4)

I’ve been able to run @mmr0 's configuration for the following layouts:

Layout Runtime
4x4 09:48
8x8 05:12
10x10 04:07
12x12 03:49

All of these worked with no mask table in MOM_layout

I then regenerated the 10x10 layout but using the higher resolution grid (i.e 140x249 (0.05 resolution).

This first failed with :

FATAL from PE    20: Discrepancy detected between ESMF mesh and internal MOM6 domain sizes. Check mask table.

So I added back the MASKTABLE entry in MOM_layout

MASKTABLE = mask_table.2.10x10

Ran again. This failed with

FATAL from PE     3: ERROR: Difference between ESMF Mesh and MOM6 domain coords is greater than parameter EPS_OMESH. n, lonMesh(n), lon
(n), diff_lon, EPS_OMESH=        1    147.2500000000000       145.1250000000000             0.21250D+01          0.10000D-03

This implies the grids aren’t aligned.

As an aside, I did a diff on the two directories:

  • The first created using Helen’s instructions
  • The second created by incrementally moving from Madi’s configuration into Helen’s.

The diffs of consequence are:

diff access-rom3-PG/datm_in access-rom3-MR-10by10-hires/datm_in
11,12c11,12
<   model_maskfile = "./INPUT/access-rom3-ESMFmesh.nc"
<   model_meshfile = "./INPUT/access-rom3-ESMFmesh.nc"
---
>   model_maskfile = "./INPUT/access-rom3-nomask-ESMFmesh.nc"
>   model_meshfile = "./INPUT/access-rom3-nomask-ESMFmesh.nc"
Only in access-rom3-MR-10by10-hires/: docs
diff access-rom3-PG/drof_in access-rom3-MR-10by10-hires/drof_in
3,4c3,4
<   model_maskfile = "./INPUT/access-rom3-ESMFmesh.nc"
<   model_meshfile = "./INPUT/access-rom3-ESMFmesh.nc"
---
>   model_maskfile = "./INPUT/access-rom3-nomask-ESMFmesh.nc"
>   model_meshfile = "./INPUT/access-rom3-nomask-ESMFmesh.nc"

i.e. Madi’s config uses the nomask mesh file.

There are also differences in MOM_input regarding OBC_SEGMENT definitions

diff access-rom3-PG/MOM_input access-rom3-MR-10by10-hires/MOM_input
109a110,133
> OBC_SEGMENT_001 = "J=0,I=0:N,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN" !
>                                 ! Documentation needs to be dynamic?????
> OBC_SEGMENT_001_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0 !   [days] default = 0.0
>                                 ! Timescales in days for nudging along a segment, for inflow, then outflow.
>                                 ! Setting both to zero should behave like SIMPLE obcs for the baroclinic
>                                 ! velocities.
> OBC_SEGMENT_002 = "J=N,I=N:0,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN" !
>                                 ! Documentation needs to be dynamic?????
> OBC_SEGMENT_002_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0 !   [days] default = 0.0
>                                 ! Timescales in days for nudging along a segment, for inflow, then outflow.
>                                 ! Setting both to zero should behave like SIMPLE obcs for the baroclinic
>                                 ! velocities.
> OBC_SEGMENT_003 = "I=0,J=N:0,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN" !
>                                 ! Documentation needs to be dynamic?????
> OBC_SEGMENT_003_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0 !   [days] default = 0.0
>                                 ! Timescales in days for nudging along a segment, for inflow, then outflow.
>                                 ! Setting both to zero should behave like SIMPLE obcs for the baroclinic
>                                 ! velocities.
> OBC_SEGMENT_004 = "I=N,J=0:N,FLATHER,ORLANSKI,NUDGED,ORLANSKI_TAN,NUDGED_TAN" !
>                                 ! Documentation needs to be dynamic?????
> OBC_SEGMENT_004_VELOCITY_NUDGING_TIMESCALES = 0.3, 360.0 !   [days] default = 0.0
>                                 ! Timescales in days for nudging along a segment, for inflow, then outflow.
>                                 ! Setting both to zero should behave like SIMPLE obcs for the baroclinic
>                                 ! velocities.
242a267,275
> OBC_SEGMENT_001_DATA = "U=file:forcing_obc_segment_001.nc(u),V=file:forcing_obc_segment_001.nc(v),SSH=file:forcing_obc_segment_001.nc(eta),TEMP=file:forcing_obc_segment_001.nc(temp),SALT=file:forcing_obc_segment_001.nc(salt)" !
>                                 ! OBC segment docs
> OBC_SEGMENT_002_DATA = "U=file:forcing_obc_segment_002.nc(u),V=file:forcing_obc_segment_002.nc(v),SSH=file:forcing_obc_segment_002.nc(eta),TEMP=file:forcing_obc_segment_002.nc(temp),SALT=file:forcing_obc_segment_002.nc(salt)" !
>                                 ! OBC segment docs
> OBC_SEGMENT_003_DATA = "U=file:forcing_obc_segment_003.nc(u),V=file:forcing_obc_segment_003.nc(v),SSH=file:forcing_obc_segment_003.nc(eta),TEMP=file:forcing_obc_segment_003.nc(temp),SALT=file:forcing_obc_segment_003.nc(salt)" !
>                                 ! OBC segment docs
> OBC_SEGMENT_004_DATA = "U=file:forcing_obc_segment_004.nc(u),V=file:forcing_obc_segment_004.nc(v),SSH=file:forcing_obc_segment_004.nc(eta),TEMP=file:forcing_obc_segment_004.nc(temp),SALT=file:forcing_obc_segment_004.nc(salt)" !
>                                 ! OBC segment docs

i.e. Helen’s MOM_layout is missing all OBC_SEGMENT information (is this correct? Did I delete this accidentally?)

Anyway - I’ll do a check on the lat/lon co-ordinates of the mesh files in Madi’s config and see if I can figure out the source of the error.

To run Madi’s config at 0.05 resolution with 140x249, do I need to change the mask file to use the `nomask’ version?