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

Compiling CESM 1.2.2 using Cray compiler fails


Code:
Hi,
I'm currently performing some CESM 1.2.2 benchmark tests with different compilers on CSCS - Piz Daint machine (Cray XC40 Nodes) using:<br />COMPSET=B_1850_BGC-BPRP<br />RES=0.9x1.25_gx1v6<br /><br />Everything works with Intel, PGI and GNU compilers.<br />However, if I use Cray-compiler (with cce 8.5.5), building fails:

...
  Thu Mar 2 16:53:42 CET 2017
/scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_768_128//ocn.bldlog.170302-
164144
  ERROR: pop2.buildexe.csh failed, see
/scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_768_128//ocn.bldlog.170302-
164144
  ERROR: cat
/scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_768_128//ocn.bldlog.170302-
164144

in ocn.bldlog.170302-164144:
...
  ftn-320 crayftn: ERROR ECOSYS_SET_INTERIOR, File =
  ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_768_128_10/ocn/source/ecosys_mod.F90,
Line = 3979, Column = 53
    A vector subscript must be a rank 1 integer expression.


ftn-320 crayftn: ERROR ECOSYS_SET_INTERIOR, File =
../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_768_128_10/ocn/source/ecosys_mod.F90,
Line = 4018, Column = 57
   A vector subscript must be a rank 1 integer expression.
...

Here the problematic code lines of ecosys.mod: (the %C_ind seems to be the problem)
---
Line 3979:              +
sum(DTRACER_MODULE(:,:,autotrophs(:)*%C_ind*),
dim=3)
...
Line 4018:              + Q *
sum(DTRACER_MODULE(:,:,autotrophs(:)*%C_ind*), dim=3)

---

<br />Attached:
- log of compilation(BMTEST...log)
- ocn.bld.log
 
Thanks to Andreas Jocksch (CSCS) I could solve the problem with ecosys.mod:The problem seems to be that %C_ind is real(kind=8) while an integer is expected. If one add int(), it compiles:original: sum(DTRACER_MODULE(:,:,autotrophs(:)*%C_ind*), dim=3)corrected: sum(DTRACER_MODULE(:,:,int(autotrophs(:)*%C_ind*)), dim=3)
 
However, compiling now fails at another file:ftn-790 crayftn: WARNING RI_IWMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1246, Column = 16
  Unknown or unsupported compiler directive or syntax error.


ftn-790 crayftn: WARNING RI_IWMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1248, Column = 16
  Unknown or unsupported compiler directive or syntax error.


ftn-790 crayftn: WARNING RI_IWMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1453, Column = 13
  Unknown or unsupported compiler directive or syntax error.


ftn-1379 crayftn: ERROR RI_IWMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1455, Column = 10
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-790 crayftn: WARNING RI_IWMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1456, Column = 13
  Unknown or unsupported compiler directive or syntax error.


ftn-1379 crayftn: ERROR BLDEPTH, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1737, Column = 10
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLDEPTH, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1915, Column = 13
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLDEPTH, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 1928, Column = 13
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2288, Column = 10
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2301, Column = 10
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2337, Column = 13
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2386, Column = 13
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2465, Column = 10
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2493, Column = 7
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2504, Column = 7
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-1379 crayftn: ERROR BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2546, Column = 10
  The DO-variable was not specified in the COLLAPSE list preceding this loop nest.


ftn-790 crayftn: WARNING BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2583, Column = 13
  Unknown or unsupported compiler directive or syntax error.


ftn-790 crayftn: WARNING BLMIX, File = ../../../scratch/snx3000/rbleisch/cesm1.2/BMTEST_BGC_daint_cray_pes_blumer_10/ocn/source/vmix_kpp.F90, Line = 2585, Column = 13
  Unknown or unsupported compiler directive or syntax error.

Cray Fortran : Version 8.5.x.x (20161018192458_ea2a5395960bcf0b21601dab3dff40dd5608597c)
Cray Fortran : Tue Mar 14, 2017  09:04:31
Cray Fortran : Compile time:  0.2720 seconds
Cray Fortran : 3543 source lines
Cray Fortran : 13 errors, 6 warnings, 0 other messages, 0 ansi
Cray Fortran : "explain ftn-message number" gives more information about each message.
/users/rbleisch/cesm1_2_2/scripts/BMTEST_BGC_daint_cray_pes_blumer_10/Tools/Makefile:652: recipe for target 'vmix_kpp.o' failed
gmake: *** [vmix_kpp.o] Error 1
gmake: *** Waiting for unfinished jobs....

there seems to be an issue with some declarations in ocn/source/vmix_kpp.F90Attached:- vmix_kpp.F90- ocn.bld.log
 
I could solve this issue by editing vmix_kpp.F90 as following:- replace all "!DIR$ NODEP" directives by "!DIR$ IVDEP"
- add "(i,j)" to all "!DIR$ COLLAPSE" directives: => "!DIR$ COLLAPSE (i,j)"Afterwards compilation stops at building rof:
  
  rof.bldlog.xx:
  ftn-505 crayftn: ERROR RTMINI, File = ../../../users/rbleisch/cesm1_2_2/models/rof/rtm/src/riverroute/RtmMod.F90, Line = 402, Column = 15
  Continuation of character context in free source form requires an "&" as the first nonblank character of the next line.

This can be fixed by adapting models/rof/rtm/src/riverroute/RtmMod.F90:
  add a "&" at the begin of line 402
 Then it stops at building cesm.exe:

cesm.bldlog.xx:
csm_comp_mod.o: In function `t_drvstartf$ccsm_comp_mod_clone_119791_80_':
/users/rbleisch/cesm1_2_2/models/drv/driver/ccsm_comp_mod.F90:2862: undefined reference to `omp_in_parallel_'
... cray-compiler seems to use openmp by default.As I use MPICH, I had to add a flag "-h noomp" to CPPDEFS,CFLAGS,FFLAGS and LDFLAGS, then it finally worked!
 
Top