Issue with the initial timestep in ww3_multi #1026
Replies: 2 comments 1 reply
-
Here are some final results that form an answer
add:
For the first error in this discussion, it makes no sense to try to initialise the date-time
|
Beta Was this translation helpful? Give feedback.
-
Closing because the second bug is now addressed in issue #1132 |
Beta Was this translation helpful? Give feedback.
-
I am trying a simple setup with ww3_multi. This is just for testing it it works with our compilers - we are going to select a proper compiler (Gnu gfortran-13 or Intel ifx-2023) for our new cluster, but at now testing on our old (year 2019) cluster. We don't use ww3_multi for our forecast production, but we may do so in the future. I have managed to make it work with the main branch (version 6.06) where I had to select compile options with gfortran-13 ( -finit-local-zero -finit-derived ) to force initialization of arrays to zero.
With the develop branch I run into a new issue. After putting some extra MPI_BARRIER calls into wmwavemd.F90 I got a backtrace output to stderr tracing back to this line in w3wavemd.F90
WW3/model/src/w3wavemd.F90
Line 2413 in 3eb8161
This seems to be logically wrong, as the variable TONEXT(:,7) is defined (or initialised) only for coupled setup (with ocean, atmosphere model), which I am not testing. If I am wrong in this assumption, I will look further into my setup.
UPDATE: I will elaborate the question a little further.
First, I find from looking through recent Issues, that the identification by @ukmo-ccbunney of uninitialized local variables has helped me identify this issue. I think it is a bug, but I don't understand that it hasn't been caught in the regression tests.
It is a bug because there remains no issue with my setup after changing the condition
to:
FLOUTG
andFLOUTG2
are local logicals defined exactly so shortly before in the same code block.My compile and link commands are as follows with openmpi-4.1.5/gfortran-13.1.0-debug:
Compile:
mpif90 -c -J/home/cha/Projects/WAVEWATCH_v7_devel/BUILD/mod -g -fno-second-underscore -ffree-line-length-none -O0 -Wall -Wno-unused -fcheck=all -ffpe-trap=invalid,zero,overflow -frecursive -fbacktrace -fallow-argument-mismatch -finit-local-zero -finit-derived -I/opt/mpi/openmpi-4.1.5/gfortran-13.1.0-debug/include -I/home/cha/Projects/WAVEWATCH_v7_devel/BUILD/src wmwavemd.F90
(for each source file)Link:
mpif90 -o ww3_multi -g -O0 -Wall -fcheck=all -ffpe-trap=invalid,zero,overflow -frecursive -fbacktrace -finit-local-zero -finit-derived $objects -Wl,-R/opt/gcc-13.1.0/lib64 -Wl,-R/opt/isl-0.24/lib -Wl,-R/opt/mpc-1.3.1/lib -Wl,-R/opt/mpi/openmpi-4.1.5/gfortran-13.1.0-debug/lib -L/opt/mpi/openmpi-4.1.5/gfortran-13.1.0-debug/lib -lmpi -Wl,-rpath,/opt/mpi/openmpi-4.1.5/gfortran-13.1.0-debug/lib
(where $objects are all the compiled object files)I test a simplified setup with two grids corresponding to our grids for the North Sea-Baltic region, but omitting two-way boundary transfer, and running in spin-up mode for two hours. See the attached ww3_multi.nml file.
Here are the backtrace lines written to standard error:
ww3_multi.nml.txt
ww3_grid_NSB9.nml.txt
ww3_grid_BAL3.nml.txt
Beta Was this translation helpful? Give feedback.
All reactions