Opened 4 years ago

Closed 3 years ago

#1853 closed Bug (fixed)

Land Suppression in mppini_2.h90 not working

Reported by: jamesharle Owned by: jamesharle
Priority: low Milestone:
Component: OCE Version: trunk
Severity: Keywords:
Cc:

Description

Context

I was just testing a simple 13x13 decomposition and wanted to suppress the land cells (about 30% of the domain), but got an ERROR telling me that jpnij should equal 169.

Analysis

Land suppression in mppini_2.h90 appears to be redundant as the conditional
WHERE( zbot(:,:) - ztop(:,:) + 1 > 0 ) ; imask(:,:) = 1
is never realised.

I'm not too sure I can think of an example where ztop(:,:) would be greater than zbot(:,:)? I guess the +1 was put there incase there was only 1 wet cell (i.e. zbot=ztop=1) or some under ice feature. The problem being there is also the case where zbot=ztop=0 (i.e. it's land).

Just from an ocean only run point of view I would have thought just defining the land suppression mask using zbot alone would be sufficient (i.e. where zbot > 0 there is a wet point) - but I may have missed some subtlety in the code somewhere (probably in relation to ice). Please confirm!

Fix

102c102
<       WHERE( zbot(:,:) - ztop(:,:) + 1 > 0 )   ;   imask(:,:) = 1
---
>       WHERE( zbot(:,:) > 0 )                   ;   imask(:,:) = 1


Commit History (1)

ChangesetAuthorTimeChangeLog
7832jamesharle2017-03-24T13:49:13+01:00

Fixes to reading in arrays from domain_cfg.nc and bdy_msk.nc, and updates to landsupression mask (see tickets #1853 and #1854).

Change History (3)

comment:1 Changed 4 years ago by mathiot

You are right, your analysis is correct. ztop (top_level) cannot be greater than zbot (bottom_level). If we assume "top_level" = 0 over land and grounded ice and "bottom_level" = 0 over land and where ice is expected grounded all run long, your fix should do the job:

  • No ice shelf, it works (open ocean: zbot>0 and ztop=1).
  • With ice shelf cavity, it works (open ocean: zbot>0 and ztop=1, under ice shelf: ztop >0 and zbot >0, over land or grounded ice: ztop=zbot=0)
  • with ice sheet/ocean coupling, it should work. As in previous case, we have over open ocean: zbot>0 and ztop=1, under ice shelf: ztop >0 and zbot >0 and over land zbot=ztop=0. Over grounded ice: zbot > 0 and ztop = 0, it will 'activate' all the processors over the grounded ice (in case grounded ice become floating ice at some point in the run) and mask all the water column.

comment:2 Changed 3 years ago by jamesharle

  • Owner changed from nemo to jamesharle

comment:3 Changed 3 years ago by jamesharle

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.