Main menu

Navigation

PIO Build error: genf90.pl

7 posts / 0 new
Last post
gailrmuldoon+cg...
PIO Build error: genf90.pl

Hello,

I've ported CESM to Lonestar at the University of Texas. I recently updated from CESM 1.1 to CESM 1.2.0 and am working on configuring a run that I've done before. However, when I try to build, I get the following error:

login1% ./*build
-------------------------------------------------------------------------
 CESM BUILDNML SCRIPT STARTING
 - To prestage restarts, untar a restart.tar file into /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/run
 infile is /work/01559/gailg/cesm1_2_0/scripts/i.e11.IG1850.f09_g16.002/Buildconf/cplconf/cesm_namelist 
CLM configure done.
CLM adding use_case 1850_glacierMEC_control defaults for var glc_nec with val 10 
CLM adding use_case 1850_glacierMEC_control defaults for var glc_smb with val .true. 
CLM adding use_case 1850_glacierMEC_control defaults for var hist_fincl2 with val QICE 
CLM adding use_case 1850_glacierMEC_control defaults for var hist_mfilt with val 1,1 
CLM adding use_case 1850_glacierMEC_control defaults for var hist_nhtfrq with val 0,-8760 
CLM adding use_case 1850_glacierMEC_control defaults for var sim_year with val 1850 
CLM adding use_case 1850_glacierMEC_control defaults for var sim_year_range with val constant 
CLM adding use_case 1850_glacierMEC_control defaults for var use_case_desc with val Running an IG case for 1850 conditions with the ice sheet model glimmer 
 CESM BUILDNML SCRIPT HAS FINISHED SUCCESSFULLY
-------------------------------------------------------------------------
-------------------------------------------------------------------------
 CESM PRESTAGE SCRIPT STARTING
 - Case input data directory, DIN_LOC_ROOT, is /work/01559/gailg/input/inputdata
 - Checking the existence of input datasets in DIN_LOC_ROOT
 CESM PRESTAGE SCRIPT HAS FINISHED SUCCESSFULLY
-------------------------------------------------------------------------
-------------------------------------------------------------------------
 CESM BUILDEXE SCRIPT STARTING
 COMPILER is intel
 - Build Libraries: mct gptl pio csm_share 
Thu Oct 17 12:36:50 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/mct/mct.bldlog.131017-123646
Thu Oct 17 12:37:21 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/gptl/gptl.bldlog.131017-123646
Thu Oct 17 12:37:23 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/pio/pio.bldlog.131017-123646
ERROR: buildlib.pio failed, see /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/pio/pio.bldlog.131017-123646
ERROR: cat /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/pio/pio.bldlog.131017-123646
 The end of the PIO buildlog reads:
 
configure: creating ./config.status
config.status: creating Makefile.conf
config.status: creating config.h
Please check the Makefile.conf
Have a nice day!
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio.F90 --> pio.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_kinds.F90 --> pio_kinds.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/nf_mod.F90 --> nf_mod.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/ionf_mod.F90 --> ionf_mod.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_types.F90 --> pio_types.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/calcdecomp.F90 --> calcdecomp.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/piolib_mod.F90 --> piolib_mod.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_mpi_utils.F90 --> pio_mpi_utils.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_nf_utils.F90 --> pio_nf_utils.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_utils.F90 --> pio_utils.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_msg_mod.F90 --> pio_msg_mod.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/calcdisplace_mod.F90 --> calcdisplace_mod.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_msg_callbacks.F90 --> pio_msg_callbacks.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pio_support.F90 --> pio_support.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/C_interface_mod.F90 --> C_interface_mod.d
Making dependencies for /work/01559/gailg/cesm1_2_0/models/utils/pio/pionfatt_mod.F90 --> pionfatt_mod.d
/usr/bin/perl ../bin/genf90.pl /work/01559/gailg/cesm1_2_0/models/utils/pio/pionfread_mod.F90.in > pionfread_mod.F90
Can't open perl script "../bin/genf90.pl": No such file or directory
gmake: *** [pionfread_mod.F90] Error 2
I've looked for the genf90.pl script and found it in ~/cesm1_2_0/tools/cprnc/genf90/genf90.pl. I don't know what the "../bin/genf90.pl" location the model looks for might be, but it appears that the model is looking in the wrong place. Has anyone seen this problem before or have any suggestions on how to fix it? I've attached the complete pio.bldlog for reference.
jedwards

In the file buildlib.pio add the phrase

GENF90=$CCSMROOT/tools/cprnc/genf90

to the GMAKE command at the end of the file. 


Looking in my copy of cesm1.2.0 I see that it is already there.   Did you try to clone a case from 1.1 to 1.2?   If so I think that this will be the first of a number of errors that you may run into.   Better to start with create_newcase.


Jim

 

CESM Software Engineer

gailrmuldoon+cg...

I edited GENF90 in $CCSMROOT/models/utils/pio/Makefile which seems to have solved the problem, though you're right that I'm running into other issues. I haven't cloned a case from a previous version; I began with a create_newcase and configured things similarly. Unfortunately I'm still having these problems. This is my first time using the new version on Lonestar, but I'm not sure why these issues are coming up to begin with.

jedwards

Can you diff your scripts/ccsm_utils/Machines directory against a clean repo version?   I wonder if in porting 1_2_0 to lonestar the Machines directory from 1.1 was just copied over?

 

CESM Software Engineer

gailrmuldoon+cg...

I've compared to a clean checkout and the files from 1.2.0 are there. I've modified config_machines.xml to include an entry for Lonestar as well as added files env_mach_specific_lonestar.xml and mkbatch.lonestar. The changes/additions in those three files are the same as what I was using to run 1.2.1 since nothing on Lonestar has changed. Perhaps I need to start from scratch on the port?

The error I'm getting when trying to build is:

CESM BUILDEXE SCRIPT STARTING

 COMPILER is intel

 - Build Libraries: mct gptl pio csm_share 

Thu Oct 17 19:09:33 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/mct/mct.bldlog.131017-190920

Thu Oct 17 19:10:05 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/gptl/gptl.bldlog.131017-190920

Thu Oct 17 19:10:07 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/pio/pio.bldlog.131017-190920

Thu Oct 17 19:10:48 CDT 2013 /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/csm_share/csm_share.bldlog.131017-190920

ERROR: buildlib.csm_share failed, see /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/csm_share/csm_share.bldlog.131017-190920

ERROR: cat /work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/csm_share/csm_share.bldlog.131017-190920

 

The end of the csm_share.bldlog file shows the error: mpif90  -c -I.  -I/opt/apps/intel11_1/netcdf/4.2.1.1/include -I/work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/mct/mct -I/work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/mct/mpeu -I/work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/pio -I/work/01559/gailg/cesm1_2_0/models/utils/pio -I/work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/lib/include -I. -I/work/01559/gailg/cesm1_2_0/scripts/i.e11.IG1850.f09_g16.002/SourceMods/src.share -I/work/01559/gailg/cesm1_2_0/models/drv/shr_mct -I/work/01559/gailg/cesm1_2_0/models/drv/shr -I/work/01559/gailg/cesm1_2_0/models/dead_share -I/work/01559/gailg/cesm1_2_0/models/csm_share/shr -I/work/01559/gailg/cesm1_2_0/models/utils/esmf_wrf_timemgr -I/work/01559/gailg/output/i.e11.IG1850.f09_g16.002/bld/lib/include  -fp-model precise -convert big_endian -assume byterecl -ftz -traceback  -DNUM_COMP_INST_ATM=1 -DNUM_COMP_INST_LND=1 -DNUM_COMP_INST_OCN=1 -DNUM_COMP_INST_ICE=1 -DNUM_COMP_INST_GLC=1 -DLINUX  -DMCT_INTERFACE -DHAVE_MPI -DFORTRANUNDERSCORE -DNO_R16 -DHAVE_F2008_CONTIGUOUS -DLINUX -DCPRINTEL  -DHAVE_SLASHPROC -FR   /work/01559/gailg/cesm1_2_0/models/csm_share/shr/shr_vmath_mod.F90/work/01559/gailg/cesm1_2_0/models/csm_share/shr/shr_spfn_mod.F90(304): error #6407: This symbolic name is not an intrinsic function name or an intrinsic subroutine name.   [ERFC_SCALED]  intrinsic erfc_scaled------------^/work/01559/gailg/cesm1_2_0/models/csm_share/shr/shr_spfn_mod.F90(319): error #6407: This symbolic name is not an intrinsic function name or an intrinsic subroutine name.   [ERFC_SCALED]  intrinsic erfc_scaled------------^/work/01559/gailg/cesm1_2_0/models/csm_share/shr/shr_spfn_mod.F90(334): error #6407: This symbolic name is not an intrinsic function name or an intrinsic subroutine name.   [GAMMA]  intrinsic gamma------------^/work/01559/gailg/cesm1_2_0/models/csm_share/shr/shr_spfn_mod.F90(335): error #7137: Any procedure referenced in a PURE procedure, including one referenced via a defined operation or assignmnent, must be explicitly declared PURE.   [GAMMA]  res = gamma(x)--------^compilation aborted for /work/01559/gailg/cesm1_2_0/models/csm_share/shr/shr_spfn_mod.F90 (code 1)gmake: *** [shr_spfn_mod.o] Error 1gmake: *** Waiting for unfinished jobs....gmake complib -j 2 MODEL=csm_share COMPLIB=libcsm_share.a USER_CPPDEFS="  -DNUM_COMP_INST_ATM=1 -DNUM_COMP_INST_LND=1 -DNUM_COMP_INST_OCN=1 -DNUM_COMP_INST_ICE=1 -DNUM_COMP_INST_GLC=1" -f /work/01559/gailg/cesm1_2_0/scripts/i.e11.IG1850.f09_g16.002/Tools/Makefile  returned non-zero exit status 2

 

santos

Hmm; this is due to an old version of Intel compiler, I think. We've probably tested with Intel no earlier than 12.1 for CESM 1.2. Look for the following line at the top of models/csm_share/shr/shr_spfn_mod.F90

#if defined CPRIBM || defined CPRINTEL || defined __GFORTRAN__ || defined CPRCRAY || defined CPRLAHEY

Just remove CPRINTEL from this list, and I think it should work.

Note to Jim: In the future, should we put these declarations, e.g. HAVE_GAMMA_INTRINSICS and HAVE_GET_ENVIRONMENT, in a config.h and have Machines create that? We keep having this problem where as soon as you think you have the compiler support issues nailed down, it turns out that someone has an older compiler that breaks. It might be better if users (and developers porting the model) could just supply a config.h for their own compiler as a workaround.

Sean Patrick Santos

CESM Software Engineering Group

gailrmuldoon+cg...

I removed CPRINTEL from that line, so it now reads:

#if defined CPRIBM || defined __GFORTRAN__ || defined CPRCRAY || defined CPRLAHEY

Unfortunately, I still get an error (see cesm_share.bldlog excerpt below). I'm working on Lonestar at TACC, where the most up to date intel compiler is 11.1, so I don't have the option to update. Is there anything else I might be able to do to get this working on my current machine?

 

/work/01559/gailg/cesm1_2_0/models/drv/shr/seq_comm_mct.F90(77): error #6592: This symbol must be a defined parameter, an enumerator, or an argument of an inquiry function that evaluates to a compile-time constant.   [NUM_COMP_INST_WAV]

  integer, parameter, public :: num_inst_wav = NUM_COMP_INST_WAV

-----------------------------------------------^

/work/01559/gailg/cesm1_2_0/models/drv/shr/seq_comm_mct.F90(78): error #6592: This symbol must be a defined parameter, an enumerator, or an argument of an inquiry function that evaluates to a compile-time constant.   [NUM_COMP_INST_ROF]

  integer, parameter, public :: num_inst_rof = NUM_COMP_INST_ROF

-----------------------------------------------^

/work/01559/gailg/cesm1_2_0/models/drv/shr/seq_comm_mct.F90(77): error #6404: This name does not have a type, and must have an explicit type.   [NUM_COMP_INST_WAV]

  integer, parameter, public :: num_inst_wav = NUM_COMP_INST_WAV

-----------------------------------------------^

/work/01559/gailg/cesm1_2_0/models/drv/shr/seq_comm_mct.F90(78): error #6404: This name does not have a type, and must have an explicit type.   [NUM_COMP_INST_ROF]

  integer, parameter, public :: num_inst_rof = NUM_COMP_INST_ROF

-----------------------------------------------^

compilation aborted for /work/01559/gailg/cesm1_2_0/models/drv/shr/seq_comm_mct.F90 (code 1)

gmake: *** [seq_comm_mct.o] Error 1

gmake: *** Waiting for unfinished jobs....

gmake complib -j 2 MODEL=csm_share COMPLIB=libcsm_share.a USER_CPPDEFS="  -DNUM_COMP_INST_ATM=1 -DNUM_COMP_INST_LND=1 -DNUM_COMP_INST_OCN=1 -DNUM_COMP_INST_ICE=1 -DNUM_COMP_INST_GLC=1" -f /work/01559/gailg/cesm1_2_0/scripts/i.e11.IG1850.f09_g16.002/Tools/Makefile  returned non-zero exit status 2

 

Log in or register to post comments

Who's new

  • zoe.gillett@...
  • jayaiisc@...
  • xianwu0403@...
  • jiangfeng@...
  • gonzalo-ferrada@...