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.
#2394 (error when reading namelists) – NEMO

Opened 5 years ago

Closed 4 years ago

#2394 closed Defect (duplicate)

error when reading namelists

Reported by: andmirek Owned by: systeam
Priority: normal Milestone:
Component: TOP Version: trunk
Severity: major Keywords:
Cc:

Description (last modified by andmirek)

Context

New way of reading namelists doesn't work with newer CRAY compilers (cce/8.7.7, cce/8.7.11). When trying to run sette, NEMO executable produces errors of the type:

misspelled variable in namelist namcfg in reference namelist iostat =

and fails.

see #2653 for solution and further updates

Analysis

...

Recommendation

...

Commit History (0)

(No commits)

Attachments (2)

loadnml.F90 (4.3 KB) - added by acc 5 years ago.
plain F90 program to test internal reads of nameless
nambdy (232 bytes) - added by acc 5 years ago.
sample input file for loadnml.F90

Download all attachments as: .zip

Change History (15)

comment:1 Changed 5 years ago by acc

Are you sure it is the internal file reading that is in error? Seems unlikely since the error you report is in the namelist_cfg which means the namelist_ref has already been read?

comment:2 Changed 5 years ago by acc

Are you sure it is the internal file reading that is in error? Seems unlikely since the error you report is in the namelist_cfg which means the namelist_ref has already been read?

comment:3 Changed 5 years ago by andmirek

I've just noticed I had changes in the branch I was using. I'm trying now branch without changes.

comment:4 Changed 5 years ago by andmirek

For the branch without my changes the errors (misspelled variable) are for namctl for both reference and configuration namelist, and nammpp for configuration namelist. Exactly the same code runs fine with an older compiler version (8.3.4).

I'll try sette for the latest trunk now and will do the same for revision before changing the way namelists are read.

comment:5 Changed 5 years ago by andmirek

trunk@12367 - no problems with reading namelists with 8.7.7. Still sette failed, but with NaNs? (completed OK with compiler version 8.3.4). I wasn't sure which revision of sette to use, so adopted the latest revision by changing namelists parameters. The test I was looking at was ORCA2_ICE_PISCES.

comment:6 Changed 5 years ago by andmirek

  • Description modified (diff)

After changing to the old version of reading namelists (for namctl and namcfg only) namctl and namcfg we read correctly. So it looks new(er) CRAY compilers do not handle new method of reading namelists correctly.

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

comment:7 Changed 5 years ago by acc

  • Description modified (diff)

Ok so we should mark this ticket as invalid and close it until the real cause of the problem has been identified. It doesn't appear to be a problem with the reading of the namelists. A quick comparison of ocean.outputs produced using 8.7.7 and 8.3.4 should confirm that.

comment:8 Changed 5 years ago by andmirek

Just to clarify, the two namelists, which were read using old method, were correct, the model failed later with the same error as above for a different namelist.

Changed 5 years ago by acc

plain F90 program to test internal reads of nameless

Changed 5 years ago by acc

sample input file for loadnml.F90

comment:9 Changed 5 years ago by acc

Still not convinced it is the method of reading the namelists which is at fault. The attached plain F90 program (with sample input nambdy) works correctly on a CRAY using fan 8.7.7:

ftn -V
Cray Fortran : Version 8.7.7  Tue Mar 03, 2020  12:10:03
ftn -o loadnml loadnml.F90

./loadnml

The whole internal file:
&nambdy_index nbdyind = 10 / &nambdy_index nbdyind = 10 / &nambdy_index nbdyind = 20 / &nambdy_index nbdyind = 70 / &nambdy_index nbdyind = 80 / &nambdy_index nbdyind = 30 / &NAMBDY_INDEX NBDYIND = 40 / &nambdy_index nbdyind = 90 /
----
25 characters from position 20:
nd = 10 / &nambdy_index n
----
Length of the compressed internal file:   231
----
nbdyind in the 1st occurrence of nambdy_index:
nbdyind =    10
----
nbdyind in the 4th occurence of nbdyind =    70
----
Finally the first occurrence directly from the external namelist:
nbdyind =    10
----

The model itself shouldn't be doing anything different.

comment:10 Changed 5 years ago by andmirek

Can you try sette (ORCA2_ICE_PISCES) on this system?

comment:11 Changed 5 years ago by acc

Not easily with that compiler since the system doesn't have a full PrgEnv? that uses it. The latest full tests were successful using cce/8.5.8

comment:12 Changed 5 years ago by andmirek

Are you using monsoon? If yes, to get this compiler working you need to:
module load cdt/18.12

comment:13 Changed 4 years ago by andmirek

  • Description modified (diff)
  • Resolution set to duplicate
  • Status changed from new to closed

see ticket #2653 with proposed solution.

Note: See TracTickets for help on using tickets.