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

cesm1 build error

Hi all,

I am trying to build a case on a generic_linux_intel machine. The building process has a mistake. The contents in the mct.bldlog are below,

Copying source to CCSM EXEROOT...
MCT already built. Checking machine type
Same machine.
cp: cannot stat 'Makefile.conf.old': No such file or directory
cp: cannot stat 'Makefile.conf': No such file or directory
Makefile:4: Makefile.conf: No such file or directory
make:*** No rule to make target 'Makefile.conf'. Stop



I have checked my env*_xml, and didnot find any mistake. I donnot know if it is wrong with my MPI.

Please give me a advice.

Thank you very much.

Edith
 
Hi tcraig,
I have download a new mpi. The two files have been created. But I had a new error.After I build again


ERROR: ccsm.buildexe.csh failed, see /disk4/una/output/testt/run/ccsm.bldlog.101120-224119
ERROR: cat /disk4/una/output/testt/run/ccsm.bldlog.101120-224119



The "ccsm.bldlog " file is attched.




I think it may related to my mpi. But can you tell me how to correct it.

Thank you very much!

Edith
 
I think the scripts are not perfect. I had sometimes error like this. But i was sure it worked. In that case I always remove 'case' directory and create new case again.
jaromir
 
I have just noticed you passed this problem. I took a look at your into you logs and i think you use fortran compiler without mpi library. I do not know what compiler do you use. On my machine it is mpicc and mpif90. But i know it is possible to use command like f90 -lmpi.
Please ignore my previous message.
jaromir
 

eaton

CSEG and Liaisons
The only thing that the ccsm.bldlog.txt files are showing is that the mpi library isn't being found. You need to provide more information about how you are modifying the Macros.generic_linux_intel file. As jaromir noted the default compiler is mpif90, which is really just a wrapper script that (among other things) adds the location of the mpi library files to the link command. So if you are using the correct version of mpif90, i.e., the one that is part of the mpi installation that was built using your intel compiler, then the mpi library should be found. You need to have your PATH environment variable set correctly so that the correct version of mpif90 is found.
 
Hi eaton,

Thank you for reply.

I have finished my building. But after I do " bsub < ./testt.generic_linux_intel.run", no output data be produced.

It produce a "output.22142" file, it has some information of error,


rm: No match.
Fri Nov 26 10:06:28 CST 2010 -- CSM EXECUTION BEGINS HERE
Fri Nov 26 10:06:28 CST 2010 -- CSM EXECUTION HAS FINISHED
ls: No match.
Model did not complete - no cpl.log file present - exiting


And under my EXEROOT directory '/disk4/una/output/testt/run', some files named like 'ccsm.bldlog.*' were produced, '*' is timing. They also conclude some information, part of them like this,

mpid_nem_alloc.c:(.text+0x96e): undefined reference to `PMI_KVS_Get'
mpid_nem_alloc.c:(.text+0x1b7c): undefined reference to `PMI_Barrier'
/disk4/una/mpich2/lib/libmpich.a(mpid_get_universe_size.o): In function `MPID_Get_universe_size':
mpid_get_universe_size.c:(.text+0xa): undefined reference to `PMI_Get_universe_size'
gmake: *** [/disk4/una/output/testt/run/ccsm.exe] Error 1



The whole files of above and 'Macros.generic_linux_intel' are attached.

Thank you!

Edith
 

eaton

CSEG and Liaisons
The ccsm.bldlog file shows that there is a failure during the link step, and the failure is due to the mpi library:

/disk4/una/mpich2/lib/libmpich.a(mpid_init.o): In function `MPID_Init':
mpid_init.c:(.text+0xe9): undefined reference to `PMI_Init'
....

In the Macros.generic_linux_intel file you have set MPICH_PATH as follows:

MPICH_PATH := /disk4/una/mpich2

I would try not setting this variable because when you use mpif90 as the compiler/linker that script is supposed to provide the correct (consistent) paths for the mpi include and library files. So try the following settings:

MPICH_PATH :=
INC_MPI :=
LIB_MPI :=
MPI_LIB_NAME :=

Be sure to start from scratch when trying to rebuild. Do not use any part of a previous build attempt.
 
Hi eaton,

When I change the Macros.generic_linux_intel, it has made another mistake.

ERROR: mct.buildlib failed, see /disk4/una/output/testt1/mct/mct.bldlog.101212-230801
ERROR: cat /disk4/una/output/testt1/mct/mct.bldlog.101212-230801


Then the mct.bldlog file ,


Copying source to CCSM EXEROOT...
New build of MCT
Running configure...
for OS=Linux MACH=generic_linux_intel
cat: Filepath: No such file or directory
cat: Srcfiles: No such file or directory
/disk4/una/testt1/Tools/mkSrcfiles > /disk4/una/output/testt1/mct/Srcfiles
cp -f /disk4/una/output/testt1/mct/Filepath /disk4/una/output/testt1/mct/Deppath
/disk4/una/testt1/Tools/mkDepends Deppath Srcfiles > /disk4/una/output/testt1/mct/Depends
./configure CC="mpicc" FC="mpif90" F90="mpif90" INCLUDEPATH="-I"
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 mpicc accepts -g... yes
checking for mpicc option to accept ANSI C... none needed
checking Fortran 90 filename extension... .F90
checking whether we are using the GNU Fortran 90 compiler... yes
checking for mpxlf90_r... no
checking for mpxlf90... no
checking for mpxlf95... no
checking for mpif90... mpif90
checking for MPI_Init... yes
checking for mpif.h... yes
checking how to get the version output from mpif90... --version
checking whether byte ordering is bigendian... no
checking whether fortran .mod file is uppercase... no
checking for Fortran 90 name-mangling scheme... lower case, underscore
checking for cpp... cpp
checking if Fortran 90 compiler performs preprocessing... yes
checking if C preprocessor can work with Fortran compiler... yes
Hostname=N000
Machine=x86_64
OS=Linux
configure: WARNING: UNKNOWN FORTRAN 90 COMPILER

Output Variables: {CC=mpicc} {ALLCFLAGS=-DFORTRAN_UNDERSCORE_ -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=-I} {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 `/disk4/una/output/testt1/mct/mpeu'
mpicc -c -DFORTRAN_UNDERSCORE_ -DSYSLINUX -DCPRUNKNOWNCPR -O get_zeits.c
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_mpif.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_realkinds.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_stdio.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_mpif90.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_dropdead.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_chars.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_flow.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_ioutil.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_mpout.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_die.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_IndexBin_char.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_IndexBin_integer.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_IndexBin_logical.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_mall.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_String.F90
mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_List.F90
m_List.F90: In function 'exporttostring_':
m_List.F90:925: error: conversion to non-scalar type requested
make[1]: *** [m_List.o] Error 1
make[1]: Leaving directory `/disk4/una/output/testt1/mct/mpeu'
make: *** [subdirs] Error 2


Thank you for reply!

Edith
 

eaton

CSEG and Liaisons
This failure is unrelated to mpi. The compiler that is being invoked by mpif90 is failing to compile the file m_List.F90:

mpif90 -c -I -DSYSLINUX -DCPRUNKNOWNCPR m_List.F90
m_List.F90: In function 'exporttostring_':
m_List.F90:925: error: conversion to non-scalar type requested
make[1]: *** [m_List.o] Error 1

I'm not aware of any problems with this code, so I'm guessing that this is either a compiler issue, or an issue with the flags that are being given to the compiler. The MCT configure script is generating the Makefile that is used for this build. Interestingly, I see in your first post in this thread that the MCT library was built successfully. What's different now from when MCT built successfully?

 
Hi eaton,

I do not understand what you mean. But the key point is the first thread built with the mpi of our cluster, and all the mistakes happened after that was built with my new mpi.

So what is the problem about my first thread.

Thank you!

Edith
 
Hi

If I change the 'FC=mpif90' in the Macros.generic_linux_intel to 'FC=mpiifort', the mct.buildlib can go on, then the pio.buildlib failed. In the pio.bldlog.* file ,

Copying source to CCSM EXEROOT...
ignore pio file alloc_mod.F90
ignore pio file box_rearrange.F90
cp: omitting directory `configure.old'
ignore pio file iompi_mod.F90
ignore pio file mct_rearrange.F90
ignore pio file piodarray.F90
ignore pio file pionfatt_mod.F90
ignore pio file pionfget_mod.F90
ignore pio file pionfput_mod.F90
ignore pio file pionfread_mod.F90
ignore pio file pionfwrite_mod.F90
ignore pio file pio_spmd_utils.F90
ignore pio file pio_support.F90
ignore pio file rearrange.F90
New build of PIO
Running configure...
for OS=Linux MACH=generic_linux_intel
cat: Filepath: No such file or directory
cat: Srcfiles: No such file or directory
/disk4/una/test1/Tools/mkSrcfiles > /disk4/una/output/test1/pio/Srcfiles
cp -f /disk4/una/output/test1/pio/Filepath /disk4/una/output/test1/pio/Deppath
/disk4/una/test1/Tools/mkDepends Deppath Srcfiles > /disk4/una/output/test1/pio/Depends
./configure --disable-mct --disable-timing CC="mpicc" F90="mpiifort" NETCDF_PATH="/disk1/soft/netcdf-3.6.2" MPI_INC="-I"
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 mpicc accepts -g... yes
checking for mpicc option to accept ISO C89... none needed
checking for mpicc... mpicc
checking for MPI_Init... yes
checking for mpi.h... yes
checking how to run the C preprocessor... mpicc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for char... yes
checking size of char... 1
checking for int... yes
checking size of int... 4
checking for float... yes
checking size of float... 4
checking for double... yes
checking size of double... 8
checking for void *... yes
checking size of void *... 8
checking Fortran 90 filename extension... .F90
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 mpif.h... yes
checking MPI-IO support in MPI implementation... yes
checking how to get the version output from mpiifort... -V
checking whether byte ordering is bigendian... no
Fortran Compiler is Intel ifort
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
Full hostname= N000
Hostname=N000
Machine=x86_64
OS=Linux
using NETCDF_PATH from environment
configure: WARNING: PNETCDF_PATH not found in environment, defaulting to /usr/local/pnetcdf
configure: WARNING: pnetcdf.inc not found in PNETCDF_PATH/include disabling pnetcdf support
configure: WARNING: libpnetcdf.a not found in PNETCDF_PATH/lib disabling pnetcdf support
checking Fortran 90 support for sizeof()... yes

Temp variables: {F90=mpiifort} {MPIF90=mpif90}

Output Variables: {CC=mpicc} {MPICC=mpicc} {ALLCFLAGS=-g -O2 -DFORTRAN_MANGLING_UNKNOWN -DSYSLINUX -DLINUX -DCPRINTEL} {EXPLICIT_FPP=no} {FPP=cpp} {FPPFLAGS=-P -C -N -traditional} {FC=mpiifort} {MPIF90=mpif90}{OPT=} {BIT64=} {REAL8=-r8} {ENDIAN=-convert big_endian} {FFLAGS= -I} {CFLAGS=-g -O2} {F90FLAGS=-w -ftz -assume byterecl} {MACHDEFS=-DSYSLINUX -DLINUX -DCPRINTEL} {MPI_INC=-I} {MPI_LIB=} {MODINC=-I} {INCLUDEPATH=} {AR=ar} {ARFLAGS=cq} {USE_PNETCDF=no} {PNETCDF_PATH=/usr/local/pnetcdf} {USE_NETCDF=yes} {NETCDF_PATH=/disk1/soft/netcdf-3.6.2} {USE_MCT=no} {USEBOX=yes} {PDEFS= -DSPMD -DHAVE_MPI -DUSEMPIIO -D_NETCDF -D_NOPNETCDF -D_NOUSEMCT -D_USEBOX} {PDEFSF= -DSPMD -DHAVE_MPI -DUSEMPIIO -D_NETCDF -D_NOPNETCDF -D_NOUSEMCT -D_USEBOX} {PINCS=-I -I/disk1/soft/netcdf-3.6.2/include} {LDLIBS= -L/disk1/soft/netcdf-3.6.2/lib -lnetcdf } {DEBUG=no}

configure: creating ./config.status
config.status: creating Makefile.conf
Please check the Makefile.conf
Have a nice day!
Making dependencies for pio.F90 --> pio.d
Making dependencies for pio_kinds.F90 --> pio_kinds.d
Making dependencies for nf_mod.F90 --> nf_mod.d
Making dependencies for ionf_mod.F90 --> ionf_mod.d
Making dependencies for pio_types.F90 --> pio_types.d
Making dependencies for piolib_mod.F90 --> piolib_mod.d
Making dependencies for pio_mpi_utils.F90 --> pio_mpi_utils.d
Making dependencies for pio_nf_utils.F90 --> pio_nf_utils.d
Making dependencies for pio_utils.F90 --> pio_utils.d
Making dependencies for pio_quicksort.F90 --> pio_quicksort.d
/usr/bin/perl genf90.pl pionfatt_mod.F90.in > pionfatt_mod.F90
Making dependencies for pionfatt_mod.F90 --> pionfatt_mod.d
/usr/bin/perl genf90.pl pionfread_mod.F90.in > pionfread_mod.F90
Making dependencies for pionfread_mod.F90 --> pionfread_mod.d
/usr/bin/perl genf90.pl pionfwrite_mod.F90.in > pionfwrite_mod.F90
Making dependencies for pionfwrite_mod.F90 --> pionfwrite_mod.d
/usr/bin/perl genf90.pl pionfput_mod.F90.in > pionfput_mod.F90
Making dependencies for pionfput_mod.F90 --> pionfput_mod.d
/usr/bin/perl genf90.pl pionfget_mod.F90.in > pionfget_mod.F90
Making dependencies for pionfget_mod.F90 --> pionfget_mod.d
/usr/bin/perl genf90.pl alloc_mod.F90.in > alloc_mod.F90
Making dependencies for alloc_mod.F90 --> alloc_mod.d
/usr/bin/perl genf90.pl box_rearrange.F90.in > box_rearrange.F90
Making dependencies for box_rearrange.F90 --> box_rearrange.d
/usr/bin/perl genf90.pl rearrange.F90.in > rearrange.F90
Making dependencies for rearrange.F90 --> rearrange.d
/usr/bin/perl genf90.pl pio_support.F90.in > pio_support.F90
Making dependencies for pio_support.F90 --> pio_support.d
/usr/bin/perl genf90.pl mct_rearrange.F90.in > mct_rearrange.F90
Making dependencies for mct_rearrange.F90 --> mct_rearrange.d
/usr/bin/perl genf90.pl iompi_mod.F90.in > iompi_mod.F90
Making dependencies for iompi_mod.F90 --> iompi_mod.d
/usr/bin/perl genf90.pl piodarray.F90.in > piodarray.F90
Making dependencies for piodarray.F90 --> piodarray.d
/usr/bin/perl genf90.pl pio_spmd_utils.F90.in > pio_spmd_utils.F90
Making dependencies for pio_spmd_utils.F90 --> pio_spmd_utils.d
Done updating dependencies
gmake[1]: Entering directory `/disk4/una/output/test1/pio'mpicc -c -g -O2 -DFORTRAN_MANGLING_UNKNOWN -DSYSLINUX -DLINUX -DCPRINTEL -DSPMD -DHAVE_MPI -DUSEMPIIO -D_NETCDF -D_NOPNETCDF -D_NOUSEMCT -D_USEBOX -I -I/disk1/soft/netcdf-3.6.2/include topology.cmpicc -c -g -O2 -DFORTRAN_MANGLING_UNKNOWN -DSYSLINUX -DLINUX -DCPRINTEL -DSPMD -DHAVE_MPI -DUSEMPIIO -D_NETCDF -D_NOPNETCDF -D_NOUSEMCT -D_USEBOX -I -I/disk1/soft/netcdf-3.6.2/include pnetcdfversion.cmpif90 -c -r8 -convert big_endian -I -w -ftz -assume byterecl -DSYSLINUX -DLINUX -DCPRINTEL -DSPMD -DHAVE_MPI -DUSEMPIIO -D_NETCDF -D_NOPNETCDF -D_NOUSEMCT -D_USEBOX -I -I/disk1/soft/netcdf-3.6.2/include pio_kinds.F90
gfortran: big_endian: No such file or directory
gfortran: byterecl: No such file or directory
gfortran: unrecognized option '-r8'
gfortran: unrecognized option '-convert'
cc1: error: unrecognized command line option "-ftz"
gmake[1]: *** [pio_kinds.o] Error 1
gmake[1]: Leaving directory `/disk4/una/output/test1/pio'
gmake: *** [all] Error 2
 

jedwards

CSEG and Liaisons
Staff member
Hi Edith,

Fortran Compiler is Intel ifort
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

PIO's configure is trying to compile with ifort but cannot compile a simple program. Can you compile from the command line using ifort? Have a look at the file config.log which should be located in /disk4/una/output/test1/pio

Mine looks like this:

configure:7147: checking whether fortran .mod file is uppercase
configure:7169: ifort -c -w -ftz -assume byterecl conftest.F90 >&5
configure:7175: $? = 0
configure:7200: result: no
configure:7221: checking for Fortran 90 name-mangling scheme
configure:7245: cc -c -g -O2 conftest.c >&5
/opt/cray/xt-asyncpe/3.7/bin/cc: INFO: linux target is being used
configure:7251: $? = 0
configure:7284: ifort -o conftest -w -ftz -assume byterecl conftest.F90 cf90_t
est.o >&5
configure:7290: $? = 0
configure:7359: result: lower case, underscore

How about yours?
Jim
 
Hi Edwards,

My config.log is like this ,
configure:7143: checking whether fortran .mod file is uppercase
configure:7165: mpif90 -c -w -ftz -assume byterecl conftest.F90 >&5
gfortran: byterecl: No such file or directory
cc1: error: unrecognized command line option "-ftz"
configure:7171: $? = 1
configure: failed program was:
| module foobar
| end
configure:7196: result: unknown
configure:7209: WARNING: Compilation of module did not create .mod file. Please check compiler manual.
configure:7217: checking for Fortran 90 name-mangling scheme
configure:7241: mpicc -c -g -O2 conftest.c >&5
configure:7247: $? = 0
configure:7280: mpif90 -o conftest -w -ftz -assume byterecl conftest.F90 cf90_test.o >&5
gfortran: byterecl: No such file or directory
cc1: error: unrecognized command line option "-ftz"
configure:7286: $? = 1


Thank you for reply!

Edith
 

eaton

CSEG and Liaisons
I'm wondering why the pio configure is using mpif90 rather than mpiifort for this test. I can't tell where the mpif90 is coming from, but it appears to be invoking gfortran as the fortran compiler which is failing since it doesn't recognize the intel compiler arguments.
 
Top