New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
#1475 (Missmatch in bdyini between sending and receiving) – NEMO

Opened 9 years ago

Closed 8 years ago

#1475 closed Bug (invalid)

Missmatch in bdyini between sending and receiving

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

Description

In bdy_init in bdyini.F90 it is calculated if boundary data should be sent and/or received. This is stored in the variables com_north and com_north_b etc. There is a mismatch in the code between the send-calculation and the receive-calculation, which may cause a node to later wait for an mpi message that will never be sent, thus causing the model to hang.

The attached diff output points out at least two differences. I consider the diff output as part of the bug report and not necessarily as the fix. The actual bug may be in the send calculation and not the receive calculation as the diff suggests. There might also be more places in the send calculation that should be fixed.

Note that the revision number in the diff is from a local Subversion repository. The actual version used is r4908. As far as I can see, this part of the code has not been changed later in trunk.

One situation where this bug will lead to a hang is if you put a boundary along the western most grid column (nbidta = 1) crossing the border between two calculation blocks.

Commit History (0)

(No commits)

Attachments (1)

bdyini.diff (1.4 KB) - added by anders 9 years ago.

Download all attachments as: .zip

Change History (4)

Changed 9 years ago by anders

comment:1 Changed 9 years ago by mocavero

  • Owner changed from NEMO team to mocavero

comment:2 Changed 9 years ago by mocavero

I checked the code setting the com_north, com_north_b, etc. flags and it seems that there is not a mismatch between send and receive calculation. The points iw_b(3)-1, iw_b(4)-1, ie_b(4)+1 ie_b(3)+1 are received from east/west processes and sent to north/south ones. The flags com_south and com_north are set in receive calculation block (i.e. at lines 964 or 966). The exchange algorithm has been tested on the AMM configuration of SETTE and it works. If you encounter the problem with another configuration, please give me some details in order to test it.

comment:3 Changed 8 years ago by mocavero

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