diff --git a/src/LIB/SURCOUCHE/src/modd_mpif.f90 b/src/LIB/SURCOUCHE/src/modd_mpif.f90 index a36b3748a77cd6dedf33847c195473bbdadac049..0a17fcf5081893ae0ececc02aac023e21cfcac23 100644 --- a/src/LIB/SURCOUCHE/src/modd_mpif.f90 +++ b/src/LIB/SURCOUCHE/src/modd_mpif.f90 @@ -1,19 +1,12 @@ -!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. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ ! J.Escobar 5/06/2018 : add cpp key MNH_USE_MPI_STATUSES_IGNORE for use of true MPI_STATUSES_IGNORE ! & bypass bug with ifort+openmpi -! $Date$ -!----------------------------------------------------------------- +! P.Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) !----------------------------------------------------------------- - MODULE MODD_MPIF #ifdef USE_MPI USE MPI @@ -23,7 +16,7 @@ MODULE MODD_MPIF INCLUDE 'mpif.h' #ifdef MNH_USE_MPI_STATUSES_IGNORE ! bypass ifort bug with use only MNH_STATUSES_IGNORE => MPI_STATUSES_IGNORE - double precision XXXXXX + real(kind(0.0d0)) XXXXXX equivalence ( MPI_STATUSES_IGNORE , XXXXXX ) #endif #endif diff --git a/src/MNH/ch_f77.fx90 b/src/MNH/ch_f77.fx90 index 836766326106963c5071eee3386bcc484a933df6..79387b824a2390553faa1a480964e9c3b9f034c0 100644 --- a/src/MNH/ch_f77.fx90 +++ b/src/MNH/ch_f77.fx90 @@ -18,6 +18,8 @@ C**MODIFIED: 19/06/2014 (J.Escobar & M.Leriche) write(kout,...) to OUTPUT_LISTIN C & correct IN_LUN = 11 => IN_LUN = 78 to avoid fort.11 creation C**MODIFIED: 10/01/2019 (P.Wautelet) use newunit argument to open files C + bug corrections: some files were not closed +C**MODIFIED: 10/01/2019 (P.Wautelet) replace double precision declarations by +C real(kind(0.0d0)) (to allow compilation by NAG compiler) C! C! C! @@ -6732,8 +6734,8 @@ c c INCLUDE 'params' * local variables - DOUBLE PRECISION rm(kz), ro2(kz) - DOUBLE PRECISION b(3), c(3), d(3), e(3) + REAL(kind(0.0d0)) :: rm(kz), ro2(kz) + REAL(kind(0.0d0)) :: b(3), c(3), d(3), e(3) DATA b/ 6.8431D-01, 2.29841D-01, 8.65412D-02/, > c/8.22114D-21, 1.77556D-20, 8.22112D-21/, > d/ 6.0073D-21, 4.28569D-21, 1.28059D-20/, @@ -7067,9 +7069,9 @@ C------------------------------------------------------------- REAL CHEBEV - DOUBLE PRECISION AC(20,17) - DOUBLE PRECISION BC(20,17) ! Chebyshev polynomial coeffs - REAL WAVE_NUM(17) + REAL(kind(0.0d0)) :: AC(20,17) + REAL(kind(0.0d0)) :: BC(20,17) ! Chebyshev polynomial coeffs + REAL WAVE_NUM(17) COMMON /XS_COEFFS/ AC, BC, WAVE_NUM INTEGER I @@ -7096,8 +7098,8 @@ C polynomial coeffs necessary to calculate O2 effective C cross-sections C C------------------------------------------------------------- - DOUBLE PRECISION AC(20,17) - DOUBLE PRECISION BC(20,17) ! Chebyshev polynomial coeffs + REAL(kind(0.0d0)) :: AC(20,17) + REAL(kind(0.0d0)) :: BC(20,17) ! Chebyshev polynomial coeffs REAL WAVE_NUM(17) COMMON /XS_COEFFS/ AC, BC, WAVE_NUM @@ -7145,7 +7147,7 @@ C------------------------------------------------------------- INTEGER M REAL CHEBEV,A,B,X - DOUBLE PRECISION C(M) + REAL(kind(0.0d0)) :: C(M) INTEGER J REAL D,DD,SV,Y,Y2 @@ -15460,12 +15462,12 @@ c .. Local Scalars .. INTEGER ITER, K, LIM, MAXIT, NN, NP1 REAL CONA, PI, T - DOUBLE PRECISION EN, NNP1, ONE, P, P2PRI, PM1, PM2, PPR, PROD, - & TMP, TOL, TWO, X, XI + REAL(kind(0.0d0)) :: EN, NNP1, ONE, P, P2PRI, PM1, PM2, PPR, + & PROD, TMP, TOL, TWO, X, XI c .. c .. External Functions .. - DOUBLE PRECISION D1MACH + REAL(kind(0.0d0)) :: D1MACH EXTERNAL D1MACH c .. c .. External Subroutines .. @@ -16223,7 +16225,7 @@ c .. Array Arguments .. & CC( MXCMU, MXCMU ), CMU( MXCMU ), CWT( MXCMU ), & EVAL( MI ), EVECC( MXCMU, MXCMU ), GC( MXCMU, MXCMU ), & GL( 0:MXCMU ), KK( MXCMU ), YLMC( 0:MXCMU, MXCMU ) - DOUBLE PRECISION AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ), + REAL(kind(0.0d0)) :: AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ), & WKD( MXCMU ) c .. c .. Local Scalars .. @@ -16964,7 +16966,7 @@ c .. Array Arguments .. & YLM0( 0:MXCMU ), YLMC( 0:MXCMU, MXCMU ), & WK( MXCMU ), ZJ( MXCMU ), ZZ( MXCMU ) - DOUBLE PRECISION AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ), + REAL(kind(0.0d0)) :: AAD( MI, MI ), EVALD( MI ), EVECCD( MI, MI ), & WKD( MXCMU ) *bm Variables for instability fix @@ -19078,14 +19080,14 @@ C ############################## *-----------------------------------------------------------------------------* EXTERNAL t665d - DOUBLE PRECISION d1mach + REAL(kind(0.0d0)) :: d1mach INTEGER i LOGICAL doinit DATA doinit/.TRUE./ SAVE doinit - DOUBLE PRECISION dmach(4) + REAL(kind(0.0d0)) :: dmach(4) SAVE dmach IF (( i .GE. 1 ) .AND. ( i .LE. 4 )) THEN @@ -19117,12 +19119,12 @@ C----------------------------------------------------------------------- C This subroutine is a double precision version of subroutine T665R. C See code of T665R for detailed comments and explanation C----------------------------------------------------------------------- - DOUBLE PRECISION DMACH(4) + REAL(kind(0.0d0)) :: DMACH(4) INTEGER I,IBETA,IEXP,IRND,IT,ITEMP,IZ,J,K,MACHEP,MAXEXP, 1 MINEXP,MX,NEGEP,NGRD,NXRES CS REAL A,B,BETA,BETAIN,BETAH,CONV,EPS,EPSNEG,ONE,T,TEMP,TEMPA, CS 1 TEMP1,TWO,XMAX,XMIN,Y,Z,ZERO - DOUBLE PRECISION A,B,BETA,BETAIN,BETAH,CONV,EPS,EPSNEG,ONE, + REAL(kind(0.0d0)) :: A,B,BETA,BETAIN,BETAH,CONV,EPS,EPSNEG,ONE, 1 T,TEMP,TEMPA,TEMP1,TWO,XMAX,XMIN,Y,Z,ZERO C----------------------------------------------------------------------- CS CONV(I) = REAL(I) @@ -41958,7 +41960,8 @@ c INCLUDE 'params' * local - DOUBLE PRECISION zenrad, rpsinz, rj, rjp1, dsj, dhj, ga, gb, sm + REAL(kind(0.0d0)) :: zenrad, rpsinz, rj, rjp1, dsj, dhj, + & ga, gb, sm INTEGER i, j, k INTEGER id diff --git a/src/MNH/lima_functions.f90 b/src/MNH/lima_functions.f90 index 8a7f468932ea5de117b9b80c56d6c26793bc2776..30fd902b4ef4169f78e2e5a60dca84911d1b7c71 100644 --- a/src/MNH/lima_functions.f90 +++ b/src/MNH/lima_functions.f90 @@ -1,3 +1,12 @@ +!MNH_LIC Copyright 2016-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 for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P.Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) +! +!----------------------------------------------------------------- !################################# MODULE MODI_LIMA_FUNCTIONS !################################# @@ -215,11 +224,11 @@ SUBROUTINE gaulag(x,w,n,alf) !########################### INTEGER n,MAXIT REAL alf,w(n),x(n) - DOUBLE PRECISION EPS + REAL(kind=8) :: EPS PARAMETER (EPS=3.D-14,MAXIT=10) INTEGER i,its,j REAL ai - DOUBLE PRECISION p1,p2,p3,pp,z,z1 + REAL(kind=8) :: p1,p2,p3,pp,z,z1 ! REAL SUMW ! @@ -270,10 +279,10 @@ SUBROUTINE gauher(x,w,n) !########################################## INTEGER n,MAXIT REAL w(n),x(n) - DOUBLE PRECISION EPS,PIM4 + REAL(kind=8) :: EPS,PIM4 PARAMETER (EPS=3.D-14,PIM4=.7511255444649425D0,MAXIT=10) INTEGER i,its,j,m - DOUBLE PRECISION p1,p2,p3,pp,z,z1 + REAL(kind=8) :: p1,p2,p3,pp,z,z1 ! REAL SUMW ! diff --git a/src/MNH/mode_tmat.f90 b/src/MNH/mode_tmat.f90 index e46fedfbb480f8b6c25992abcb1d9a0adcda8bec..f0c98a7996ea3d97e45656b168eb4664307f35f5 100644 --- a/src/MNH/mode_tmat.f90 +++ b/src/MNH/mode_tmat.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-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. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! algorithme initial créé par Michael Mishchenko (2000) ! ! algorithme modifié par Corinne Burlaud (2000) puis Olivier Brunau (2002) @@ -19,6 +15,7 @@ ! ! Modif par Olivier Caumont (04/2008) pour interfaçage avec diagnostic ! radar de Méso-NH. +! P. Wautelet 22/01/2019: replace double precision declarations by real(kind(0.0d0)) (to allow compilation by NAG compiler) ! !**************************************************************************** @@ -324,7 +321,7 @@ !! RT21(NPN6,NPN4,NPN4),RT22(NPN6,NPN4,NPN4),& ! ! IT11(NPN6,NPN4,NPN4),IT12(NPN6,NPN4,NPN4),& !! IT21(NPN6,NPN4,NPN4),IT22(NPN6,NPN4,NPN4) - DOUBLE COMPLEX S11,S12,S21,S22 + COMPLEX*16 S11,S12,S21,S22 COMPLEX*16 S11u,S12u,S21u,S22u REAL*8 S11carre,S22carre