From 540796786368de501691809fe31cb45294f79bbf Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Mar 2019 15:58:55 +0100 Subject: [PATCH] Philippe 15/03/2019: use MNHINT_MPI and MNHREAL_MPI from modd_precision, remove MNH_MPI_DOUBLE_PRECISION and MNH_MPI_RANK_KIND keywords --- src/LIB/SURCOUCHE/src/fmread_ll.f90 | 41 +++---- src/LIB/SURCOUCHE/src/fmwrit_ll.f90 | 123 ++++++------------- src/LIB/SURCOUCHE/src/mode_double_double.f90 | 15 +-- src/LIB/SURCOUCHE/src/mode_fm.f90 | 1 - src/LIB/SURCOUCHE/src/mode_gather.f90 | 95 +++++++------- src/LIB/SURCOUCHE/src/mode_init_ll.f90 | 14 +-- src/LIB/SURCOUCHE/src/mode_io.f90 | 1 - src/LIB/SURCOUCHE/src/mode_io_tools.f90 | 12 +- src/LIB/SURCOUCHE/src/mode_scatter.f90 | 55 ++++----- src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 | 14 +-- src/MNH/ini_cst.f90 | 2 +- src/Makefile.MESONH.mk | 2 +- src/Rules.AIX64.mk | 8 +- src/Rules.BG.mk | 10 +- src/Rules.BGQ.mk | 10 +- src/Rules.LXNAGfor.mk | 5 +- src/Rules.LXarm.mk | 9 +- src/Rules.LXcray.mk | 8 +- src/Rules.LXg95.mk | 8 +- src/Rules.LXgfortran.mk | 9 +- src/Rules.LXifort.mk | 9 +- src/Rules.LXpathf95.mk | 6 +- src/Rules.LXpgi.mk | 9 +- src/Rules.SX8.mk | 8 +- 24 files changed, 176 insertions(+), 298 deletions(-) diff --git a/src/LIB/SURCOUCHE/src/fmread_ll.f90 b/src/LIB/SURCOUCHE/src/fmread_ll.f90 index 2efa39b22..8f0926575 100644 --- a/src/LIB/SURCOUCHE/src/fmread_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmread_ll.f90 @@ -4,12 +4,6 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - MODULE MODE_FMREAD ! !Correction : @@ -23,6 +17,7 @@ MODULE MODE_FMREAD ! USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA USE MODD_MPIF +use modd_precision, only: MNHREAL_MPI ! USE MODE_FIELD USE MODE_IO_READ_LFI @@ -182,7 +177,7 @@ IF (IRESP==0) THEN IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) ! ! Broadcast Field - CALL MPI_BCAST(PFIELD,1,MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,1,MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -281,7 +276,7 @@ IF (IRESP==0) THEN ! IF (TPFIELD%CDIR /= 'XX' .AND. TPFIELD%CDIR /='YY') THEN ! Broadcast Field - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ELSE !Scatter Field CALL SCATTER_XXFIELD(TPFIELD%CDIR,ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM,TPSPLITTING) @@ -451,7 +446,7 @@ IF (IRESP==0) THEN #endif END IF ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF CALL SECOND_MNH2(T2) TIMEZ%T_READ2D_SCAT=TIMEZ%T_READ2D_SCAT + T2 - T1 @@ -613,7 +608,7 @@ IF (IRESP==0) THEN END IF ELSE ! Broadcast Field - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ELSE ! multiprocesses execution & // IO ! @@ -733,9 +728,9 @@ IF (IRESP==0) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX2DP(NB_REQ)%X(IXO:IXE,IYO:IYE)) T_TX2DP(NB_REQ)%X=TX2DP - CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MPI_FLOAT,JI-1,199+IK_RANK, & + CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+IK_RANK, & TZFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+IK_RANK,TZFILE%NMPICOMM,IERR) + !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+IK_RANK,TZFILE%NMPICOMM,IERR) ELSE PFIELD(:,:,JKK) = TX2DP(:,:) END IF @@ -782,7 +777,7 @@ IF (IRESP==0) THEN ZSLICE => PFIELD(:,:,JKK) !CALL SCATTER_XYFIELD(ZSLICE_ll,ZSLICE,TZFILE%NMASTER_RANK,TZFILE%NMPICOMM) IF (ISP .NE. IK_RANK) THEN - CALL MPI_RECV(ZSLICE,SIZE(ZSLICE),MPI_FLOAT,IK_RANK-1,199+IK_RANK, & + CALL MPI_RECV(ZSLICE,SIZE(ZSLICE),MNHREAL_MPI,IK_RANK-1,199+IK_RANK, & TZFILE%NMPICOMM,STATUS,IERR) END IF TZFILE => NULL() @@ -793,7 +788,7 @@ IF (IRESP==0) THEN ELSE ! Broadcast Field STOP " Broadcast Field NON PREVU SUR BG POUR LE MOMENT " - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF CALL SECOND_MNH2(T0) IF (NB_REQ .GT.0 ) THEN @@ -941,7 +936,7 @@ IF (IRESP==0) THEN CALL SCATTER_XYFIELD(ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) END IF ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF END IF @@ -1066,7 +1061,7 @@ IF (IRESP==0) THEN CALL SCATTER_XYFIELD(ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) END IF ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF END IF @@ -1173,7 +1168,7 @@ IF (IRESP==0) THEN ! XY Scatter Field CALL SCATTER_XYFIELD(ZFIELDP,PFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ELSE - CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(PFIELD,SIZE(PFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF END IF @@ -1458,7 +1453,7 @@ IF (IRESP==0) THEN ! XX or YY Scatter Field CALL SCATTER_XXFIELD(TPFIELD%CDIR,IFIELDP,KFIELD,TPFILE%NMASTER_RANK,TPFILE%NMPICOMM) ! Broadcast Field - CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(KFIELD,SIZE(KFIELD),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ELSE IF (TPFIELD%CDIR == 'XY') THEN IF (LPACK .AND. L2D) THEN ! 2D compact case @@ -1778,7 +1773,7 @@ IF (IRESP==0) THEN IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) ! CALL MPI_BCAST(ITDATE, 3,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) - CALL MPI_BCAST(TPDATA%TIME,1,MPI_FLOAT, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(TPDATA%TIME,1,MNHREAL_MPI, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) TPDATA%TDATE%YEAR = ITDATE(1) TPDATA%TDATE%MONTH = ITDATE(2) TPDATA%TDATE%DAY = ITDATE(3) @@ -1961,8 +1956,8 @@ IF (IRESP==0) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX3DP(NB_REQ)%X(IIB:IIE,IJB:IJE,IKU)) T_TX3DP(NB_REQ)%X=Z3D(IIB:IIE,IJB:IJE,:) - CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,IERR) + CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MNHREAL_MPI,JI-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) + !CALL MPI_BSEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MNHREAL_MPI,JI-1,99,TPFILE%NMPICOMM,IERR) ELSE CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) PLB(IIB:IIE,IJB:IJE,:) = TX3DP(:,:,:) @@ -1989,9 +1984,9 @@ IF (IRESP==0) THEN CALL GET_DISTRIB_LB(YLBTYPE,ISP,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) - CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,STATUS,IERR) + CALL MPI_RECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,STATUS,IERR) !NB_REQ = NB_REQ + 1 - !CALL MPI_IRECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) + !CALL MPI_IRECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) !IF (NB_REQ .GT.0 ) CALL MPI_WAITALL(NB_REQ,REQ_TAB,MNH_STATUSES_IGNORE,IERR) END IF CALL SECOND_MNH2(T1) diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 index 41c659421..f2afbf160 100644 --- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 @@ -10,18 +10,13 @@ ! Philippe Wautelet: 10/01/2019: write header also for Z-split files !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - #define MNH_SCALARS_IN_SPLITFILES 0 MODULE MODE_FMWRIT - USE MODD_MPIF USE MODD_IO_ll, ONLY: TFILEDATA + USE MODD_MPIF + use modd_precision, only: MNHINT_MPI, MNHREAL_MPI USE MODE_FIELD USE MODE_IO_WRITE_LFI @@ -316,7 +311,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution #if MNH_SCALARS_IN_SPLITFILES IF (TPFILE%NSUBFILES_IOZ>0) THEN @@ -417,11 +412,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -444,7 +435,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution END IF ! @@ -561,11 +552,7 @@ CONTAINS END IF ELSE ! multiprocesses execution CALL SECOND_MNH2(T0) -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -625,7 +612,7 @@ CONTAINS CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -764,11 +751,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSEIF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR=='--' ) THEN ! multiprocesses execution & 1 proc IO -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -798,14 +781,10 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! ELSE ! multiprocesses execution & // IO -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -916,9 +895,9 @@ CONTAINS ZSLICE => PFIELD(:,:,JKK) TX2DP=>ZSLICE(IXO:IXE,IYO:IYE) T_TX2DP(NB_REQ)%X=ZSLICE(IXO:IXE,IYO:IYE) - CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MPI_FLOAT,IK_RANK-1,99+IK_RANK & + CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MNHREAL_MPI,IK_RANK-1,99+IK_RANK & & ,TZFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,IK_RANK-1,99+IK_RANK,TZFILE%NMPICOMM,IERR) + !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,IK_RANK-1,99+IK_RANK,TZFILE%NMPICOMM,IERR) END IF END IF CALL SECOND_MNH2(T1) @@ -954,7 +933,7 @@ CONTAINS ZSLICE => PFIELD(:,:,JKK) TX2DP = ZSLICE(IXO:IXE,IYO:IYE) ELSE - CALL MPI_RECV(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,99+IK_RANK,TZFILE%NMPICOMM,STATUS,IERR) + CALL MPI_RECV(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,99+IK_RANK,TZFILE%NMPICOMM,STATUS,IERR) END IF END IF END DO @@ -1087,11 +1066,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X4','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1120,7 +1095,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution END IF ! @@ -1225,11 +1200,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X5','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1259,7 +1230,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution END IF ! @@ -1353,11 +1324,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X6','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1382,7 +1349,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution END IF ! @@ -1465,7 +1432,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocess execution #if MNH_SCALARS_IN_SPLITFILES IF (TPFILE%NSUBFILES_IOZ>0) THEN @@ -1565,11 +1532,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1592,7 +1555,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -1703,11 +1666,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1742,7 +1701,7 @@ CONTAINS CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -1853,11 +1812,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -1887,7 +1842,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -1974,7 +1929,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution #if MNH_SCALARS_IN_SPLITFILES IF (TPFILE%NSUBFILES_IOZ>0) THEN @@ -2074,11 +2029,7 @@ CONTAINS IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE ! multiprocesses execution -#if ( MNH_INT == 4 ) - CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#else - CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) -#endif + CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MNHINT_MPI,MPI_MAX,TPFILE%NMPICOMM,IRESP) IF (ISIZEMAX==0) THEN CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_L1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 @@ -2101,7 +2052,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,GFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2188,7 +2139,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2293,7 +2244,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2375,7 +2326,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2508,7 +2459,7 @@ CONTAINS IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN - CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,STATUS,IERR) + CALL MPI_RECV(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,99,TPFILE%NMPICOMM,STATUS,IERR) ELSE CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) TX3DP = PLB(IIB:IIE,IJB:IJE,:) @@ -2534,9 +2485,9 @@ CONTAINS NB_REQ = NB_REQ + 1 ALLOCATE(T_TX3DP(NB_REQ)%X(IIB:IIE,IJB:IJE,IKU)) T_TX3DP(NB_REQ)%X=PLB(IIB:IIE,IJB:IJE,:) - CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99, & + CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99, & TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,IERR) + !CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,IERR) END IF IF (NB_REQ .GT.0 ) THEN CALL MPI_WAITALL(NB_REQ,REQ_TAB,MNH_STATUSES_IGNORE,IERR) @@ -2545,7 +2496,7 @@ CONTAINS DEALLOCATE(T_TX3DP,REQ_TAB) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF END IF ! @@ -2629,7 +2580,7 @@ CONTAINS IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! - CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) + CALL MPI_BCAST(IRESP,1,MNHINT_MPI,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF ! multiprocesses execution END IF ! diff --git a/src/LIB/SURCOUCHE/src/mode_double_double.f90 b/src/LIB/SURCOUCHE/src/mode_double_double.f90 index 19f0b3610..809944ce8 100644 --- a/src/LIB/SURCOUCHE/src/mode_double_double.f90 +++ b/src/LIB/SURCOUCHE/src/mode_double_double.f90 @@ -43,24 +43,13 @@ MODULE mode_repro_sum CONTAINS SUBROUTINE INIT_DD(KINFO) + use modd_precision, only: MNHREAL_MPI IMPLICIT NONE INTEGER, INTENT(OUT) :: KINFO ! MPI return status - REAL :: REAL_DEFAULT - INTEGER,PARAMETER :: REAL_KIND=KIND(REAL_DEFAULT) - INTEGER :: MNH_MPI_REAL - - ! - ! find the default type of REAL for MESONH on MPI - ! - IF (REAL_KIND .EQ. 4 ) THEN - MNH_MPI_REAL = MPI_REAL4 - ELSE - MNH_MPI_REAL = MPI_REAL8 - END IF ! ! define the double-double for MPI ! - CALL MPI_TYPE_CONTIGUOUS(2, MNH_MPI_REAL ,MNH_DOUBLE_DOUBLE , KINFO) + CALL MPI_TYPE_CONTIGUOUS(2, MNHREAL_MPI ,MNH_DOUBLE_DOUBLE , KINFO) CALL MPI_TYPE_COMMIT(MNH_DOUBLE_DOUBLE , KINFO) ! ! define the double-double sum = MNH_SUM_DD for MPI diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 index 02265538c..821550563 100644 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ b/src/LIB/SURCOUCHE/src/mode_fm.f90 @@ -169,7 +169,6 @@ USE MODE_IO_ll, ONLY: OPEN_ll,GCONFIO USE MODD_CONFZ,ONLY : NB_PROCIO_R,NB_PROCIO_W !JUANZ #if defined(MNH_IOCDF4) -USE MODD_NETCDF, ONLY:IDCDF_KIND use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 #endif use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_gather.f90 b/src/LIB/SURCOUCHE/src/mode_gather.f90 index 756d8dcaa..3cfd58b7f 100644 --- a/src/LIB/SURCOUCHE/src/mode_gather.f90 +++ b/src/LIB/SURCOUCHE/src/mode_gather.f90 @@ -4,12 +4,6 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - MODULE MODE_GATHER_ll ! Modifications: @@ -19,9 +13,8 @@ MODULE MODE_GATHER_ll ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! USE MODD_MPIF -!JUANZ -USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD -!JUANZ +use modd_precision, only: MNHREAL_MPI +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD IMPLICIT NONE @@ -73,7 +66,7 @@ ELSE PRINT *,'Error GATHERALL_X1' END IF ! PRECV variable of IROOT processor contains the global field -CALL MPI_BCAST(PRECV,SIZE(PRECV),MPI_FLOAT,IROOT-1,NMNH_COMM_WORLD,KRESP) +CALL MPI_BCAST(PRECV,SIZE(PRECV),MNHREAL_MPI,IROOT-1,NMNH_COMM_WORLD,KRESP) END SUBROUTINE GATHERALL_X1 @@ -98,7 +91,7 @@ ELSE PRINT *,'Error GATHERALL_X2' END IF ! PRECV variable of IROOT processor contains the global field -CALL MPI_BCAST(PRECV,SIZE(PRECV),MPI_FLOAT,IROOT-1,NMNH_COMM_WORLD,KRESP) +CALL MPI_BCAST(PRECV,SIZE(PRECV),MNHREAL_MPI,IROOT-1,NMNH_COMM_WORLD,KRESP) END SUBROUTINE GATHERALL_X2 @@ -124,7 +117,7 @@ ELSE KRESP = -1 END IF ! PRECV variable of IROOT processor contains the global field -CALL MPI_BCAST(PRECV,SIZE(PRECV),MPI_FLOAT,IROOT-1,NMNH_COMM_WORLD,KRESP) +CALL MPI_BCAST(PRECV,SIZE(PRECV),MNHREAL_MPI,IROOT-1,NMNH_COMM_WORLD,KRESP) END SUBROUTINE GATHERALL_X3 @@ -219,7 +212,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -227,7 +220,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -240,15 +233,15 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE) NB_REQ = 1 - CALL MPI_ISEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) + CALL MPI_ISEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) CALL MPI_WAITALL(NB_REQ,REQ,MNH_STATUSES_IGNORE,IERR) - !CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + !CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE) NB_REQ = 1 - CALL MPI_ISEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) + CALL MPI_ISEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) CALL MPI_WAITALL(NB_REQ,REQ,MNH_STATUSES_IGNORE,IERR) - !CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + !CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -289,7 +282,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -297,7 +290,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -309,10 +302,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -352,7 +345,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -360,7 +353,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -372,10 +365,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -415,7 +408,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -423,7 +416,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -435,10 +428,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -478,7 +471,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -486,7 +479,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -498,10 +491,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -541,7 +534,7 @@ IF (ISP == KROOT) THEN IF (JI == KROOT) THEN XP = PSEND(IXO:IXE,:,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN @@ -549,7 +542,7 @@ IF (ISP == KROOT) THEN IF (JI==KROOT) THEN XP = PSEND(IYO:IYE,:,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -561,10 +554,10 @@ ELSE IF (HDIR == 'XX' .AND. IYM <= IGYE .AND. IYM >= IGYO) THEN XP=>PSEND(IXO:IXE,:,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) ELSE IF (HDIR == 'YY' .AND. IXM <= IGXE .AND. IXM >= IGXO) THEN XP=>PSEND(IYO:IYE,:,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -861,7 +854,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -873,10 +866,10 @@ ELSE NB_REQ = 1 ALLOCATE(X_2DP(IXO:IXE,IYO:IYE)) X_2DP=XP - CALL MPI_ISEND(X_2DP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) + CALL MPI_ISEND(X_2DP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,REQ(NB_REQ),IERR) CALL MPI_WAITALL(NB_REQ,REQ,MNH_STATUSES_IGNORE,IERR) DEALLOCATE(X_2DP) - !CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + !CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -910,7 +903,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -919,7 +912,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -953,7 +946,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -962,7 +955,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -996,7 +989,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -1005,7 +998,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -1039,7 +1032,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) XP = PSEND(IXO:IXE,IYO:IYE,:,:,:,:) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -1048,7 +1041,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE,:,:,:,:) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF @@ -1158,7 +1151,7 @@ IF (ISP == KROOT) THEN CALL GET_DOMWRITE_ll(JI,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX) XP = PSEND(IXO:IXE,IYO:IYE) ELSE - CALL MPI_RECV(XP,SIZE(XP),MPI_FLOAT,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) + CALL MPI_RECV(XP,SIZE(XP),MNHREAL_MPI,JI-1,99+KROOT,KCOMM,MPI_STATUS_IGNORE,IERR) END IF END IF END DO @@ -1167,7 +1160,7 @@ ELSE CALL GET_DOMWRITE_ll(ISP,'local',IXO,IXE,IYO,IYE,KXOBOX,KXEBOX,KYOBOX,KYEBOX) IF (IXO /= 0) THEN ! intersection is not empty XP=>PSEND(IXO:IXE,IYO:IYE) - CALL MPI_BSEND(XP,SIZE(XP),MPI_FLOAT,KROOT-1,99+KROOT,KCOMM,IERR) + CALL MPI_BSEND(XP,SIZE(XP),MNHREAL_MPI,KROOT-1,99+KROOT,KCOMM,IERR) END IF END IF diff --git a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 index 6cd17f9c6..58bd9cb4c 100644 --- a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 @@ -3,15 +3,6 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- - -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MNH_MPI_REAL MPI_DOUBLE_PRECISION -#define MNH_MPI_2REAL MPI_2DOUBLE_PRECISION -#else -#define MNH_MPI_REAL MPI_REAL -#define MNH_MPI_2REAL MPI_2REAL -#endif - ! ################### MODULE MODE_INIT_ll ! ################### @@ -59,6 +50,7 @@ !------------------------------------------------------------------------------- ! USE MODD_MPIF + use modd_precision, only: MNHREAL_MPI, MNH2REAL_MPI ! IMPLICIT NONE ! @@ -555,8 +547,8 @@ ! IP = IP + 1 ! - MPI_PRECISION = MNH_MPI_REAL - MPI_2PRECISION = MNH_MPI_2REAL + MPI_PRECISION = MNHREAL_MPI + MPI_2PRECISION = MNH2REAL_MPI ! !------------------------------------------------------------------------------- ! diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 0434b5ea1..541316a4f 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -159,7 +159,6 @@ CONTAINS USE MODD_IO_ll #if defined(MNH_IOCDF4) - USE MODD_NETCDF, ONLY:IDCDF_KIND use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 #endif use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 index 9e8dd1fc8..33cb6cfd9 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 @@ -24,8 +24,8 @@ contains ! return the file number where to write the K level of data ! IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: k,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND) :: io_file + INTEGER :: k,nb_proc_io + INTEGER :: io_file io_file = MOD ((k-1) , nb_proc_io ) @@ -36,12 +36,12 @@ contains ! return the proc number which must write the 'IFILE' file ! IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: IFILE,nb_proc,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND),OPTIONAL :: offset_rank + INTEGER :: IFILE,nb_proc,nb_proc_io + INTEGER,OPTIONAL :: offset_rank - INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_RANK + INTEGER :: IO_RANK - INTEGER(kind=MNH_MPI_RANK_KIND) :: ipas,irest + INTEGER :: ipas,irest ipas = nb_proc / nb_proc_io irest = MOD ( nb_proc , nb_proc_io ) diff --git a/src/LIB/SURCOUCHE/src/mode_scatter.f90 b/src/LIB/SURCOUCHE/src/mode_scatter.f90 index cc933744a..9857c0ec1 100644 --- a/src/LIB/SURCOUCHE/src/mode_scatter.f90 +++ b/src/LIB/SURCOUCHE/src/mode_scatter.f90 @@ -12,12 +12,6 @@ !----------------------------------------------------------------- !----------------------------------------------------------------- -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MPI_FLOAT MPI_DOUBLE_PRECISION -#else -#define MPI_FLOAT MPI_REAL -#endif - MODULE MODE_SCATTER_ll ! @@ -26,6 +20,7 @@ MODULE MODE_SCATTER_ll ! USE MODD_MPIF +use modd_precision, only: MNHREAL_MPI IMPLICIT NONE @@ -100,9 +95,9 @@ IF (ISP == KROOT) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX1DP(NB_REQ)%X(SIZE(TX1DP))) T_TX1DP(NB_REQ)%X=TX1DP - CALL MPI_ISEND(T_TX1DP(NB_REQ)%X,SIZE(TX1DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_ISEND(T_TX1DP(NB_REQ)%X,SIZE(TX1DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(T12DP,SIZE(T12DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + !CALL MPI_BSEND(T12DP,SIZE(T12DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& ! & ,IERR) ELSE PRECV(:) = TX1DP(:) @@ -115,7 +110,7 @@ IF (ISP == KROOT) THEN DEALLOCATE(T_TX1DP) DEALLOCATE(REQ_TAB) ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -158,14 +153,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:) = TX2DP(:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -198,14 +193,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:) = TX2DP(:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -238,14 +233,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:) = TX2DP(:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -278,14 +273,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:) = TX2DP(:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -318,14 +313,14 @@ IF (ISP == KROOT) THEN END IF IF (ISP /= JI) THEN - CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:,:) = TX2DP(:,:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -446,9 +441,9 @@ IF (ISP == KROOT) THEN NB_REQ = NB_REQ + 1 ALLOCATE(T_TX2DP(NB_REQ)%X(IXO:IXE,IYO:IYE)) T_TX2DP(NB_REQ)%X=TX2DP - CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_ISEND(T_TX2DP(NB_REQ)%X,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,REQ_TAB(NB_REQ),IERR) - !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + !CALL MPI_BSEND(TX2DP,SIZE(TX2DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& ! & ,IERR) ELSE PRECV(:,:) = TX2DP(:,:) @@ -461,7 +456,7 @@ IF (ISP == KROOT) THEN DEALLOCATE(T_TX2DP) DEALLOCATE(REQ_TAB) ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -489,14 +484,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:) = TX3DP(:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -524,14 +519,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:) = TX3DP(:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -559,14 +554,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:,:,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:) = TX3DP(:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF @@ -594,14 +589,14 @@ IF (ISP == KROOT) THEN TX3DP=>PSEND(IXO:IXE,IYO:IYE,:,:,:,:) IF (ISP /= JI) THEN - CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,199+KROOT,KCOMM& + CALL MPI_BSEND(TX3DP,SIZE(TX3DP),MNHREAL_MPI,JI-1,199+KROOT,KCOMM& & ,IERR) ELSE PRECV(:,:,:,:,:,:) = TX3DP(:,:,:,:,:,:) END IF END DO ELSE - CALL MPI_RECV(PRECV,SIZE(PRECV),MPI_FLOAT,KROOT-1,199+KROOT,KCOMM& + CALL MPI_RECV(PRECV,SIZE(PRECV),MNHREAL_MPI,KROOT-1,199+KROOT,KCOMM& & ,MPI_STATUS_IGNORE,IERR) END IF diff --git a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 index 754a30d12..f16a0b180 100644 --- a/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_splittingz_ll.f90 @@ -3,15 +3,6 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- - -#ifdef MNH_MPI_DOUBLE_PRECISION -#define MNH_MPI_REAL MPI_DOUBLE_PRECISION -#define MNH_MPI_2REAL MPI_2DOUBLE_PRECISION -#else -#define MNH_MPI_REAL MPI_REAL -#define MNH_MPI_2REAL MPI_2REAL -#endif - ! ######################## MODULE MODE_SPLITTINGZ_ll ! ######################## @@ -40,6 +31,7 @@ MODULE MODE_SPLITTINGZ_ll ! Modifications: ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O USE MODD_MPIF + use modd_precision, only: MNHREAL_MPI, MNH2REAL_MPI ! USE MODE_SPLITTING_ll ! @@ -180,8 +172,8 @@ CONTAINS ! CALL MPI_COMM_DUP(NMNH_COMM_WORLD, NGRID_COM, KINFO_ll) ! - MPI_PRECISION = MNH_MPI_REAL - MPI_2PRECISION = MNH_MPI_2REAL + MPI_PRECISION = MNHREAL_MPI + MPI_2PRECISION = MNH2REAL_MPI ! ! For bug with intelmpi+ilp64+i8 declare MNH_STATUSES_IGNORE ! diff --git a/src/MNH/ini_cst.f90 b/src/MNH/ini_cst.f90 index 0e422740d..9fd09be3a 100644 --- a/src/MNH/ini_cst.f90 +++ b/src/MNH/ini_cst.f90 @@ -159,7 +159,7 @@ XMNH_EPSILON = EPSILON (XMNH_EPSILON ) XMNH_HUGE = HUGE (XMNH_HUGE ) XMNH_HUGE_12_LOG = LOG ( SQRT(XMNH_HUGE) ) -#ifdef MNH_MPI_DOUBLE_PRECISION +#if (MNH_REAL == 8) XMNH_TINY = 1.0e-80 XEPS_DT = 1.0e-5 XRES_FLAT_CART = 1.0e-12 diff --git a/src/Makefile.MESONH.mk b/src/Makefile.MESONH.mk index e4f2f56c8..2358c3f1e 100644 --- a/src/Makefile.MESONH.mk +++ b/src/Makefile.MESONH.mk @@ -106,7 +106,7 @@ endif # PRE_BUG TEST !!! # DIR_SURCOUCHE += LIB/SURCOUCHE/src -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DNAGf95 +#CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_MPI_BSEND -DNAGf95 # ifdef DIR_SURCOUCHE DIR_MASTER += $(DIR_SURCOUCHE) diff --git a/src/Rules.AIX64.mk b/src/Rules.AIX64.mk index 9bf3b1262..03cc10faf 100644 --- a/src/Rules.AIX64.mk +++ b/src/Rules.AIX64.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -31,9 +31,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif OPT = $(OPT_BASE) $(OPT_PERF2) @@ -84,7 +82,7 @@ endif CPP = /usr/lib/cpp -C -P -qlanglvl=classic # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.BG.mk b/src/Rules.BG.mk index bf5f73d9a..b1ee2cccd 100644 --- a/src/Rules.BG.mk +++ b/src/Rules.BG.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -36,9 +36,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -94,8 +92,8 @@ CPP = cpp -P -traditional -Wcomment CC = mpixlc_r # CPPFLAGS_SURFEX = -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +#CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.BGQ.mk b/src/Rules.BGQ.mk index 6418fb149..4ce309876 100644 --- a/src/Rules.BGQ.mk +++ b/src/Rules.BGQ.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -40,10 +40,8 @@ OPT_BASE_I4 := $(OPT_BASE) $(OPT_I4) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else OPT_BASE += $(OPT_I4) -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -143,8 +141,8 @@ CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -#CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) -DSNGL=REAL +#CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_ISEND +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_SP4 -DMNH_MPI_BSEND -DSNGL=REAL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAMAX1=MAX -DMNH -DSFX_MNH diff --git a/src/Rules.LXNAGfor.mk b/src/Rules.LXNAGfor.mk index 397a18c4f..8fd7c4264 100644 --- a/src/Rules.LXNAGfor.mk +++ b/src/Rules.LXNAGfor.mk @@ -24,16 +24,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -72,7 +69,7 @@ FX90FLAGS = $(OPT) -fixed CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXarm.mk b/src/Rules.LXarm.mk index dc9369223..d1e4879e6 100644 --- a/src/Rules.LXarm.mk +++ b/src/Rules.LXarm.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -34,16 +34,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -88,7 +85,7 @@ FX90FLAGS = $(OPT) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXcray.mk b/src/Rules.LXcray.mk index 425a0b9d6..876586124 100644 --- a/src/Rules.LXcray.mk +++ b/src/Rules.LXcray.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -29,9 +29,7 @@ ifeq "$(MNH_INT)" "8" #OPT_BASE += $(OPT_I8) OPT_BASE = -sdefault64 -hpic -em -ef LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -84,7 +82,7 @@ LDFLAGS = -Wl,-warn-once $(PAR) $(OPT_BASE) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXg95.mk b/src/Rules.LXg95.mk index e08e73ed7..0f41dffc3 100644 --- a/src/Rules.LXg95.mk +++ b/src/Rules.LXg95.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -24,9 +24,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -66,7 +64,7 @@ CPP = cpp -P -traditional -Wcomment LFI_INT ?=4 LFI_RECL ?=512 CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH diff --git a/src/Rules.LXgfortran.mk b/src/Rules.LXgfortran.mk index 58689e968..20a065160 100644 --- a/src/Rules.LXgfortran.mk +++ b/src/Rules.LXgfortran.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -31,16 +31,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -80,7 +77,7 @@ FX90FLAGS = $(OPT) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXifort.mk b/src/Rules.LXifort.mk index 231f1949a..ca42df88b 100644 --- a/src/Rules.LXifort.mk +++ b/src/Rules.LXifort.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -25,16 +25,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -177,7 +174,7 @@ LDFLAGS = -Wl,-warn-once $(PAR) -Wl,-rpath=$(LD_LIBRARY_PATH) $(OPT_BASE) CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH diff --git a/src/Rules.LXpathf95.mk b/src/Rules.LXpathf95.mk index fe34aa467..48ba1c05b 100644 --- a/src/Rules.LXpathf95.mk +++ b/src/Rules.LXpathf95.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -42,7 +42,7 @@ LDFLAGS = -Wl,-noinhibit-exec -Wl,-warn-once CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL +CPPFLAGS_SURCOUCHE = -DMNH_LINUX -DMNH_MPI_BSEND -DDEV_NULL CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX CPPFLAGS_MNH = -DAINT=INT -DAMOD=MOD -DMNH -DSFX_MNH diff --git a/src/Rules.LXpgi.mk b/src/Rules.LXpgi.mk index 498f56f7b..a91f31843 100644 --- a/src/Rules.LXpgi.mk +++ b/src/Rules.LXpgi.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -34,16 +34,13 @@ LFI_RECL ?=512 # ifneq "$(MNH_REAL)" "4" OPT_BASE += $(OPT_R8) -CPPFLAGS_SURCOUCHE += -DMNH_MPI_DOUBLE_PRECISION endif # OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -100,7 +97,7 @@ CPP = cpp -P -traditional -Wcomment # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE += -DMNH_LINUX -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE += -DMNH_LINUX CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DSWAPIO -DLINUX -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DMNH_PGI -DSFX_MNH diff --git a/src/Rules.SX8.mk b/src/Rules.SX8.mk index abbaf8722..dae21a06d 100644 --- a/src/Rules.SX8.mk +++ b/src/Rules.SX8.mk @@ -1,6 +1,6 @@ -#MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +#MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier #MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +#MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt #MNH_LIC for details. version 1. ########################################################## # # @@ -30,9 +30,7 @@ OPT_BASE_I4 := $(OPT_BASE) ifeq "$(MNH_INT)" "8" OPT_BASE += $(OPT_I8) LFI_INT ?=8 -MNH_MPI_RANK_KIND ?=8 else -MNH_MPI_RANK_KIND ?=4 LFI_INT ?=4 endif # @@ -87,7 +85,7 @@ CPP = cpp -P -traditional -Wcomment AR=sxar # CPPFLAGS_SURFEX = -CPPFLAGS_SURCOUCHE = -DMNH_MPI_DOUBLE_PRECISION -DMNH_SX5 -DMNH_MPI_BSEND -DMNH_MPI_RANK_KIND=$(MNH_MPI_RANK_KIND) +CPPFLAGS_SURCOUCHE = -DMNH_SX5 -DMNH_MPI_BSEND CPPFLAGS_RAD = CPPFLAGS_NEWLFI = -DMNH_SX5 -DLFI_INT=${LFI_INT} -DLFI_RECL=${LFI_RECL} CPPFLAGS_MNH = -DMNH -DSFX_MNH -- GitLab