Hi all,I have been porting CESM 1.0.5 to our local linux cluster, scihub, at the British Antarctic Survey, using the intel compilers and openmpi. The initial steps are ok now: the full model compiles, runs, and has passed all the functional tests recommended in the user guide. However, I noticed that a lot of time seems to be spent on I/O, so I though it might be worth using pnetcdf rather than standard netcdf to try and speed things up a bit. I followed all the steps in the userguide on how to enable pnetcdf, but I keep hitting the following error in the cam compilation (copied from the build log):mpif90 -c -I. -I/cm/shared/apps/netcdf/intel/64/4.1.1/include -I/cm/shared/apps/netcdf/intel/64/4.1.1/include -I/cm/shared/apps/openmpi/intel/64/1.6.4/include -I/data/scihub-users/inos/src/parallel-netcdf-1.3.1/include -I. -I/data/scihub-users/inos/src/CESM/cesm1_0_5/port_tests/testFW3/SourceMods/src.cam -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/chemistry/pp_waccm_mozart -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/chemistry/mozart -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/physics/waccm -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/chemistry/bulk_aero -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/chemistry/utils -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/physics/cam -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/dynamics/fv -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/cpl_mct -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/cpl_share -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/control -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils -I/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils/pilgrim -I/data/scihub-users/inos/modeldata/CESM/cesm1_0_5/testFW3/lib/include -DLINUX -DSEQ_ -DFORTRANUNDERSCORE -DNO_R16 -DNO_SHR_VMATH -g -fp-model precise -convert big_endian -assume byterecl -ftz -traceback -O2 -FR /data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils/spmd_utils.F90
/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils/spmd_utils.F90(51): error #6418: This name has already been assigned a data type. [MPI_STATUS_IGNORE]
integer :: mpi_status_ignore ! Needs to be defined in mpi-serial
--------------^
compilation aborted for /data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils/spmd_utils.F90 (code 1)
I have seen a few earlier posts by other users that refer to a similar problem. The discussion there seems to point to a conflict over two files called mpif.h which both define mpi_status_ignore: one file in $(CODEROOT)/utils/mct/mpi-serial and another one in the include directory of openmpi. My openmpi include directory indeed contains a file called mpif.h which defines mpi_status ignore. However, in my $(CODEROOT)/utils/mct/mpi-serial directory there is no file called mpif.h, and none of the files in that directory contain "mpi_status_ignore". Also, I have USE_MPISERIAL and MPISERIAL_SUPPORT both set to FALSE, so I don't see why it would use the mct/mpi-serial directory at all or why I'm hitting a problem in spmd_utils.F that appears to be related to mpi-serial. I think therefore that my problem is a little different from what was reported by previous users, although I guess it is something to do with mpif.h. But I just can't figure out what it is exactly that I'm doing wrong. Any ideas? I will greatly appreciate your help!Thanks,Ingrid
/data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils/spmd_utils.F90(51): error #6418: This name has already been assigned a data type. [MPI_STATUS_IGNORE]
integer :: mpi_status_ignore ! Needs to be defined in mpi-serial
--------------^
compilation aborted for /data/scihub-users/inos/src/CESM/cesm1_0_5/models/atm/cam/src/utils/spmd_utils.F90 (code 1)
I have seen a few earlier posts by other users that refer to a similar problem. The discussion there seems to point to a conflict over two files called mpif.h which both define mpi_status_ignore: one file in $(CODEROOT)/utils/mct/mpi-serial and another one in the include directory of openmpi. My openmpi include directory indeed contains a file called mpif.h which defines mpi_status ignore. However, in my $(CODEROOT)/utils/mct/mpi-serial directory there is no file called mpif.h, and none of the files in that directory contain "mpi_status_ignore". Also, I have USE_MPISERIAL and MPISERIAL_SUPPORT both set to FALSE, so I don't see why it would use the mct/mpi-serial directory at all or why I'm hitting a problem in spmd_utils.F that appears to be related to mpi-serial. I think therefore that my problem is a little different from what was reported by previous users, although I guess it is something to do with mpif.h. But I just can't figure out what it is exactly that I'm doing wrong. Any ideas? I will greatly appreciate your help!Thanks,Ingrid