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.
#1568 (lbc_lnk_multi is not defined without key_mpp_mpi) – NEMO

Opened 9 years ago

Closed 7 years ago

#1568 closed Bug (fixed)

lbc_lnk_multi is not defined without key_mpp_mpi

Reported by: timgraham Owned by: timgraham
Priority: low Milestone:
Component: OCE Version: v3.6
Severity: Keywords:
Cc:

Description

See the emails from Paolo and Boris Strukov.

There is no definition for lbc_lnk_multi when key_mpp_mpi is not used. I think this also means that the 1D configuration may be broken.

Boris has a work around for this at the moment by adding #ifdef key_mpp_mpi calls wherever lbc_lnk_multi is called. This is quite a messy solution so we should add an lbc_lnk_multi definition for the case without key_mpp_mpi

#if defined key_mpp_mpi
   !!----------------------------------------------------------------------
   !!   'key_mpp_mpi'             MPI massively parallel processing library
   !!----------------------------------------------------------------------
   !!   lbc_lnk      : generic interface for mpp_lnk_3d and mpp_lnk_2d routines defined in lib_mpp
   !!   lbc_lnk_e    : generic interface for mpp_lnk_2d_e routine defined in lib_mpp
   !!   lbc_bdy_lnk  : generic interface for mpp_lnk_bdy_2d and mpp_lnk_bdy_3d routines defined in lib_mpp
   !!----------------------------------------------------------------------
   USE lib_mpp          ! distributed memory computing library


   INTERFACE lbc_lnk_multi
      MODULE PROCEDURE mpp_lnk_2d_9
   END INTERFACE

   INTERFACE lbc_lnk
      MODULE PROCEDURE mpp_lnk_3d_gather, mpp_lnk_3d, mpp_lnk_2d
   END INTERFACE

   INTERFACE lbc_bdy_lnk
      MODULE PROCEDURE mpp_lnk_bdy_2d, mpp_lnk_bdy_3d
   END INTERFACE

   INTERFACE lbc_lnk_e
      MODULE PROCEDURE mpp_lnk_2d_e
   END INTERFACE

   INTERFACE lbc_lnk_icb
      MODULE PROCEDURE mpp_lnk_2d_icb
   END INTERFACE

   PUBLIC lbc_lnk       ! ocean lateral boundary conditions
   PUBLIC lbc_lnk_multi ! modified ocean lateral boundary conditions
   PUBLIC lbc_lnk_e
   PUBLIC lbc_bdy_lnk   ! ocean lateral BDY boundary conditions
   PUBLIC lbc_lnk_icb

   !!----------------------------------------------------------------------
   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
   !! $Id$
   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
   !!----------------------------------------------------------------------

#else
   !!----------------------------------------------------------------------
   !!   Default option                              shared memory computing
   !!----------------------------------------------------------------------
   !!   lbc_lnk      : generic interface for lbc_lnk_3d and lbc_lnk_2d
   !!   lbc_lnk_3d   : set the lateral boundary condition on a 3D variable on ocean mesh
   !!   lbc_lnk_2d   : set the lateral boundary condition on a 2D variable on ocean mesh
   !!   lbc_bdy_lnk  : set the lateral BDY boundary condition
   !!----------------------------------------------------------------------
   USE oce             ! ocean dynamics and tracers   
   USE dom_oce         ! ocean space and time domain 
   USE in_out_manager  ! I/O manager
   USE lbcnfd          ! north fold

   IMPLICIT NONE
   PRIVATE

   INTERFACE lbc_lnk
      MODULE PROCEDURE lbc_lnk_3d_gather, lbc_lnk_3d, lbc_lnk_2d
   END INTERFACE

   INTERFACE lbc_lnk_e
      MODULE PROCEDURE lbc_lnk_2d_e
   END INTERFACE

   INTERFACE lbc_bdy_lnk
      MODULE PROCEDURE lbc_bdy_lnk_2d, lbc_bdy_lnk_3d
   END INTERFACE

   INTERFACE lbc_lnk_icb
      MODULE PROCEDURE lbc_lnk_2d_e
   END INTERFACE

Commit History (0)

(No commits)

Attachments (1)

lbclnk.F90 (31.4 KB) - added by dupontf 8 years ago.

Download all attachments as: .zip

Change History (7)

Changed 8 years ago by dupontf

comment:1 Changed 8 years ago by dupontf

Hi Tim, I have patched lbclnk.F90 for this purpose but had to duplicate the function load_array. There might be a better way. See attachment.

Fred.

comment:2 Changed 8 years ago by dupontf

By the way, the 1D configuration is fine as it does not go into dynspg_ts, where the problem lies --at the moment.

Fred.

comment:3 Changed 8 years ago by timgraham

  • Owner changed from NEMO team to timgraham

comment:4 Changed 8 years ago by mcastril

We implemented serial routine versions for mpp_lnk_2d_9 & mpp_lnk_2d_multiple on our branch:

dev_r5546_CNRS19_HPC_scalability

comment:5 Changed 8 years ago by mcastril

I commented here that we have 2 open tickets on the same issue

https://forge.ipsl.jussieu.fr/nemo/ticket/1628

There are two approaches to overcome this. We created the routines but in fact we then do simple messages. Feel free to choose the one you think is better.

comment:6 Changed 7 years ago by timgraham

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

This was fixed when dev_r5546_CNRS19_HPC_scalability was merged into 3.6 STABLE

Note: See TracTickets for help on using tickets.