Opened 6 weeks ago

Last modified 5 weeks ago

#2394 new Defect

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 acc)

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.

Analysis


Recommendation


Commit History (0)

(No commits)

Attachments (2)

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

Download all attachments as: .zip

Change History (14)

comment:1 Changed 6 weeks 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 6 weeks 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 6 weeks 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 6 weeks 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 weeks ago by andmirek

trunk@12367 - no problems with reading namelists with 8.7.7. Still sette failed, but with Na Ns? (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 weeks 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 weeks ago by andmirek (previous) (diff)

comment:7 Changed 5 weeks 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 weeks 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 weeks ago by acc

plain F90 program to test internal reads of nameless

Changed 5 weeks ago by acc

sample input file for loadnml.F90

comment:9 Changed 5 weeks 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 weeks ago by andmirek

Can you try sette (ORCA2_ICE_PISCES) on this system?

comment:11 Changed 5 weeks ago by acc

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

comment:12 Changed 5 weeks ago by andmirek

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

Note: See TracTickets for help on using tickets.