Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#2099 closed Bug (fixed)

ln_nnogather and land suppression

Reported by: mathiot Owned by: mathiot
Priority: high Milestone: 2018 release-4.0
Component: OCE Version: trunk
Severity: major Keywords: MPP
Cc:

Description (last modified by nicolasmartin)

Context

With some processor decompositions, eORCA12 with land suppression activated and ln_nnogather = .true. hangs during the call of the first lbclnk. eORCA025 and ORCA2 with land suppression and ln_nogather = .true. are working fine.

Analysis

In case of land suppression, 'nfilcit' is not initialised every where. It leads to some random value on our computer. So if there are land processors along the north fold, the tests in mpp_init_nfdcom give wrong value for the processor list 'isendto' used in mpp_nfd_generic.h90.

Fix

I suggest in mppini.F90 to replace:

      DO jproc = 1, jpnij
         ...
         nfilcit(ii,ij) = ilci(ii,ij)
      END DO

by

      DO jproc = 1, jpnij
         ...
      END DO
      nfilcit(:,:) = ilci(:,:)

With this correction, the processor list seems OK and the model doesn't hang anymore and run the 100 time steps I ask for.

I have a long run in queue to check. Comments welcome to confirm the fix or to mention potential side effects.

Commit History (1)

ChangesetAuthorTimeChangeLog
9796mathiot2018-06-13T19:16:30+02:00

fix #2099

Change History (5)

comment:1 Changed 2 years ago by nicolasmartin

  • Description modified (diff)

comment:2 Changed 2 years ago by mocavero

In the original implementation 'nfilcit' was initialised outside the loop, for all the processes. I agree with this fix.

comment:3 Changed 2 years ago by acc

Yes this is the correct fix. It isn't obvious but the mpp_init_nfdcom logic works with the original, fully populated, decomposition. The land suppression is taken care of inside lib_mpp where messages are only sent if:

nfipproc(isendto(jr),jpnj) .ne. -1

so a simple calculation of which are the neighbours across the north fold is all that is required and isendto can be the complete set even if some have been suppressed (because nfipproc is set appropriately).

Last edited 2 years ago by nemo (previous) (diff)

comment:4 Changed 2 years ago by mathiot

  • Owner set to mathiot
  • Resolution set to fixed
  • Status changed from new to closed

In 9796:

fix #2099

comment:5 Changed 2 years ago by smasson

yes! nice one…

Note: See TracTickets for help on using tickets.