Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Linux-pgi-mpich2-1 build problem

Hi,

I am a Ph.D. student at MIT, and I am just starting to work on Climate Modeling codes. I have installed CESM 1.0.1, created and configured a test case with ALL DEAD components. I am using a pgi compiler and mpich 2-1. A problem occurs when I build the case, and the error message is:

CCSM BUILDEXE SCRIPT STARTING
- Build Libraries: mct pio csm_share
Mon Nov 15 00:09:50 EST 2010 /home/fcaiazzo/cesm1_0_1/build//test1/mct/mct.bldlog.101115-000950
ERROR: mct.buildlib failed, see /home/fcaiazzo/cesm1_0_1/build//test1/mct/mct.bldlog.101115-000950
ERROR: cat /home/fcaiazzo/cesm1_0_1/build//test1/mct/mct.bldlog.101115-000950


The content of the file mct.bldlog.101115-000950 is:

Mon Nov 15 00:09:50 EST 2010 /home/fcaiazzo/cesm1_0_1/build//test1/mct/mct.bldlog.101115-000950
Copying source to CCSM EXEROOT...
New build of MCT
Running configure...
for OS=Linux MACH=generic_linux_pgi
cat: Filepath: No such file or directory
cat: Srcfiles: No such file or directory
/home/fcaiazzo/cesm1_0_1/build/test1/Tools/mkSrcfiles > /home/fcaiazzo/cesm1_0_1/build/test1/mct/Srcfiles
cp -f /home/fcaiazzo/cesm1_0_1/build/test1/mct/Filepath /home/fcaiazzo/cesm1_0_1/build/test1/mct/Deppath
/home/fcaiazzo/cesm1_0_1/build/test1/Tools/mkDepends Deppath Srcfiles > /home/fcaiazzo/cesm1_0_1/build/test1/mct/Depends
./configure FC="mpif90" F90="mpif90" FFLAGS=" -DMCT_INTERFACE -DHAVE_MPI -DGLC_NEC_10 -DLINUX -DSEQ_ -DFORTRANUNDERSCORE -DNO_SHR_VMATH -i4 -gopt -Mlist -Mextend -byteswapio -Mflushz -Kieee -Ktrap=fp -lmpich" --host=Linux
configure: WARNING: If you wanted to set the --build type, don't use --host.
If a cross compiler is detected then cross compile mode will be used.
checking for Linux-cc... no
checking for cc... cc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether cc accepts -g... yes
checking for cc option to accept ANSI C... none needed
checking for Linux-xlf90... mpif90
checking Fortran 90 filename extension... checking whether we are using the GNU Fortran 90 compiler... no
checking for mpxlf90_r... no
checking for mpxlf90... no
checking for mpxlf95... no
checking for mpif90... mpif90
checking for MPI_Init... no
checking for MPI_Init in -lmpi... no
checking for MPI_Init in -lmpich... no
configure: WARNING: mpif90 FAILED TO COMPILE FILENAME EXTENSION f
checking how to get the version output from mpif90... configure: WARNING: compilation failed

checking whether byte ordering is bigendian... no
checking whether fortran .mod file is uppercase... unknown
configure: WARNING: Compilation of module did not create .mod file. Please check compiler manual.
checking for Fortran 90 name-mangling scheme... unknown
configure: WARNING: UNKNOWN FORTRAN 90 NAME-MANGLING SCHEME
checking for cpp... cpp
checking if Fortran 90 compiler performs preprocessing... no
checking if C preprocessor can work with Fortran compiler... no
configure: WARNING: FORTRAN SOURCE PREPROCESSING HAS FAILED
Hostname=nehalem001
Machine=x86_64
OS=Linux
configure: WARNING: UNKNOWN FORTRAN 90 COMPILER

Output Variables: {CC=cc} {ALLCFLAGS=-DFORTRAN_MANGLING_UNKNOWN -DSYSLINUX -DCPRUNKNOWNCPR -O} {FPP=cpp} {FPPFLAGS=-P -C -N -traditional} {FC=mpif90} {F90=mpif90} {FCFLAGS=} {F90FLAGS=} {MACHDEFS=-DSYSLINUX -DCPRUNKNOWNCPR} {OPT=} {REAL8=} {BIT64=} {ENDIAN=} {MPIF90=mpif90} {MPILIBS=} {MPIHEADER=} {INCLUDEFLAG=-I} {INCLUDEPATH=} {AR=ar cq} {BABELROOT=} {COMPILER_ROOT=} {PYTHON=} {PYTHONOPTS=} {FORT_SIZE=} {prefix=NONE}

configure: creating ./config.status
config.status: creating Makefile.conf
Please check the Makefile.conf
Have a nice day!
make[1]: Entering directory `/home/fcaiazzo/cesm1_0_1/build/test1/mct/mpeu'
cc -c -DFORTRAN_MANGLING_UNKNOWN -DSYSLINUX -DCPRUNKNOWNCPR -O get_zeits.c
make[1]: *** No rule to make target `m_FcComms.o', needed by `libmpeu.a'. Stop.
make[1]: Leaving directory `/home/fcaiazzo/cesm1_0_1/build/test1/mct/mpeu'
make: *** [subdirs] Error 2


I tried to track the scripts back in order to find the error, but without success. The error starts when the code builds up the libraries. My idea is that probably mpich on my server has been compiled with a different FORTRAN compiler than the netcdf on my server. Is that possible that the error lies in this inconsistency? If not, could you please give me some hint where to look for this error?

Thank you very much for your attention and help!
 

eaton

CSEG and Liaisons
I would start by focussing on this error:

configure: WARNING: mpif90 FAILED TO COMPILE FILENAME EXTENSION f
checking how to get the version output from mpif90... configure: WARNING: compilation failed

You should be able to compile a simple fortran test file with your mpif90. If you have more than one version of mpif90 on your system then make sure your PATH is set correctly to invoke the one that resulted from building mpich with your pgi compiler.

If mpich and netcdf are built with different fortran compilers you will run into trouble. But you haven't gotten that far yet.

 
Dear Eaton,

thank you very much. I will try to follow your advise, I think I have to gather more information about the paths of my server.

Thank you again!

Fabio
 
Top