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.
#755 (Compilation error due to modifications related to NetCDF4 chunking, See ticket #754) – NEMO

Opened 13 years ago

Closed 13 years ago

Last modified 2 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: v3.3
Severity: Keywords: OPA v3.3
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 (4)

comment:1 Changed 13 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 13 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 13 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.

comment:4 Changed 2 years ago by nemo

  • Keywords OPA v3.3 added
Note: See TracTickets for help on using tickets.