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.
#2224 (Failure of AMM12 SETTE tests) – NEMO

Opened 5 years ago

Closed 5 years ago

Last modified 2 years ago

#2224 closed Defect (fixed)

Failure of AMM12 SETTE tests

Reported by: smueller Owned by: systeam
Priority: high Milestone:
Component: BDY Version: v4.0
Severity: major Keywords: AMM12 BDY v4.0
Cc:

Description (last modified by smueller)

Context

Both the AMM12 restartability and AMM12 reproducibility tests of the SETTE test suite fail.

Analysis

The SETTE runs of the AMM12 reference configuration fail shortly after they have been started. This failure appears in the trunk when changeset [10537], which addresses ticket #2213 by modifying file source:NEMO/trunk/src/OCE/BDY/bdyini.F90, is applied; the modification that results from changeset [10537] is also present in the release-4.0 branch.

Recommendation

Files source:/NEMO/releases/release-4.0/src/OCE/BDY/bdyini.F90 and source:/NEMO/trunk/src/OCE/BDY/bdyini.F90 could be reverted to source:/NEMO/trunk/src/OCE/BDY/bdyini.F90@10481 and the approach taken to address the defect described in ticket #2213 should be reviewed in the light of the newly discovered defect.

Commit History (2)

ChangesetAuthorTimeChangeLog
10630smasson2019-02-04T17:09:57+01:00

v4.0: bugfix in mpp for bdy, back to v3.6, see #2213, #2224, #2225

10629smasson2019-02-04T17:07:39+01:00

trunk: bugfix in mpp for bdy, back to v3.6, see #2213, #2224, #2225

Attachments (2)

bdyini.F90 (78.5 KB) - added by smasson 5 years ago.
mpp_bdy_generic.h90 (13.0 KB) - added by smasson 5 years ago.

Download all attachments as: .zip

Change History (12)

comment:1 Changed 5 years ago by smueller

  • Description modified (diff)
  • Priority changed from low to high

comment:2 Changed 5 years ago by smasson

Following, sette tests and emails exchange with Jean-Marc Molines and Julien Jouanno, I fully agree with the analysis: changeset [10537] is responsible for this error. However, it really fixed the bug reported by Jean-Marc Molines in #2213.
So we cannot simply revert commit [10537] to solve #2224 and let #2213 open...

Jean-Marc Molines is proposing to

1) As you said, revert bdyini.F90 to source:/NEMO/trunk/src/OCE/BDY/bdyini.F90@10481
2) modify mpp_lnk_bdy to get back to something following version 3.6 that was working.

There are re informations reported by Jean-Marc:

If we compare E-W exchanges in mpp_lnk_bdy_2d in the v3.6 and v4.0 we have:

  • v3.6
          !                           ! Migrations
          imigr = jpreci * jpj
          !
          SELECT CASE ( nbondi_bdy(ib_bdy) )
          CASE ( -1 )
             CALL mppsend( 2, zt2we(1,1,1), imigr, noea, ml_req1 )
          CASE ( 0 )
             CALL mppsend( 1, zt2ew(1,1,1), imigr, nowe, ml_req1 )
             CALL mppsend( 2, zt2we(1,1,1), imigr, noea, ml_req2 )
          CASE ( 1 )
             CALL mppsend( 1, zt2ew(1,1,1), imigr, nowe, ml_req1 )
          END SELECT
          !
          SELECT CASE ( nbondi_bdy_b(ib_bdy) )
          CASE ( -1 )
             CALL mpprecv( 1, zt2ew(1,1,2), imigr, noea )
          CASE ( 0 )
             CALL mpprecv( 1, zt2ew(1,1,2), imigr, noea )
             CALL mpprecv( 2, zt2we(1,1,2), imigr, nowe )
          CASE ( 1 )
             CALL mpprecv( 2, zt2we(1,1,2), imigr, nowe )
          END SELECT
          !
          SELECT CASE ( nbondi_bdy(ib_bdy) )
          CASE ( -1 )
             IF(l_isend) CALL mpi_wait(ml_req1, ml_stat, ml_err)
          CASE ( 0 )
             IF(l_isend) CALL mpi_wait(ml_req1, ml_stat, ml_err)
             IF(l_isend) CALL mpi_wait(ml_req2, ml_stat, ml_err)
          CASE ( 1 )
             IF(l_isend) CALL mpi_wait(ml_req1, ml_stat, ml_err)
          END SELECT
    
  • v4.0 (when looking at the f90)
             !                           ! Migrations
    !!gm      imigr = nn_hls * jpj * ipk * ipl * ipf
             imigr = nn_hls * jpj * ipk * ipl
             !
             IF( ln_timing ) CALL tic_tac(.TRUE.)
             !
             SELECT CASE ( nbondi_bdy(kb_bdy) )
             CASE ( -1 )
                CALL mppsend( 2, zt3we(1,1,1,1,1,1), imigr, noea, ml_req1 )
                CALL mpprecv( 1, zt3ew(1,1,1,1,1,2), imigr, noea )
                IF(l_isend) CALL mpi_wait(ml_req1, ml_stat, ml_err)
             CASE ( 0 )
                CALL mppsend( 1, zt3ew(1,1,1,1,1,1), imigr, nowe, ml_req1 )
                CALL mppsend( 2, zt3we(1,1,1,1,1,1), imigr, noea, ml_req2 )
                CALL mpprecv( 1, zt3ew(1,1,1,1,1,2), imigr, noea )
                CALL mpprecv( 2, zt3we(1,1,1,1,1,2), imigr, nowe )
                IF(l_isend) CALL mpi_wait(ml_req1, ml_stat, ml_err)
                IF(l_isend) CALL mpi_wait(ml_req2, ml_stat, ml_err)
             CASE ( 1 )
                CALL mppsend( 1, zt3ew(1,1,1,1,1,1), imigr, nowe, ml_req1 )
                CALL mpprecv( 2, zt3we(1,1,1,1,1,2), imigr, nowe )
                IF(l_isend) CALL mpi_wait(ml_req1, ml_stat, ml_err)
             END SELECT
             !
             IF( ln_timing ) CALL tic_tac(.FALSE.)
    

==> in the v3.6: send are done by testing nbondi_bdy and rcv by testing nbondi_bdy_b
==> in the v4.0: send and rcv are done by testing only nbondi_bdy

We have the same story with nbondj_bdy and nbondj_bdy_b for the N-S exchanges.

I will test this solution...

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

comment:3 Changed 5 years ago by smasson

I confirm that with the above changes sette is working again.
Could you try the attached files before I commit?

Changed 5 years ago by smasson

Changed 5 years ago by smasson

comment:4 Changed 5 years ago by smueller

After replacing source:/NEMO/releases/release-4.0/src/OCE/BDY/bdyini.F90 and source:/NEMO/releases/release-4.0/src/OCE/LBC/mpp_bdy_generic.h90 by the two attached files, the AMM12 SETTE tests are successful again.

comment:5 Changed 5 years ago by smasson

changes validated by sette, Jean-Marc Molines and Julien Jouanno. I commit

comment:6 Changed 5 years ago by smasson

In 10629:

Error: Failed to load processor CommitTicketReference
No macro or processor named 'CommitTicketReference' found

comment:7 Changed 5 years ago by smasson

In 10630:

Error: Failed to load processor CommitTicketReference
No macro or processor named 'CommitTicketReference' found

comment:8 Changed 5 years ago by smasson

see also discussion in #2213
I close the ticket

comment:9 Changed 5 years ago by smasson

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

comment:10 Changed 2 years ago by nemo

  • Keywords v4.0 added
Note: See TracTickets for help on using tickets.