From dd9814251bccc8848f8213675ef58240d4753ec5 Mon Sep 17 00:00:00 2001 From: Zbigniew Piotrowski Date: Sat, 3 Feb 2024 13:16:01 +0100 Subject: [PATCH] Re-enabling compilation of tests --- .github/workflows/build.yml | 4 +- CMakeLists.txt | 2 +- src/programs/CMakeLists.txt | 4 ++ src/trans/CMakeLists.txt | 6 ++- src/trans/external/dir_transad.F90 | 17 +++--- src/trans/external/dist_spec.F90 | 13 +++-- src/trans/external/gath_spec.F90 | 14 +++-- src/trans/external/inv_transad.F90 | 14 +++-- src/trans/include/ectrans/dir_transad.h | 3 ++ src/trans/include/ectrans/dist_spec.h | 3 ++ src/trans/include/ectrans/gath_spec.h | 3 ++ src/trans/include/ectrans/inv_transad.h | 3 ++ src/trans/include/ectrans/sedrenames.txt | 5 ++ src/trans/module/ectrans_mod.F90 | 4 ++ tests/CMakeLists.txt | 3 +- tests/trans/test_adjoint.F90 | 68 ++++++++++++++++-------- 16 files changed, 121 insertions(+), 45 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6d5f3c4ea..3590c2d80 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -109,7 +109,6 @@ jobs: if [[ "${{ matrix.os }}" =~ macos ]]; then brew install ninja brew install gnu-sed - alias sed=gsed else sudo apt-get update sudo apt-get install ninja-build @@ -158,7 +157,8 @@ jobs: - name: Set Build & Test Environment run: | - + alias sed=gsed + export GITHUB_PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$GITHUB_PATH" # Add mpirun to path for testing [ -z ${MPI_HOME+x} ] || echo "${MPI_HOME}/bin" >> $GITHUB_PATH diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e8b4e48f..649d79236 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,7 +65,7 @@ ectrans_find_lapack() ### Add sources and tests include( ectrans_compile_options ) add_subdirectory( src ) -#add_subdirectory( tests ) +add_subdirectory( tests ) ### Export if( BUILD_SHARED_LIBS ) diff --git a/src/programs/CMakeLists.txt b/src/programs/CMakeLists.txt index c7dea922a..31a531620 100644 --- a/src/programs/CMakeLists.txt +++ b/src/programs/CMakeLists.txt @@ -38,6 +38,10 @@ ecbuild_add_library( wrappers/setup_trans0.F90 wrappers/setup_trans.F90 wrappers/trans_inq.F90 + wrappers/dir_transad.F90 + wrappers/inv_transad.F90 + wrappers/gath_spec.F90 + wrappers/dist_spec.F90 PUBLIC_INCLUDES $ $ $ diff --git a/src/trans/CMakeLists.txt b/src/trans/CMakeLists.txt index 8ee741bf4..4e3c1c82c 100644 --- a/src/trans/CMakeLists.txt +++ b/src/trans/CMakeLists.txt @@ -39,6 +39,7 @@ ecbuild_list_add_pattern( LIST trans_src algor/* internal/source/* external/spec_norm.F90 + external/dist_grid.F90 QUIET ) ecbuild_list_add_pattern( LIST trans_src_common @@ -49,12 +50,15 @@ ecbuild_list_add_pattern( LIST trans_src_common ) ecbuild_list_add_pattern( LIST trans_src_ext GLOB - # external/spec_norm.F90 external/dir__trans.F90 external/inv__trans.F90 + external/dir_transad.F90 + external/inv_transad.F90 external/trans__inq.F90 external/setup__trans.F90 external/setup__trans0.F90 + external/dist_spec.F90 + external/gath_spec.F90 module/* QUIET ) diff --git a/src/trans/external/dir_transad.F90 b/src/trans/external/dir_transad.F90 index 72842d795..5774cca88 100644 --- a/src/trans/external/dir_transad.F90 +++ b/src/trans/external/dir_transad.F90 @@ -8,11 +8,13 @@ ! nor does it submit to any jurisdiction. ! - +#ifndef INMODULE SUBROUTINE DIR_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& & KPROMA,KVSETUV,KVSETSC,KRESOL,KVSETSC3A,KVSETSC3B,KVSETSC2,& & PGP,PGPUV,PGP3A,PGP3B,PGP2) - +#else +MODULE PROCEDURE DIR_TRANSAD +#endif !**** *DIR_TRANSAD* - Direct spectral transform - adjoint. @@ -126,7 +128,7 @@ SUBROUTINE DIR_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& IMPLICIT NONE ! Declaration of arguments - +#ifndef INMODULE REAL(KIND=JPRB) ,OPTIONAL, INTENT(INOUT) :: PSPVOR(:,:) REAL(KIND=JPRB) ,OPTIONAL, INTENT(INOUT) :: PSPDIV(:,:) REAL(KIND=JPRB) ,OPTIONAL, INTENT(INOUT) :: PSPSCALAR(:,:) @@ -146,7 +148,7 @@ SUBROUTINE DIR_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& REAL(KIND=JPRB),OPTIONAL ,INTENT(OUT) :: PGP3A(:,:,:,:) REAL(KIND=JPRB),OPTIONAL ,INTENT(OUT) :: PGP3B(:,:,:,:) REAL(KIND=JPRB),OPTIONAL ,INTENT(OUT) :: PGP2(:,:,:) - +#endif !ifndef INTERFACE ! Local variables @@ -502,6 +504,9 @@ SUBROUTINE DIR_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& ! ------------------------------------------------------------------ !endif INTERFACE -END SUBROUTINE DIR_TRANSAD - +#ifndef INMODULE +END SUBROUTINE DIR_TRANSAD +#else +END PROCEDURE DIR_TRANSAD +#endif diff --git a/src/trans/external/dist_spec.F90 b/src/trans/external/dist_spec.F90 index 8f4ce0489..ae4ab4e5f 100644 --- a/src/trans/external/dist_spec.F90 +++ b/src/trans/external/dist_spec.F90 @@ -9,8 +9,12 @@ ! +#ifndef INMODULE SUBROUTINE DIST_SPEC(PSPECG,KFDISTG,KFROM,KVSET,KRESOL,PSPEC,& & LDIM1_IS_FLD,KSMAX,KSORT) +#else +MODULE PROCEDURE DIST_SPEC +#endif !**** *DIST_SPEC* - Distribute global spectral array among processors @@ -69,7 +73,7 @@ SUBROUTINE DIST_SPEC(PSPECG,KFDISTG,KFROM,KVSET,KRESOL,PSPEC,& IMPLICIT NONE ! Declaration of arguments - +#ifndef INMODULE REAL(KIND=JPRB) ,OPTIONAL, INTENT(IN) :: PSPECG(:,:) INTEGER(KIND=JPIM) , INTENT(IN) :: KFDISTG INTEGER(KIND=JPIM) , INTENT(IN) :: KFROM(:) @@ -79,7 +83,7 @@ SUBROUTINE DIST_SPEC(PSPECG,KFDISTG,KFROM,KVSET,KRESOL,PSPEC,& LOGICAL ,OPTIONAL, INTENT(IN) :: LDIM1_IS_FLD INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(IN) :: KSMAX INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(IN) :: KSORT (:) - +#endif !ifndef INTERFACE INTEGER(KIND=JPIM) :: IVSET(KFDISTG) @@ -211,5 +215,8 @@ SUBROUTINE DIST_SPEC(PSPECG,KFDISTG,KFROM,KVSET,KRESOL,PSPEC,& ! ------------------------------------------------------------------ +#ifndef INMODULE END SUBROUTINE DIST_SPEC - +#else +END PROCEDURE DIST_SPEC +#endif diff --git a/src/trans/external/gath_spec.F90 b/src/trans/external/gath_spec.F90 index 56f5c8cc5..6a4dbb281 100644 --- a/src/trans/external/gath_spec.F90 +++ b/src/trans/external/gath_spec.F90 @@ -8,8 +8,11 @@ ! nor does it submit to any jurisdiction. ! - +#ifndef INMODULE SUBROUTINE GATH_SPEC(PSPECG,KFGATHG,KTO,KVSET,KRESOL,PSPEC,LDIM1_IS_FLD,KSMAX,LDZA0IP) +#else +MODULE PROCEDURE GATH_SPEC +#endif !**** *GATH_SPEC* - Gather global spectral array from processors @@ -68,7 +71,7 @@ SUBROUTINE GATH_SPEC(PSPECG,KFGATHG,KTO,KVSET,KRESOL,PSPEC,LDIM1_IS_FLD,KSMAX,LD IMPLICIT NONE ! Declaration of arguments - +#ifndef INMODULE REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PSPECG(:,:) INTEGER(KIND=JPIM) , INTENT(IN) :: KFGATHG INTEGER(KIND=JPIM) , INTENT(IN) :: KTO(:) @@ -78,7 +81,7 @@ SUBROUTINE GATH_SPEC(PSPECG,KFGATHG,KTO,KVSET,KRESOL,PSPEC,LDIM1_IS_FLD,KSMAX,LD LOGICAL ,OPTIONAL, INTENT(IN) :: LDIM1_IS_FLD INTEGER(KIND=JPIM) ,OPTIONAL, INTENT(IN) :: KSMAX LOGICAL ,OPTIONAL, INTENT(IN) :: LDZA0IP - +#endif !ifndef INTERFACE INTEGER(KIND=JPIM) :: IVSET(KFGATHG) @@ -191,5 +194,8 @@ SUBROUTINE GATH_SPEC(PSPECG,KFGATHG,KTO,KVSET,KRESOL,PSPEC,LDIM1_IS_FLD,KSMAX,LD ! ------------------------------------------------------------------ +#ifndef INMODULE END SUBROUTINE GATH_SPEC - +#else +END PROCEDURE GATH_SPEC +#endif diff --git a/src/trans/external/inv_transad.F90 b/src/trans/external/inv_transad.F90 index e8523b06b..50599c372 100644 --- a/src/trans/external/inv_transad.F90 +++ b/src/trans/external/inv_transad.F90 @@ -8,12 +8,15 @@ ! nor does it submit to any jurisdiction. ! - +#ifndef INMODULE SUBROUTINE INV_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& & FSPGL_PROC,& & LDSCDERS,LDVORGP,LDDIVGP,LDUVDER,KPROMA,KVSETUV,KVSETSC,KRESOL,& & KVSETSC3A,KVSETSC3B,KVSETSC2,& & PGP,PGPUV,PGP3A,PGP3B,PGP2) +#else +MODULE PROCEDURE INV_TRANSAD +#endif !**** *INV_TRANSAD* - Inverse spectral transform - adjoint. @@ -142,7 +145,7 @@ SUBROUTINE INV_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& IMPLICIT NONE ! Declaration of arguments - +#ifndef INMODULE REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PSPVOR(:,:) REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PSPDIV(:,:) REAL(KIND=JPRB) ,OPTIONAL, INTENT(OUT) :: PSPSCALAR(:,:) @@ -167,7 +170,7 @@ SUBROUTINE INV_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& REAL(KIND=JPRB),OPTIONAL ,INTENT(IN) :: PGP3A(:,:,:,:) REAL(KIND=JPRB),OPTIONAL ,INTENT(IN) :: PGP3B(:,:,:,:) REAL(KIND=JPRB),OPTIONAL ,INTENT(IN) :: PGP2(:,:,:) - +#endif !ifndef INTERFACE ! Local varaibles @@ -611,6 +614,9 @@ SUBROUTINE INV_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& ! ------------------------------------------------------------------ !endif INTERFACE - +#ifndef INMODULE END SUBROUTINE INV_TRANSAD +#else +END PROCEDURE INV_TRANSAD +#endif diff --git a/src/trans/include/ectrans/dir_transad.h b/src/trans/include/ectrans/dir_transad.h index ae5dd65ea..ff1577567 100644 --- a/src/trans/include/ectrans/dir_transad.h +++ b/src/trans/include/ectrans/dir_transad.h @@ -9,6 +9,9 @@ ! INTERFACE +#ifdef INMODULE +MODULE & +#endif SUBROUTINE DIR_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& & KPROMA,KVSETUV,KVSETSC,KRESOL,KVSETSC3A,KVSETSC3B,KVSETSC2,& & PGP,PGPUV,PGP3A,PGP3B,PGP2) diff --git a/src/trans/include/ectrans/dist_spec.h b/src/trans/include/ectrans/dist_spec.h index eb03fbb1d..03bd99c36 100644 --- a/src/trans/include/ectrans/dist_spec.h +++ b/src/trans/include/ectrans/dist_spec.h @@ -9,6 +9,9 @@ ! INTERFACE +#ifdef INMODULE +MODULE & +#endif SUBROUTINE DIST_SPEC(PSPECG,KFDISTG,KFROM,KVSET,KRESOL,PSPEC,& & LDIM1_IS_FLD,KSMAX,KSORT) diff --git a/src/trans/include/ectrans/gath_spec.h b/src/trans/include/ectrans/gath_spec.h index 7e18e8b5c..506849321 100644 --- a/src/trans/include/ectrans/gath_spec.h +++ b/src/trans/include/ectrans/gath_spec.h @@ -9,6 +9,9 @@ ! INTERFACE +#ifdef INMODULE +MODULE & +#endif SUBROUTINE GATH_SPEC(PSPECG,KFGATHG,KTO,KVSET,KRESOL,PSPEC,LDIM1_IS_FLD,KSMAX,LDZA0IP) !**** *GATH_SPEC* - Gather global spectral array from processors diff --git a/src/trans/include/ectrans/inv_transad.h b/src/trans/include/ectrans/inv_transad.h index c114e90e4..7febf2271 100644 --- a/src/trans/include/ectrans/inv_transad.h +++ b/src/trans/include/ectrans/inv_transad.h @@ -9,6 +9,9 @@ ! INTERFACE +#ifdef INMODULE +MODULE & +#endif SUBROUTINE INV_TRANSAD(PSPVOR,PSPDIV,PSPSCALAR,PSPSC3A,PSPSC3B,PSPSC2,& & FSPGL_PROC,& & LDSCDERS,LDVORGP,LDDIVGP,LDUVDER,KPROMA,KVSETUV,KVSETSC,KRESOL,& diff --git a/src/trans/include/ectrans/sedrenames.txt b/src/trans/include/ectrans/sedrenames.txt index b05a6d3e5..c7ae605ce 100644 --- a/src/trans/include/ectrans/sedrenames.txt +++ b/src/trans/include/ectrans/sedrenames.txt @@ -10,6 +10,7 @@ s/DIR_TRANS_CTLAD_MOD/DIR_TRANS_CTLAD_MOD_VARIANTDESIGNATOR/g s/DIR_TRANS_CTL_MOD/DIR_TRANS_CTL_MOD_VARIANTDESIGNATOR/g s/DIST_GRID_32_CTL_MOD/DIST_GRID_32_CTL_MOD_VARIANTDESIGNATOR/g s/DIST_GRID_CTL_MOD/DIST_GRID_CTL_MOD_VARIANTDESIGNATOR/g +s/DIST_GRID/DIST_GRID_VARIANTDESIGNATOR/g s/DIST_SPEC_CONTROL_MOD/DIST_SPEC_CONTROL_MOD_VARIANTDESIGNATOR/g s/eq_regions_mod/eq_regions_mod_VARIANTDESIGNATOR/g s/EQ_REGIONS_MOD/EQ_REGIONS_MOD_VARIANTDESIGNATOR/g @@ -135,6 +136,10 @@ s/BLUESTEIN_FFT/BLUESTEIN_FFT_VARIANTDESIGNATOR/g #s/DIR_TRANS/DIR_TRANS_VARIANTDESIGNATOR/g #s/inv_trans/inv_trans_VARIANTDESIGNATOR/g #s/INV_TRANS/INV_TRANS_VARIANTDESIGNATOR/g +#s/dir_transad/dir_transad_VARIANTDESIGNATOR/g +#s/DIR_TRANSAD/DIR_TRANSAD_VARIANTDESIGNATOR/g +#s/inv_transad/inv_transad_VARIANTDESIGNATOR/g +#s/INV_TRANSAD/INV_TRANSAD_VARIANTDESIGNATOR/g #s/trans_inq/trans_inq_VARIANTDESIGNATOR/g #s/TRANS_INQ/TRANS_INQ_VARIANTDESIGNATOR/g #s/setup_trans0/setup_trans0_VARIANTDESIGNATOR/g diff --git a/src/trans/module/ectrans_mod.F90 b/src/trans/module/ectrans_mod.F90 index 906ea99b7..d729292a0 100644 --- a/src/trans/module/ectrans_mod.F90 +++ b/src/trans/module/ectrans_mod.F90 @@ -5,7 +5,11 @@ module ectrans_mod #include "setup__trans.h" #include "inv__trans.h" #include "dir__trans.h" +#include "inv_transad.h" +#include "dir_transad.h" #include "trans__inq.h" +#include "gath_spec.h" +#include "dist_spec.h" !#include "spec_norm.h" contains end module ectrans_mod diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8dbb16f6f..aa4c62854 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -39,7 +39,8 @@ endif() ecbuild_add_test(TARGET ectrans_test_adjoint SOURCES trans/test_adjoint.F90 - LIBS ${trans} + INCLUDES $ + LIBS ${trans} ectrans_interfaces LINKER_LANGUAGE Fortran ) if( TEST ectrans_test_adjoint AND HAVE_OMP ) diff --git a/tests/trans/test_adjoint.F90 b/tests/trans/test_adjoint.F90 index 0ef987acd..69db37c40 100644 --- a/tests/trans/test_adjoint.F90 +++ b/tests/trans/test_adjoint.F90 @@ -8,9 +8,9 @@ ! PROGRAM TEST_ADJOINT -USE PARKIND1 ,ONLY : JPIM ,JPRB +USE PARKIND1 ,ONLY : JPIM ,JPRB, JPRM, JPRD USE MPL_MODULE ,ONLY : MPL_INIT, MPL_END, MPL_BARRIER, MPL_MYRANK -USE ABORT_TRANS_MOD ! This is not really correct usage +!USE ABORT_TRANS_MOD ! This is not really correct usage ! IMPLICIT NONE @@ -33,6 +33,7 @@ PROGRAM TEST_ADJOINT REAL(KIND=JPRB) , ALLOCATABLE :: ZSPECYG(:,:),ZSPECXG(:,:) REAL(KIND=JPRB) , ALLOCATABLE :: ZNORM(:),GW(:),ZRANDSP(:),ZRANDGP(:,:),ZPERT(:,:,:) REAL(KIND=JPRB) :: ZSC +REAL(KIND=JPRB) :: backend_flag=1. !REAL(KIND=JPRB) :: ZWALL,ZWALL0 REAL(KIND=JPRB),EXTERNAL :: TIMEF LOGICAL :: LSTATS,LSTATSCPU,LSYNCSTATS,LDETAILED_STATS,& @@ -42,20 +43,34 @@ PROGRAM TEST_ADJOINT INTEGER(KIND=JPIM) ::NTRACE_STATS, NPRNT_STATS, NSTATS_MEM REAL(KIND=JPRB) :: ZAVEAVE(0:200) -#include "setup_trans0.h" -#include "setup_trans.h" -#include "trans_inq.h" -#include "specnorm.h" -#include "dir_trans.h" -#include "inv_trans.h" -#include "dir_transad.h" -#include "inv_transad.h" -#include "dist_grid.h" -#include "gath_spec.h" +#include "specnorm.inc" +#include "setup_trans.inc" +#include "dir_trans.inc" +#include "inv_trans.inc" +#include "trans_inq.inc" +#include "setup_trans0.inc" +#include "dir_transad.inc" +#include "inv_transad.inc" +#include "dist_grid.inc" +#include "gath_spec.inc" #include "dist_spec.h" -#include "gath_grid.h" +!#include "setup_trans0.h" +!#include "setup_trans.h" +!#include "trans_inq.h" +!#include "specnorm.h" +!#include "dir_trans.h" +!#include "inv_trans.h" +!#include "dir_transad.h" +!#include "inv_transad.h" +!#include "dist_grid.h" +!#include "gath_spec.h" +!#include "dist_spec.h" +!#include "gath_grid.h" #include "gstats_setup.intfb.h" +!Select sp/dp backend +IF(JPRB == JPRM) BACKEND_FLAG=1 +IF(JPRB == JPRD) BACKEND_FLAG=2 ! ======== PARAMTERS WHICH MAY BE MODIFIED, ORIGINALLY COMING FROM NAMELSIT =========== NDGL = 32 NFLEVG = 9 @@ -83,7 +98,7 @@ PROGRAM TEST_ADJOINT NPROC = NPRGPNS*NPRGPEW IF(NPROC /= NPRTRW*NPRTRV) THEN PRINT *,'NPRGPNS,NPRGPEW,NPRTRW,NPRTRV ',NPRGPNS,NPRGPEW,NPRTRW,NPRTRV - CALL ABORT_TRANS('NPRGPNS*NPRGPEW /= NPRTRW*NPRTRV') +! CALL ABORT_TRANS('NPRGPNS*NPRGPEW /= NPRTRW*NPRTRV') ENDIF NSMAX = (2*NDGL-1)/3 NSPECG = (NSMAX+1)*(NSMAX+2)/2 @@ -117,15 +132,18 @@ PROGRAM TEST_ADJOINT ALLOCATE(ITO(NFLEVG)) NLOEN(:) = 2*NDGL CALL SETUP_TRANS0(KOUT=NOUT,KERR=0,KPRINTLEV=0,KMAX_RESOL=1,& - & KPRGPNS=NPRGPNS,KPRGPEW=NPRGPEW,KPRTRW=NPRTRW,LDMPOFF=LMPOFF) -CALL SETUP_TRANS(KSMAX=NSMAX,KDGL=NDGL,KLOEN=NLOEN,LDSPLIT=.TRUE.) -CALL TRANS_INQ(KSPEC2=NSPEC2,KGPTOT=NGPTOT,KGPTOTG=NGPTOTG,KNUMP=NUMP) + & KPRGPNS=NPRGPNS,KPRGPEW=NPRGPEW,KPRTRW=NPRTRW,LDMPOFF=LMPOFF,& + & PRECBACKEND_FLAG=BACKEND_FLAG) +CALL SETUP_TRANS(KSMAX=NSMAX,KDGL=NDGL,KLOEN=NLOEN,LDSPLIT=.TRUE.,& + & PRECBACKEND_FLAG=BACKEND_FLAG) +CALL TRANS_INQ(KSPEC2=NSPEC2,KGPTOT=NGPTOT,KGPTOTG=NGPTOTG,KNUMP=NUMP,& + & PRECBACKEND_FLAG=BACKEND_FLAG) ALLOCATE(MYMS(NUMP)) ALLOCATE(NASM0(0:NSMAX)) ALLOCATE(GW(NDGL)) ALLOCATE(ZRANDGP(NGPTOTG,1)) -CALL TRANS_INQ(KMYMS=MYMS,KASM0=NASM0,PGW=GW) +CALL TRANS_INQ(KMYMS=MYMS,KASM0=NASM0,PGW=GW,PRECBACKEND_FLAG=BACKEND_FLAG) NGPBLKS = (NGPTOT-1)/NPROMA+1 WRITE(NOUT,*) ' NSPEC2=',NSPEC2 @@ -196,10 +214,12 @@ PROGRAM TEST_ADJOINT ! Direct caclulations CALL INV_TRANS(PSPSCALAR=ZSPECX,PSPVOR=ZVORX,PSPDIV=ZDIVX,PGP=ZGX,& - & KPROMA=NPROMA,KVSETSC=IVSET(1:NFLEVG), KVSETUV=IVSET(1:NFLEVG)) + & KPROMA=NPROMA,KVSETSC=IVSET(1:NFLEVG), KVSETUV=IVSET(1:NFLEVG),& + & PRECBACKEND_FLAG=BACKEND_FLAG) CALL GPC(ZGX) CALL DIR_TRANS(PSPSCALAR=ZSPECP,PSPVOR=ZVORP,PSPDIV=ZDIVP,PGP=ZGX,& - &KPROMA=NPROMA,KVSETSC=IVSET(1:NFLEVG), KVSETUV=IVSET(1:NFLEVG)) + &KPROMA=NPROMA,KVSETSC=IVSET(1:NFLEVG), KVSETUV=IVSET(1:NFLEVG),& + & PRECBACKEND_FLAG=BACKEND_FLAG) CALL SCALPRODSP(ZSPECP,ZSPECY,ZSC) IF(JREP == NREP) WRITE(NOUT,*)' ',ZSC @@ -207,10 +227,12 @@ PROGRAM TEST_ADJOINT ZSPECP = 0.0_JPRB CALL DIR_TRANSAD(PSPSCALAR=ZSPECY,PSPVOR=ZVORY,PSPDIV=ZDIVY,PGP=ZGX,& - &KPROMA=NPROMA, KVSETSC=IVSET(1:NFLEVG), KVSETUV=IVSET(1:NFLEVG)) + &KPROMA=NPROMA, KVSETSC=IVSET(1:NFLEVG), KVSETUV=IVSET(1:NFLEVG), & + & PRECBACKEND_FLAG=BACKEND_FLAG) CALL GPCAD(ZGX) CALL INV_TRANSAD(PSPSCALAR=ZSPECP,PSPVOR=ZVORP,PSPDIV=ZDIVP,PGP=ZGX,& - & KPROMA=NPROMA,KVSETSC=IVSET(1:NFLEVG),KVSETUV=IVSET(1:NFLEVG)) + & KPROMA=NPROMA,KVSETSC=IVSET(1:NFLEVG),KVSETUV=IVSET(1:NFLEVG), & + & PRECBACKEND_FLAG=BACKEND_FLAG) CALL SCALPRODSP(ZSPECX,ZSPECP,ZSC) IF(JREP == NREP) WRITE(NOUT,*)' ',ZSC @@ -312,7 +334,7 @@ SUBROUTINE SCALPRODSP(PSP1,PSP2,PSC) !$OMP END PARALLEL DO CALL GATH_SPEC(PSPECG=ZSPG,KFGATHG=NFLEVG,KTO=ITO,PSPEC=ZSP,& - & KVSET=IVSET(1:NFLEVG)) + & KVSET=IVSET(1:NFLEVG),PRECBACKEND_FLAG=BACKEND_FLAG) IF(MYPROC == 1) THEN PSC = SUM(ZSPG)