Opened 10 years ago

Closed 10 years ago

#755 closed Bug (fixed)

Compilation error due to modifications related to NetCDF4 chunking, See ticket #754

Reported by: cetlod Owned by: acc
Priority: highest Milestone:
Component: OCE Version: release-3.3
Severity: Keywords:
Cc:

Description

The code does not compile anymore ; tests have been done on SX8 and IBP-POWER6 computers.

The reason is the structure snc4_ctl which is defined as PUBLIC at the same time in modules :

./NEMOGCM/NEMO/OPA_SRC/IOM/in_out_manager.F90
./NEMOGCM/EXTERNAL/IOIPSL/src/histcom.f90
./NEMOGCM/EXTERNAL/XMLIO_SERVER/src/IOSERVER/mod_ioserver_namelist.f90

Proposed solution :

  • define snc4_ctl in ./NEMOGCM/EXTERNAL/IOIPSL/src/histcom.f90
  • add in the two others modules : USE ioipsl

Another issue : Suppress the logical variabe lwp (unknown by IOIPSL routines) in ./NEMOGCM/EXTERNAL/IOIPSL/src/nc4dummy.F90

Commit History (2)

ChangesetAuthorTimeChangeLog
2372acc2010-11-10T18:14:44+01:00

nemo_v3_3_beta. Minor changes to ensure code associated with key_netcdf4 changes (#755) compiles with key_agrif. See updated wiki/NetCdf4_changes page for details

2368acc2010-11-09T16:38:45+01:00

nemo_v3_3_beta. Changes to code relating to key_netcdf4 option to provide more robust compilation. See #755 and #754

Change History (3)

comment:1 Changed 10 years ago by acc

  • Owner changed from NEMO team to acc
  • Status changed from new to assigned

The initial version attempted to keep NEMO, IOIPSL and IOSERVER codes as independent as possible;
hence the duplicate definitions. Different compilers would appear to have different scoping rules so a better solution is needed. Adding the type definition to histcom doesn't work because the
structure is needed in iom_nf90 which doesn't (and shouldn't) use IOIPSL.

comment:2 Changed 10 years ago by cetlod

Yes, yes, it works because iom_nf90 uses in_out_manager. I've tried and it's OK

comment:3 Changed 10 years ago by acc

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

Revised code submitted into revision 2368. A single definition of the structure is now contained
within nc4interface.F90 (renamed from nc4dummy.F90). This routine also contains interface routines instead of dummy routines so that compilation is possible with NetCDF4 libraries with or without key_netcdf4 defined. Defining key_netcdf4 whilst linking with NetCDF3 libraries will fail at the
link stage. Defining key_netcdf4 and linking with NetCDF4 libraries is the only combination which gives access to the new options and hence creates data using the new format. nc4interface.F90 resides in IOIPSL/src but it should be considered an independent routine sitting above IOSERVER, IOIPSL and NEMO. I.e. it needs to be retained if IOIPSL is ever removed from the system.

Note: See TracTickets for help on using tickets.