#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)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
2372 | acc | 2010-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 |
2368 | acc | 2010-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
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
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.