AGRIF compile error. LIB conv compilation fails?
Hi Croco users,
I am using the latest released croco 1.2.1. My configuration without AGRIF compiles and runs fine. Then I follow the documentation steps to create the nested grid and forcing, bulk, initial, croco.in.1 and AGRIF_FixedGrids.in with the nestgui.m utility without any errors and all the files are created.
When running jobcomp with AGRIF defined I get a lot of warning such as:
===================================================
Compile conv...
make -C LIB conv
make[1]: Entering directory '/home/konstantinos/Programs/Croco/CONFIGS/ROTATED/Compile/AGRIF/LIB'
cc -Wno-implicit-function-declaration -c main.c -o main.o
convert.y: In function ‘main’:
convert.y:310:33: warning: ‘%s’ directive writing 16 bytes into a region of size between 0 and 999 [-Wformat-overflow=]
convert.y:310:13: note: ‘sprintf’ output between 18 and 1017 bytes into a destination of size 1000
cc main.o WriteInFile.o toamr.o fortran.o dependfile.o SubLoopCreation.o WorkWithlistvarindoloop.o WorkWithvarofsubroutineliste.o WorkWithParameterlist.o Writedeclarations.o WorkWithglobliste.o UtilFortran.o UtilNotGridDep.o WorkWithlistdatavariable.o DiversListe.o UtilAgrif.o WorkWithAllocatelist.o UtilCharacter.o UtilListe.o UtilFile.o WorkWithlistofmodulebysubroutine.o WorkWithlistmoduleinfile.o WorkWithlistofcoupled.o -o ./conv
/usr/bin/ld: WriteInFile.o:(.bss+0x0): multiple definition of curvar'; main.o:(.bss+0x0): first defined here
/usr/bin/ld: WriteInFile.o:(.bss+0x8): multiple definition of
List_ModuleUsedInModuleUsed_Var'; main.o:(.bss+0x8): first defined here
And finally I get an error: collect2: error: ld returned 1 exit status make[1]: * [Makefile:34: conv] Error 1 make[1]: Leaving directory '/home/konstantinos/Programs/Croco/CONFIGS/ROTATED/Compile/AGRIF/LIB' make: * [Makefile:32: conv] Error 2 make: Leaving directory '/home/konstantinos/Programs/Croco/CONFIGS/ROTATED/Compile/AGRIF' mv: cannot stat 'AGRIF/conv': No such file or directory
I tried with both gfortran, mpif90, gmake amd also with ifort, mpiifort and make and always the error is the same.
The ifort compiler has the following flags: FFLAGS1="-O3 -fno-alias -i4 -r8 -fp-model precise" And I have added the workaround “-fallow-argument-mismatch” in the new gfortran compiler: FFLAGS1="-O3 -fdefault-real-8 -fdefault-double-8 -fallow-argument-mismatch"
The compiler versions are: ifort --version ifort (IFORT) 2021.7.0 20220726 Copyright (C) 1985-2022 Intel Corporation. All rights reserved.
gfortran --version GNU Fortran (Ubuntu 11.2.0-19ubuntu1) 11.2.0 Copyright (C) 2021 Free Software Foundation, Inc.
Thank you for your advice Konstantinos