DOI-USGS / COAWST

COAWST modeling system git repository
Other
100 stars 48 forks source link

SWAN build error in COAWST v3.8 #276

Open arief121 opened 5 days ago

arief121 commented 5 days ago

Hi All,

I'm new to COAWST. I already installed COAWST v3.8 MCT and it worked. I tried to build and run roms_only for inlet_test, it went well, but when I build the inlet_test case for swan_only, an error appears like this:

master.f90(9): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MOD_SWAN_KINDS] USE mod_swan_kinds ----------^ master.f90(10): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [SWAN_IOUNITS] USE swan_iounits ----------^ master.f90(11): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [M_MPI] USE M_MPI ----------^ master.f90(12): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [WAVES_CONTROL_MOD] USE waves_control_mod, ONLY : SWAN_driver_init ----------^ master.f90(37): error #6404: This name does not have a type, and must have an explicit type. [MPI_COMM_WORLD] CALL mpi_comm_rank (MPI_COMM_WORLD, MyRank, MyError) --------------------------^ master.f90(45): error #6406: Conflicting attributes or multiple declaration of name. [SWAN_DRIVER_INIT] CALL SWAN_driver_init (MPI_COMM_WORLD) -------------^ master.f90(48): error #6406: Conflicting attributes or multiple declaration of name. [SWAN_DRIVER_RUN] CALL SWAN_driver_run -------------^ master.f90(50): error #6406: Conflicting attributes or multiple declaration of name. [SWAN_DRIVER_FINALIZE] CALL SWAN_driver_finalize -----------^ master.f90(12): error #6580: Name in only-list does not exist or is not accessible. [SWAN_DRIVER_INIT] USE waves_control_mod, ONLY : SWAN_driver_init ------------------------------------^ master.f90(13): error #6580: Name in only-list does not exist or is not accessible. [SWAN_DRIVER_RUN] USE waves_control_mod, ONLY : SWAN_driver_run ------------------------------------^ master.f90(14): error #6580: Name in only-list does not exist or is not accessible. [SWAN_DRIVER_FINALIZE] USE waves_control_mod, ONLY : SWAN_driver_finalize ------------------------------------^ compilation aborted for master.f90 (code 1) make: *** [Master/Module.mk:33: Build_roms/master.o] Error 1

I'm not sure where I'm wrong, but I checked the MCT path, it's located correctly. $MCT_INCDIR >> /home/run_4/couple1/COAWST-main/MCT-LIB/Installed_MCT/lib $MCT_LIBDIR >> /home/run_4/couple1/COAWST-main/MCT-LIB/Installed_MCT/include

do you know what the problem is and what I should do to fix it?

many thanks, Arief

build_coawst.log

jcwarner-usgs commented 4 days ago

I am not sure. can you try: make clean and try again? you should not have to do that.
what is in your proj.h? just #define SWAN_MODEL? the problem is that it is not recompiling SWAN. it is not the MCT.

arief121 commented 4 days ago

Hi John, thank you for your reply.

yes, the cpp just #define SWAN_MODEL and #define NESTING, follow the default cpp for inlet_test swan only case. I tried make clean, and compile again the build_coawst.sh, and I still get error. Any suggestion from you?

'''

get_numswan_grids.f90(10): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [M_COUPLING] USE M_COUPLING ----------^ cd ./Build_roms; /opt/software/intel/oneapi/mpi/2021.5.1/bin/mpif90 -c -fp-model precise -fc=ifort -heap-arrays -assume byterecl -I/home/run_4/couple1/COAWST/SWAN/build/mod esmf_roms.f90 get_numswan_grids.f90(52): error #6404: This name does not have a type, and must have an explicit type. [NUM_SGRIDS] read(aline(8:12),'(i5)') NUM_SGRIDS -----------------------------------^ cd ./Build_roms; /opt/software/intel/oneapi/mpi/2021.5.1/bin/mpif90 -c -fp-model precise -fc=ifort -heap-arrays -assume byterecl -I/home/run_4/couple1/COAWST/SWAN/build/mod read_coawst_par.f90 cd ./Build_roms; /opt/software/intel/oneapi/mpi/2021.5.1/bin/mpif90 -c -fp-model precise -fc=ifort -heap-arrays -assume byterecl -I/home/run_4/couple1/COAWST/SWAN/build/mod read_model_inputs.f90 cd ./Build_roms; /opt/software/intel/oneapi/mpi/2021.5.1/bin/mpif90 -c -fp-model precise -fc=ifort -heap-arrays -assume byterecl -I/home/run_4/couple1/COAWST/SWAN/build/mod get_numww3_grids.f90 compilation aborted for get_numswan_grids.f90 (code 1) make: [Master/Module.mk:33: Build_roms/get_numswan_grids.o] Error 1 make: Waiting for unfinished jobs....

'''

I attach the log file, proj.h and build_coawst.sh I used.

build_coawst.log.log build_coawst.sh.txt inlet_test.h.txt

jcwarner-usgs commented 2 days ago

the problem is further up, where cmake is trying to build swan. the problems that you see at the bottom are because swan did not get built.

you have : .....

-- The Fortran compiler identification is IntelLLVM 2022.0.0 -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Check for working Fortran compiler: /opt/software/intel/oneapi/compiler/2022.0.2/linux/bin/ifx - skipped -- Found Perl: /usr/bin/perl (found version "5.26.3") -- Found NetCDF: /home/run_4/libraries/include (found version "4.7.4") found components: Fortran -- FindNetCDF defines targets: -- - NetCDF_VERSION [4.7.4] -- - NetCDF_PARALLEL [FALSE] -- - NetCDF_C_CONFIG_EXECUTABLE [/home/run_4/libraries/bin/nc-config] -- - NetCDF::NetCDF_C [SHARED] [Root: /home/run_4/libraries] Lib: /home/run_4/libraries/lib/libnetcdf.so -- - NetCDF_Fortran_CONFIG_EXECUTABLE [/home/run_4/libraries/bin/nf-config] -- - NetCDF::NetCDF_Fortran [SHARED] [Root: /home/run_4/libraries] Lib: /home/run_4/libraries/lib/libnetcdff.so -- Configuring done (0.5s) -- Generating done (0.0s) -- Build files have been written to: /home/run_4/couple1/COAWST/SWAN/build make[1]: Entering directory '/home/run_4/couple1/COAWST/SWAN/build' /home/run_4/libraries/bin/cmake -S/home/run_4/couple1/COAWST/SWAN -B/home/run_4/couple1/COAWST/SWAN/build --check-build-system CMakeFiles/Makefile.cmake 0 /home/run_4/libraries/bin/cmake -E cmake_progress_start /home/run_4/couple1/COAWST/SWAN/build/CMakeFiles /home/run_4/couple1/COAWST/SWAN/build//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/home/run_4/couple1/COAWST/SWAN/build' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory '/home/run_4/couple1/COAWST/SWAN/build' /home/run_4/libraries/bin/cmake -E cmake_progress_start /home/run_4/couple1/COAWST/SWAN/build/CMakeFiles 0 make[1]: Leaving directory '/home/run_4/couple1/COAWST/SWAN/build'

-------- Finished compiling SWAN ------------ echo

i just checked out a new version and built inlet_test swanonly, and here is what i get in that same part:

-- The Fortran compiler identification is GNU 11.4.0 -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Check for working Fortran compiler: /usr/bin/f95 - skipped -- Found Perl: /usr/bin/perl.exe (found version "5.36.3") -- Found NetCDF: /usr/include (found version "4.9.2") found components: Fortran -- FindNetCDF defines targets: -- - NetCDF_VERSION [4.9.2] -- - NetCDF_PARALLEL [FALSE] -- - NetCDF_C_CONFIG_EXECUTABLE [/usr/bin/nc-config] -- - NetCDF::NetCDF_C [STATIC] [Root: /usr] Lib: /usr/lib/libnetcdf.dll.a -- - NetCDF_Fortran_CONFIG_EXECUTABLE [/usr/bin/nf-config] -- - NetCDF::NetCDF_Fortran [STATIC] [Root: /usr] Lib: /usr/lib/libnetcdff.dll.a -- Found MPI_Fortran: /usr/lib/libmpi_usempif08.dll.a (found version "3.1") -- Found MPI: TRUE (found version "3.1") found components: Fortran -- Configuring done (28.5s) -- Generating done (0.1s) -- Build files have been written to: /cygdrive/c/work/help_cases/swantest/SWAN/build make[1]: Entering directory '/cygdrive/c/work/help_cases/swantest/SWAN/build' /usr/bin/cmake.exe -S/cygdrive/c/work/help_cases/swantest/SWAN -B/cygdrive/c/work/help_cases/swantest/SWAN/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake.exe -E cmake_progress_start /cygdrive/c/work/help_cases/swantest/SWAN/build/CMakeFiles /cygdrive/c/work/help_cases/swantest/SWAN/build//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[2]: Entering directory '/cygdrive/c/work/help_cases/swantest/SWAN/build' make -f lib/CMakeFiles/swan41.45.dir/build.make lib/CMakeFiles/swan41.45.dir/depend make[3]: Entering directory '/cygdrive/c/work/help_cases/swantest/SWAN/build' cd /cygdrive/c/work/help_cases/swantest/SWAN/build && /usr/bin/cmake.exe -E cmake_depends "Unix Makefiles" /cygdrive/c/work/help_cases/swantest/SWAN /cygdrive/c/work/help_cases/swantest/SWAN/src_coawst /cygdrive/c/work/help_cases/swantest/SWAN/build /cygdrive/c/work/help_cases/swantest/SWAN/build/lib /cygdrive/c/work/help_cases/swantest/SWAN/build/lib/CMakeFiles/swan41.45.dir/DependInfo.cmake "--color=" make[3]: Leaving directory '/cygdrive/c/work/help_cases/swantest/SWAN/build' make -f lib/CMakeFiles/swan41.45.dir/build.make lib/CMakeFiles/swan41.45.dir/build make[3]: Entering directory '/cygdrive/c/work/help_cases/swantest/SWAN/build'

[ 1%] Building Fortran object lib/CMakeFiles/swan41.45.dir/swmod1.f.o cd /cygdrive/c/work/help_cases/swantest/SWAN/build/lib && /usr/bin/f95 -I/usr/include -O -w -fno-second-underscore -ffree-line-length-none -fallow-argument-mismatch -I/cygdrive/c/work/help_cases/swantest/Build_roms -I/cygdrive/c/work/models/M ....... [2%] .......

For some reason your build does not compile swan. do you have a dir called SWAN/src SWAN/src_coawst

maybe try to get swan directly from their site and see if that works for you:

make a new dir called SWAN (outside of the COAWST dir)

cd SWAN git clone https://gitlab.tudelft.nl/citg/wavemodels/swan.git . following the build instructions on that site. The steps are: cd swan mkdir build && cd build cmake .. -G "Unix Makefiles" -DUNIX=ON -DMPI=ON -DNETCDF=ON -DCMAKE_VERBOSE_MAKEFILE=ON make see if that works