Skip to content

Commit

Permalink
Merge hotfix/1.3.1 into main
Browse files Browse the repository at this point in the history
Hotfix: add additional changes required for equivalence with contrib/ectrans in ifs-source
  • Loading branch information
wdeconinck committed Apr 9, 2024
2 parents 470b2ce + cbe73c2 commit 6bfd4ef
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 20 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.0
1.3.1
15 changes: 8 additions & 7 deletions cmake/ectrans_compile_options.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,16 @@

if( CMAKE_Fortran_COMPILER_ID MATCHES "XL" )
ecbuild_add_fortran_flags("-qextname -qnobindcextname")
elseif( CMAKE_Fortran_COMPILER_ID MATCHES "GNU" )
# gfortran 10 has become stricter with argument matching
if( NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10 )
ecbuild_add_fortran_flags("-fallow-argument-mismatch")
endif()
elseif( CMAKE_Fortran_COMPILER_ID MATCHES "Intel" )
ecbuild_add_fortran_flags("-march=core-avx2 -no-fma" BUILD BIT)
ecbuild_add_fortran_flags("-fast-transcendentals -fp-model precise -fp-speculation=safe")
endif()

# gfortran 10 has become stricter with argument matching
if( CMAKE_Fortran_COMPILER_ID MATCHES "GNU"
AND NOT CMAKE_Fortran_COMPILER_VERSION VERSION_LESS 10 )
ecbuild_add_fortran_flags("-fallow-argument-mismatch")
endif()


macro( ectrans_add_compile_options )
set( options )
set( single_value_args FLAGS )
Expand Down
16 changes: 12 additions & 4 deletions src/programs/ectrans-benchmark.F90
Original file line number Diff line number Diff line change
Expand Up @@ -543,15 +543,19 @@ program transform_test
if (verbosity >= 1) then
do ifld = 1, nflevg
write(nout,'("norm zspvor( ",i4,",:) = ",f20.15)') ifld, znormvor1(ifld)
write(nout,'("0x",Z16.16)') znormvor1(ifld)
enddo
do ifld = 1, nflevg
write(nout,'("norm zspdiv( ",i4,",:) = ",f20.15)') ifld, znormdiv1(ifld)
write(nout,'("0x",Z16.16)') znormdiv1(ifld)
enddo
do ifld = 1, nflevg
write(nout,'("norm zspsc3a(",i4,",:,1) = ",f20.15)') ifld, znormt1(ifld)
write(nout,'("0x",Z16.16)') znormt1(ifld)
enddo
do ifld = 1, 1
write(nout,'("norm zspsc2( ",i4,",:) = ",f20.15)') ifld, znormsp1(ifld)
write(nout,'("0x",Z16.16)') znormsp1(ifld)
enddo
endif
endif
Expand Down Expand Up @@ -761,28 +765,32 @@ program transform_test
zerr(3) = abs(real(znormvor1(ifld),kind=jprd)/real(znormvor(ifld),kind=jprd) - 1.0_jprd)
zmaxerr(3) = max(zmaxerr(3), zerr(3))
if (verbosity >= 1) then
write(nout,'("norm zspvor( ",i4,") = ",f20.15," error = ",e10.3)') ifld, znormvor1(ifld), zerr(3)
write(nout,'("norm zspvor( ",i4,") = ",f20.15," error = ",e10.3)') ifld, znormvor(ifld), zerr(3)
write(nout,'("0x",Z16.16)') znormvor(ifld)
endif
enddo
do ifld = 1, nflevg
zerr(2) = abs(real(znormdiv1(ifld),kind=jprd)/real(znormdiv(ifld),kind=jprd) - 1.0d0)
zmaxerr(2) = max(zmaxerr(2),zerr(2))
if (verbosity >= 1) then
write(nout,'("norm zspdiv( ",i4,",:) = ",f20.15," error = ",e10.3)') ifld, znormdiv1(ifld), zerr(2)
write(nout,'("norm zspdiv( ",i4,",:) = ",f20.15," error = ",e10.3)') ifld, znormdiv(ifld), zerr(2)
write(nout,'("0x",Z16.16)') znormdiv(ifld)
endif
enddo
do ifld = 1, nflevg
zerr(4) = abs(real(znormt1(ifld),kind=jprd)/real(znormt(ifld),kind=jprd) - 1.0d0)
zmaxerr(4) = max(zmaxerr(4), zerr(4))
if (verbosity >= 1) then
write(nout,'("norm zspsc3a(",i4,",:,1) = ",f20.15," error = ",e10.3)') ifld, znormt1(ifld), zerr(4)
write(nout,'("norm zspsc3a(",i4,",:,1) = ",f20.15," error = ",e10.3)') ifld, znormt(ifld), zerr(4)
write(nout,'("0x",Z16.16)') znormt(ifld)
endif
enddo
do ifld = 1, 1
zerr(1) = abs(real(znormsp1(ifld),kind=jprd)/real(znormsp(ifld),kind=jprd) - 1.0d0)
zmaxerr(1) = max(zmaxerr(1), zerr(1))
if (verbosity >= 1) then
write(nout,'("norm zspsc2( ",i4,",:) = ",f20.15," error = ",e10.3)') ifld, znormsp1(ifld), zerr(1)
write(nout,'("norm zspsc2( ",i4,",:) = ",f20.15," error = ",e10.3)') ifld, znormsp(ifld), zerr(1)
write(nout,'("0x",Z16.16)') znormsp(ifld)
endif
enddo

Expand Down
26 changes: 18 additions & 8 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,42 +61,42 @@ foreach( prec dp sp )
set( t 47 )
set( grid O48 )
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld0
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 0 -v --meminfo --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 0 --meminfo --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --meminfo --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --meminfo --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10_nlev20
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10_nlev20_scders
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --scders --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --scders --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10_nlev20_vordiv
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --vordiv --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --vordiv --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10_nlev20_vordiv_uvders
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --vordiv --uvders --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --vordiv --uvders --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10_nlev20_flt
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --flt --check 1000
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --flt --check 1000 --norms -v
MPI ${mpi}
OMP ${omp}
)
ecbuild_add_test( TARGET ectrans_test_benchmark_${prec}_T${t}_${grid}_mpi${mpi}_omp${omp}_nfld10_nlev20_nproma16
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --nproma 16 --check 100
COMMAND ectrans-benchmark-${prec} ARGS --truncation ${t} --grid ${grid} --niter 2 --nfld 10 --nlev 20 --nproma 16 --check 100 --norms -v
MPI ${mpi}
OMP ${omp}
)
Expand Down Expand Up @@ -129,53 +129,63 @@ if( HAVE_TRANSI )
ecbuild_add_test( TARGET ectrans_test_transi_program
SOURCES transi/transi_test_program.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_timings
SOURCES transi/transi_test_timings.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_lonlat
SOURCES transi/transi_test_lonlat.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_io
SOURCES transi/transi_test_io.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_memory
SOURCES transi/transi_test_memory.c
LIBS ectrans_test
CONDITION EC_HAVE_MALLOC_H
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_memory_lonlat
SOURCES transi/transi_test_memory_lonlat.c
LIBS ectrans_test
CONDITION EC_HAVE_MALLOC_H
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_vordiv_to_UV
SOURCES transi/transi_test_vordiv_to_UV.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_dirtrans_adjoint
SOURCES transi/transi_test_dirtrans_adjoint.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_invtrans_adjoint
SOURCES transi/transi_test_invtrans_adjoint.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

ecbuild_add_test( TARGET ectrans_test_transi_lonlat_diff_incr
SOURCES transi/transi_test_lonlat_diff_incr.c
LIBS ectrans_test
LINKER_LANGUAGE C
ENVIRONMENT TRANS_USE_MPI=0 )

if( HAVE_TESTS )
Expand Down

0 comments on commit 6bfd4ef

Please sign in to comment.