#1096 closed Bug (fixed)
Missing subroutines for C1D case in lbclnk
Reported by: | hadcv | Owned by: | nemo |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | C1D | Version: | trunk |
Severity: | Keywords: | C1D LBC | |
Cc: |
Description
Compilation of the C1D configuration at version 3.5 beta fails due to missing dummy subroutines lbc_bdy_lnk_3d, lbc_bdy_lnk_2d and lbc_lnk_2d_e in lbclnk.F90.
These need to be specified for the 'key_c1d' case in addition to the 'else' case.
Commit History (2)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
4145 | hadcv | 2013-11-01T18:47:40+01:00 | Ticket #1157 (C1D fixes): redo the fix for #1096 to work for XIOS detached mode and add xios_context_finalize. |
3971 | cbricaud | 2013-07-12T11:31:43+02:00 | Correction for 1D configuration ; see ticket #1096 |
Change History (7)
comment:1 follow-up: ↓ 2 Changed 10 years ago by rbourdal
comment:2 in reply to: ↑ 1 Changed 10 years ago by hadcv
Hi Romain,
When you say that XIOS requires compilation with key_mpp_mpi, are you referring to the following line in iom.F90?
CALL xios_context_initialize(TRIM(clname), mpi_comm_opa)
This is also a block to running C1D in version 3.5 since mpi_comm_opa isn't defined without key_mpp_mpi. I have fixed this in my working copy by replacing with:
#if defined key_mpp_mpi
CALL xios_context_initialize(TRIM(clname), mpi_comm_opa)
#else
CALL xios_context_initialize(TRIM(clname), 0)
#endif
This and a definition of the lbc_bdy subroutines outside the C1D cpp key allow the model to run, and I have tested it with the recent XIOS changes. What do you think?
Daley
comment:3 follow-up: ↓ 4 Changed 10 years ago by rbourdal
Hi Daley,
My first idea was to be able running also with key_mpp_mpi but I think you're right.
In a first step, we should be able running with "classical" option (without key_mpp_mpi).
I purpose you the following modifications:
domzgr.F90 fix to compile with check bounds option (pb of write in s-coord case !)
iom.F90 Correct the call to xio if not key_mpp_mpi (your solution)
lbclnk.F90 change the order of routines to be OK in 1D case.
solmat.F90 add lbclnk in 1D case (just pb at initialization) because bmask=/0 everywhere and gcdmat not defined everywhere (pb can be correct also with creation of nemo_init_1d with just the usefull init. !)
step_c1d.F90 Add iom_init like in step.F90
It's OK for you ?
Romain
comment:4 in reply to: ↑ 3 Changed 10 years ago by hadcv
Hi Romain,
That seems ok to me, it covers the three bugs I addressed in my local copy (lbclnk, step_c1d and iom). In step_c1d.F90, should we also change:
CALL iom_setkt( kstp )
to
CALL iom_setkt ( kstp - nit000 + 1 )
for consistency with step.F90?
Daley
comment:5 Changed 10 years ago by rbourdal
Yes I have changed also this modified call.
I have also added a call to diahth to access at more MLD diagnotics...
Romain
comment:6 Changed 10 years ago by rbourdal
- Resolution set to fixed
- Status changed from new to closed
comment:7 Changed 7 years ago by nicolasmartin
- Keywords LBC added; lbclnk removed
Hi,
The problem comes from the addition of new lbc routines.
This problem can be solve just by changing the order of soubroutines and cpp_key
at this time the order is:
#if defined key_mpp_mpi
...
#else
# if defined key_c1d
#else
#endif
#endif
You erase this problem by changing in this way:
#if defined key_mpp_mpi
...
#else
# if defined key_c1d
#else
#endif
But I don't close this ticket because:
This modification is OK for NEMO's trunk before the modification of iom/xio interface in the trunk (Ticket #1122).
But with the new version of the trunk (NEMO revision 3956) et the xios associated (rev 445 and more) there is a conflict with the key_mpp_mpi:
The 1D configuration sould NOT use the key_mpp_mpi to apply the 1D-specific lbclnk routines and 1D configuration must use key_iomput (line 490 of
nemogcm.F90) for the outputs. The problem is that the new xios serveur (rev445) and NEMO (with key_iomput) must be compiled with the key_mpp_mpi !
Maybe a good solution is remplementing the lbc 1D-specific routines in the mpp case... ?
Regards,
Romain