Skip to content

Commit 72f4704

Browse files
committed
Fix violation of Fortitude rule PORT011
Checks for use of raw number literals as kinds Rather than setting an intrinsic type's kind using an integer literal, such as `real(8)` or `integer(kind=4)`, consider setting kinds using parameters in the intrinsic module `iso_fortran_env` such as `real64` and `int32`. For C-compatible types, consider instead `iso_c_binding` types such as `real(c_double)`. Although it is widely believed that `real(8)` represents an 8-byte floating point (and indeed, this is the case for most compilers and architectures), there is nothing in the standard to mandate this, and compiler vendors are free to choose any mapping between kind numbers and machine precision. This may lead to surprising results if your code is ported to another machine or compiler. For floating point variables, we recommended using `real(sp)` (single precision), `real(dp)` (double precision), and `real(qp)` (quadruple precision), using: ```f90 use, intrinsic :: iso_fortran_env, only: sp => real32, & dp => real64, & qp => real128 ``` Or alternatively: ```f90 integer, parameter :: sp = selected_real_kind(6, 37) integer, parameter :: dp = selected_real_kind(15, 307) integer, parameter :: qp = selected_real_kind(33, 4931) ``` Some prefer to set one precision parameter `wp` (working precision), which is set in one module and used throughout a project. Integer sizes may be set similarly: ```f90 integer, parameter :: i1 = selected_int_kind(2) ! 8 bits integer, parameter :: i2 = selected_int_kind(4) ! 16 bits integer, parameter :: i4 = selected_int_kind(9) ! 32 bits integer, parameter :: i8 = selected_int_kind(18) ! 64 bits ``` Or: ```f90 use, intrinsic :: iso_fortran_env, only: i1 => int8, & i2 => int16, & i4 => int32, & i8 => int64 ```
1 parent 2a94849 commit 72f4704

File tree

11 files changed

+139
-119
lines changed

11 files changed

+139
-119
lines changed

src/ectrans4py/etrans_inq4py.F90

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,17 @@ SUBROUTINE ETRANS_INQ4PY(KRETURNCODE, KSIZEI, KSIZEJ, KPHYSICALSIZEI, KPHYSICALS
2121
! 6 Jan., S. Riette: PDELTAX and PDELTAY added
2222
!
2323
! I. Dummy arguments declaration
24+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
2425
IMPLICIT NONE
25-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
26-
INTEGER(KIND=8), INTENT(IN) :: KSIZEI, KSIZEJ
27-
INTEGER(KIND=8), INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
28-
INTEGER(KIND=8), INTENT(IN) :: KTRUNCX, KTRUNCY
29-
INTEGER(KIND=8), INTENT(IN) :: KNUMMAXRESOL
30-
REAL(KIND=8), INTENT(IN) :: PDELTAX
31-
REAL(KIND=8), INTENT(IN) :: PDELTAY
32-
INTEGER(KIND=8), INTENT(OUT) :: KGPTOT
33-
INTEGER(KIND=8), INTENT(OUT) :: KSPEC
26+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
27+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZEI, KSIZEJ
28+
INTEGER(KIND=INT64), INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
29+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNCX, KTRUNCY
30+
INTEGER(KIND=INT64), INTENT(IN) :: KNUMMAXRESOL
31+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAX
32+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAY
33+
INTEGER(KIND=INT64), INTENT(OUT) :: KGPTOT
34+
INTEGER(KIND=INT64), INTENT(OUT) :: KSPEC
3435
!
3536
! II. Local variables declaration
3637
INTEGER, DIMENSION(0:KTRUNCX) :: IESM0

src/ectrans4py/gp2sp_gauss4py.F90

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,21 @@ SUBROUTINE GP2SP_GAUSS4PY(KRETURNCODE, KSPEC, KSIZEJ, KTRUNC, KNUMMAXRESOL, KSLO
2323
! March, 2016, A.Mary: LREORDER
2424
!
2525
! I. Dummy arguments declaration
26+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
2627
USE PARKIND1, ONLY : JPRB
2728
USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_BOOL
2829
IMPLICIT NONE
29-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
30-
INTEGER(KIND=8), INTENT(IN) :: KSPEC
31-
INTEGER(KIND=8), INTENT(IN) :: KSIZEJ
32-
INTEGER(KIND=8), INTENT(IN) :: KTRUNC
33-
INTEGER(KIND=8), INTENT(IN) :: KNUMMAXRESOL
34-
INTEGER(KIND=8), INTENT(IN) :: KSLOEN
35-
INTEGER(KIND=8), DIMENSION(KSLOEN), INTENT(IN) :: KLOEN
36-
INTEGER(KIND=8), INTENT(IN) :: KSIZE
30+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
31+
INTEGER(KIND=INT64), INTENT(IN) :: KSPEC
32+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZEJ
33+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNC
34+
INTEGER(KIND=INT64), INTENT(IN) :: KNUMMAXRESOL
35+
INTEGER(KIND=INT64), INTENT(IN) :: KSLOEN
36+
INTEGER(KIND=INT64), DIMENSION(KSLOEN), INTENT(IN) :: KLOEN
37+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZE
3738
LOGICAL(KIND=C_BOOL), INTENT(IN) :: LREORDER
38-
REAL(KIND=8), DIMENSION(KSIZE), INTENT(IN) :: PGPT
39-
REAL(KIND=8), DIMENSION(KSPEC), INTENT(OUT) :: PSPEC
39+
REAL(KIND=REAL64), DIMENSION(KSIZE), INTENT(IN) :: PGPT
40+
REAL(KIND=REAL64), DIMENSION(KSPEC), INTENT(OUT) :: PSPEC
4041
!
4142
! II. Local variables declaration
4243
INTEGER, DIMENSION(SIZE(KLOEN)) :: ILOEN
@@ -50,7 +51,7 @@ SUBROUTINE GP2SP_GAUSS4PY(KRETURNCODE, KSPEC, KSIZEJ, KTRUNC, KNUMMAXRESOL, KSLO
5051
INTEGER, DIMENSION(0:KTRUNC) :: NASM0
5152
REAL(KIND=JPRB), DIMENSION(1, SIZE(PGPT)) :: ZSPBUF !size over-evaluated
5253
REAL(KIND=JPRB), DIMENSION(SIZE(PGPT), 1, 1) :: ZGPBUF
53-
REAL(KIND=8) :: ZDELTAX, ZDELTAY
54+
REAL(KIND=REAL64) :: ZDELTAX, ZDELTAY
5455

5556
#include "trans_inq.h"
5657
#include "dir_trans.h"

src/ectrans4py/gp2sp_lam4py.F90

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,20 @@ SUBROUTINE GP2SP_LAM4PY(KRETURNCODE, KSIZE, KSIZEI, KSIZEJ, KPHYSICALSIZEI, KPHY
2424
! March, 2016, A.Mary: LREORDER
2525
!
2626
! I. Dummy arguments declaration
27+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
2728
USE PARKIND1, ONLY : JPRB
2829
USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_BOOL
2930
IMPLICIT NONE
30-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
31-
INTEGER(KIND=8), INTENT(IN) :: KSIZE, KSIZEI, KSIZEJ
32-
INTEGER(KIND=8), INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
33-
INTEGER(KIND=8), INTENT(IN) :: KTRUNCX, KTRUNCY
34-
INTEGER(KIND=8), INTENT(IN) :: KNUMMAXRESOL
35-
REAL(KIND=8), INTENT(IN) :: PDELTAX
36-
REAL(KIND=8), INTENT(IN) :: PDELTAY
31+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
32+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZE, KSIZEI, KSIZEJ
33+
INTEGER(KIND=INT64), INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
34+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNCX, KTRUNCY
35+
INTEGER(KIND=INT64), INTENT(IN) :: KNUMMAXRESOL
36+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAX
37+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAY
3738
LOGICAL(KIND=C_BOOL), INTENT(IN) :: LREORDER
38-
REAL(KIND=8), DIMENSION(KSIZEI*KSIZEJ), INTENT(IN) :: PGPT
39-
REAL(KIND=8), DIMENSION(KSIZE), INTENT(OUT) :: PSPEC
39+
REAL(KIND=REAL64), DIMENSION(KSIZEI*KSIZEJ), INTENT(IN) :: PGPT
40+
REAL(KIND=REAL64), DIMENSION(KSIZE), INTENT(OUT) :: PSPEC
4041
!
4142
! II. Local variables declaration
4243
INTEGER, DIMENSION(0:KTRUNCX) :: IESM0

src/ectrans4py/sp2gp_fft1d4py.F90

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,20 @@ SUBROUTINE SP2GP_FFT1D4PY(KSIZES, KTRUNC, PSPEC, KSIZEG, PGPT)
2020
!
2121
! I. Dummy arguments declaration
2222

23+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
2324
USE TPM_FFTW_DP, ONLY: EXEC_FFTW
2425

2526
IMPLICIT NONE
2627

27-
INTEGER(KIND=8), INTENT(IN) :: KSIZES
28-
INTEGER(KIND=8), INTENT(IN) :: KTRUNC
29-
REAL(KIND=8), DIMENSION(KSIZES), INTENT(IN) :: PSPEC
30-
INTEGER(KIND=8), INTENT(IN) :: KSIZEG
31-
REAL(KIND=8), DIMENSION(KSIZEG), INTENT(OUT) :: PGPT
28+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZES
29+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNC
30+
REAL(KIND=REAL64), DIMENSION(KSIZES), INTENT(IN) :: PSPEC
31+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZEG
32+
REAL(KIND=REAL64), DIMENSION(KSIZEG), INTENT(OUT) :: PGPT
3233

33-
INTEGER(KIND=8) :: NFTM, NDGLSUR
34-
REAL(KIND=8), DIMENSION(:,:), ALLOCATABLE :: SP2
35-
INTEGER(KIND=8), PARAMETER :: NZERO=0
34+
INTEGER(KIND=INT64) :: NFTM, NDGLSUR
35+
REAL(KIND=REAL64), DIMENSION(:,:), ALLOCATABLE :: SP2
36+
INTEGER(KIND=INT64), PARAMETER :: NZERO=0
3637

3738
NDGLSUR = KSIZEG+MOD(KSIZEG,2)+2
3839
NFTM = 2*(KTRUNC+1)
@@ -48,16 +49,16 @@ SUBROUTINE SP2GP_FFT1D4PY(KSIZES, KTRUNC, PSPEC, KSIZEG, PGPT)
4849
! and utilities/pinuts/module/array_lib_mod.F90
4950

5051
FUNCTION CONVRT2FFT(IN,X,Y,N) RESULT(OU)
51-
REAL(KIND=8),DIMENSION(:),INTENT(IN) :: IN
52-
INTEGER(KIND=8),INTENT(IN) :: X, Y, N
53-
REAL(KIND=8),DIMENSION(N*2*(X+1)) :: OU
52+
REAL(KIND=REAL64),DIMENSION(:),INTENT(IN) :: IN
53+
INTEGER(KIND=INT64),INTENT(IN) :: X, Y, N
54+
REAL(KIND=REAL64),DIMENSION(N*2*(X+1)) :: OU
5455

55-
INTEGER(KIND=8),DIMENSION(2*(X+1),(N/2)) :: MINQ
56-
INTEGER(KIND=8),DIMENSION((N/2),2*(X+1)) :: TMINQ
57-
REAL(KIND=8),DIMENSION(2*(X+1),(N/2)) :: OMINQ, EMINQ
58-
REAL(KIND=8),DIMENSION((N/2),2*(X+1)) :: TOMINQ, TEMINQ
59-
REAL(KIND=8),DIMENSION(N*(X+1)) :: OINI, EINI
60-
REAL(KIND=8), PARAMETER :: ZZERO=0.0
56+
INTEGER(KIND=INT64),DIMENSION(2*(X+1),(N/2)) :: MINQ
57+
INTEGER(KIND=INT64),DIMENSION((N/2),2*(X+1)) :: TMINQ
58+
REAL(KIND=REAL64),DIMENSION(2*(X+1),(N/2)) :: OMINQ, EMINQ
59+
REAL(KIND=REAL64),DIMENSION((N/2),2*(X+1)) :: TOMINQ, TEMINQ
60+
REAL(KIND=REAL64),DIMENSION(N*(X+1)) :: OINI, EINI
61+
REAL(KIND=REAL64), PARAMETER :: ZZERO=0.0
6162

6263
CALL SPLIT_ODEV(IN,OINI,EINI)
6364
MINQ = MASQ(X,Y,N)
@@ -72,12 +73,12 @@ FUNCTION CONVRT2FFT(IN,X,Y,N) RESULT(OU)
7273
END FUNCTION CONVRT2FFT
7374

7475
FUNCTION MASQ(X,Y,N) RESULT(T)
75-
INTEGER(KIND=8),INTENT(IN) :: X, Y, N
76-
INTEGER(KIND=8),DIMENSION(1:2*(X+1),1:(N/2)) :: T
76+
INTEGER(KIND=INT64),INTENT(IN) :: X, Y, N
77+
INTEGER(KIND=INT64),DIMENSION(1:2*(X+1),1:(N/2)) :: T
7778

78-
INTEGER(KIND=8) :: I, J
79-
INTEGER(KIND=8),DIMENSION(0:X) :: KM
80-
INTEGER(KIND=8),DIMENSION(0:Y) :: KN
79+
INTEGER(KIND=INT64) :: I, J
80+
INTEGER(KIND=INT64),DIMENSION(0:X) :: KM
81+
INTEGER(KIND=INT64),DIMENSION(0:Y) :: KN
8182
CALL ELLIPS(INT(X,4),INT(Y,4),INT(KN,4),INT(KM,4))
8283
T = 0
8384
DO I=0,Y
@@ -88,10 +89,10 @@ FUNCTION MASQ(X,Y,N) RESULT(T)
8889
END FUNCTION MASQ
8990

9091
FUNCTION MIX_ODEV(TO,TE) RESULT(T)
91-
REAL(KIND=8),DIMENSION(:),INTENT(IN) :: TO,TE
92-
REAL(KIND=8),DIMENSION(SIZE(TO)+SIZE(TE)) :: T
92+
REAL(KIND=REAL64),DIMENSION(:),INTENT(IN) :: TO,TE
93+
REAL(KIND=REAL64),DIMENSION(SIZE(TO)+SIZE(TE)) :: T
9394

94-
INTEGER(KIND=8) :: I
95+
INTEGER(KIND=INT64) :: I
9596

9697
DO I=1,(SIZE(TO)+SIZE(TE))/2
9798
T((2*I)-1)=TE(I)
@@ -100,10 +101,10 @@ FUNCTION MIX_ODEV(TO,TE) RESULT(T)
100101
END FUNCTION MIX_ODEV
101102

102103
SUBROUTINE SPLIT_ODEV(T,TO,TE)
103-
REAL(KIND=8),DIMENSION(:),INTENT(IN) :: T
104-
REAL(KIND=8),DIMENSION(SIZE(T)/2),INTENT(OUT) :: TO,TE
104+
REAL(KIND=REAL64),DIMENSION(:),INTENT(IN) :: T
105+
REAL(KIND=REAL64),DIMENSION(SIZE(T)/2),INTENT(OUT) :: TO,TE
105106

106-
INTEGER(KIND=8) :: I
107+
INTEGER(KIND=INT64) :: I
107108

108109
DO I=1,SIZE(T)/2
109110
TO(I)=T(2*I)

src/ectrans4py/sp2gp_gauss4py.F90

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,24 @@ SUBROUTINE SP2GP_GAUSS4PY(KRETURNCODE, KSIZEJ, KTRUNC, KNUMMAXRESOL, KGPTOT, KSL
2727
! Sept., 2016, A.Mary: LGRADIENT
2828
!
2929
! I. Dummy arguments declaration
30+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
3031
USE PARKIND1, ONLY : JPRB
3132
USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_BOOL
3233
IMPLICIT NONE
33-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
34-
INTEGER(KIND=8), INTENT(IN) :: KSIZEJ
35-
INTEGER(KIND=8), INTENT(IN) :: KTRUNC
36-
INTEGER(KIND=8), INTENT(IN) :: KNUMMAXRESOL
37-
INTEGER(KIND=8), INTENT(IN) :: KGPTOT
38-
INTEGER(KIND=8), INTENT(IN) :: KSLOEN
39-
INTEGER(KIND=8), DIMENSION(KSLOEN), INTENT(IN) :: KLOEN
40-
INTEGER(KIND=8), INTENT(IN) :: KSIZE
34+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
35+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZEJ
36+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNC
37+
INTEGER(KIND=INT64), INTENT(IN) :: KNUMMAXRESOL
38+
INTEGER(KIND=INT64), INTENT(IN) :: KGPTOT
39+
INTEGER(KIND=INT64), INTENT(IN) :: KSLOEN
40+
INTEGER(KIND=INT64), DIMENSION(KSLOEN), INTENT(IN) :: KLOEN
41+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZE
4142
LOGICAL(KIND=C_BOOL), INTENT(IN) :: LGRADIENT
4243
LOGICAL(KIND=C_BOOL), INTENT(IN) :: LREORDER
43-
REAL(KIND=8), DIMENSION(KSIZE), INTENT(IN) :: PSPEC
44-
REAL(KIND=8), DIMENSION(KGPTOT), INTENT(OUT) :: PGPT
45-
REAL(KIND=8), DIMENSION(KGPTOT), INTENT(OUT) :: PGPTM
46-
REAL(KIND=8), DIMENSION(KGPTOT), INTENT(OUT) :: PGPTL
44+
REAL(KIND=REAL64), DIMENSION(KSIZE), INTENT(IN) :: PSPEC
45+
REAL(KIND=REAL64), DIMENSION(KGPTOT), INTENT(OUT) :: PGPT
46+
REAL(KIND=REAL64), DIMENSION(KGPTOT), INTENT(OUT) :: PGPTM
47+
REAL(KIND=REAL64), DIMENSION(KGPTOT), INTENT(OUT) :: PGPTL
4748
!
4849
! II. Local variables declaration
4950
INTEGER, DIMENSION(SIZE(KLOEN)) :: ILOEN
@@ -55,9 +56,9 @@ SUBROUTINE SP2GP_GAUSS4PY(KRETURNCODE, KSIZEJ, KTRUNC, KNUMMAXRESOL, KGPTOT, KSL
5556
INTEGER :: IIDENTRESOL
5657
INTEGER :: JI, JM, JN
5758
INTEGER, DIMENSION(0:KTRUNC) :: NASM0
58-
REAL(KIND=8), DIMENSION(1, KSIZE) :: ZSPBUF
59+
REAL(KIND=REAL64), DIMENSION(1, KSIZE) :: ZSPBUF
5960
REAL(KIND=JPRB), DIMENSION(:,:,:), ALLOCATABLE :: ZGPBUF
60-
REAL(KIND=8) :: ZDELTAX, ZDELTAY
61+
REAL(KIND=REAL64) :: ZDELTAX, ZDELTAY
6162
#include "trans_inq.h"
6263
#include "inv_trans.h"
6364

src/ectrans4py/sp2gp_lam4py.F90

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,29 +28,30 @@ SUBROUTINE SP2GP_LAM4PY(KRETURNCODE, KSIZEI, KSIZEJ, KPHYSICALSIZEI, KPHYSICALSI
2828
! March, 2016, A.Mary: LREORDER
2929
!
3030
! I. Dummy arguments declaration
31+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
3132
USE PARKIND1, ONLY : JPRB
3233
USE, INTRINSIC :: ISO_C_BINDING, ONLY: C_BOOL
3334
IMPLICIT NONE
34-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
35-
INTEGER(KIND=8), INTENT(IN) :: KSIZEI, KSIZEJ
36-
INTEGER(KIND=8), INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
37-
INTEGER(KIND=8), INTENT(IN) :: KTRUNCX, KTRUNCY
38-
INTEGER(KIND=8), INTENT(IN) :: KNUMMAXRESOL
39-
INTEGER(KIND=8), INTENT(IN) :: KSIZE
35+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
36+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZEI, KSIZEJ
37+
INTEGER(KIND=INT64), INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
38+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNCX, KTRUNCY
39+
INTEGER(KIND=INT64), INTENT(IN) :: KNUMMAXRESOL
40+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZE
4041
LOGICAL(KIND=C_BOOL), INTENT(IN) :: LGRADIENT
4142
LOGICAL(KIND=C_BOOL), INTENT(IN) :: LREORDER
42-
REAL(KIND=8), INTENT(IN) :: PDELTAX
43-
REAL(KIND=8), INTENT(IN) :: PDELTAY
44-
REAL(KIND=8), DIMENSION(KSIZE), INTENT(IN) :: PSPEC
45-
REAL(KIND=8), DIMENSION(KSIZEI*KSIZEJ), INTENT(OUT) :: PGPT
46-
REAL(KIND=8), DIMENSION(KSIZEI*KSIZEJ), INTENT(OUT) :: PGPTM
47-
REAL(KIND=8), DIMENSION(KSIZEI*KSIZEJ), INTENT(OUT) :: PGPTL
43+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAX
44+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAY
45+
REAL(KIND=REAL64), DIMENSION(KSIZE), INTENT(IN) :: PSPEC
46+
REAL(KIND=REAL64), DIMENSION(KSIZEI*KSIZEJ), INTENT(OUT) :: PGPT
47+
REAL(KIND=REAL64), DIMENSION(KSIZEI*KSIZEJ), INTENT(OUT) :: PGPTM
48+
REAL(KIND=REAL64), DIMENSION(KSIZEI*KSIZEJ), INTENT(OUT) :: PGPTL
4849
!
4950
! II. Local variables declaration
5051
INTEGER, DIMENSION(0:KTRUNCX) :: IESM0
5152
INTEGER :: IGPTOT, ISPEC
5253
INTEGER, DIMENSION(0:KTRUNCY) :: ISPECINI, ISPECEND
53-
REAL(KIND=8), DIMENSION(1, KSIZE) :: ZSPBUF
54+
REAL(KIND=REAL64), DIMENSION(1, KSIZE) :: ZSPBUF
5455
REAL(KIND=JPRB), DIMENSION(KSIZEI*KSIZEJ, 3, 1) :: ZGPBUF
5556
INTEGER :: JI, JM, JN, IINDEX, IIDENTRESOL
5657
LOGICAL :: LLSTOP

src/ectrans4py/spec_setup4py.F90

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,19 @@ SUBROUTINE SPEC_SETUP4PY(KRETURNCODE, KSIZEI, KSIZEJ, KPHYSICALSIZEI, KPHYSICALS
2727
! 31 Jan 2019 R. El Khatib fix for single precision compilation
2828
!
2929
! I. Dummy arguments declaration
30+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
3031
USE PARKIND1, ONLY : JPRB
3132
IMPLICIT NONE
32-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
33+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
3334
INTEGER, INTENT(IN) :: KSIZEI, KSIZEJ
3435
INTEGER, INTENT(IN) :: KPHYSICALSIZEI, KPHYSICALSIZEJ
3536
INTEGER, INTENT(IN) :: KTRUNCX, KTRUNCY
3637
INTEGER, INTENT(IN) :: KNUMMAXRESOL
3738
INTEGER, DIMENSION(KSIZEKLOEN), INTENT(IN) :: KLOEN
3839
LOGICAL, INTENT(IN) :: LDLAM
3940
INTEGER, INTENT(IN) :: KSIZEKLOEN
40-
REAL(KIND=8), INTENT(IN) :: PDELTAX
41-
REAL(KIND=8), INTENT(IN) :: PDELTAY
41+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAX
42+
REAL(KIND=REAL64), INTENT(IN) :: PDELTAY
4243
INTEGER, INTENT(OUT) :: KIDENTRESOL
4344
LOGICAL, INTENT(OUT) :: LDSTOP
4445
!
@@ -48,17 +49,17 @@ SUBROUTINE SPEC_SETUP4PY(KRETURNCODE, KSIZEI, KSIZEJ, KPHYSICALSIZEI, KPHYSICALS
4849
LOGICAL, SAVE :: LLFIRSTCALL=.TRUE.
4950
LOGICAL :: LLNEWRESOL
5051
INTEGER, SAVE :: INBRESOL=0
51-
INTEGER(KIND=8) :: ICODEILOEN
52+
INTEGER(KIND=INT64) :: ICODEILOEN
5253
INTEGER, SAVE :: INUMMAXRESOLSAVE=-1
5354
INTEGER, DIMENSION(:), ALLOCATABLE, SAVE :: ITRUNCXSAVE, ITRUNCYSAVE, &
5455
IPHYSICALSIZEISAVE, &
5556
IPHYSICALSIZEJSAVE, &
5657
ISIZEISAVE, ISIZEJSAVE, &
5758
IIDENTRESOLSAVE
58-
INTEGER(KIND=8), DIMENSION(:), ALLOCATABLE, SAVE :: ILOENSAVE
59-
REAL(KIND=8), DIMENSION(:), ALLOCATABLE, SAVE :: ZDELTAXSAVE, &
59+
INTEGER(KIND=INT64), DIMENSION(:), ALLOCATABLE, SAVE :: ILOENSAVE
60+
REAL(KIND=REAL64), DIMENSION(:), ALLOCATABLE, SAVE :: ZDELTAXSAVE, &
6061
ZDELTAYSAVE
61-
REAL(KIND=8) :: ZEXWN, ZEYWN
62+
REAL(KIND=REAL64) :: ZEXWN, ZEYWN
6263

6364
#include "setup_trans0.h"
6465
#include "esetup_trans.h"

src/ectrans4py/trans_inq4py.F90

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,17 @@ SUBROUTINE TRANS_INQ4PY(KRETURNCODE, KSIZEJ, KTRUNC, KSLOEN, KLOEN, KNUMMAXRESOL
2020
! 6 Jan., S. Riette: w_spec_setup interfaced modified
2121
!
2222
! I. Dummy arguments declaration
23+
USE ISO_FORTRAN_ENV, ONLY: INT64, REAL64
2324
IMPLICIT NONE
24-
INTEGER(KIND=8), INTENT(OUT) :: KRETURNCODE
25-
INTEGER(KIND=8), INTENT(IN) :: KSIZEJ
26-
INTEGER(KIND=8), INTENT(IN) :: KTRUNC
27-
INTEGER(KIND=8), INTENT(IN) :: KSLOEN
28-
INTEGER(KIND=8), DIMENSION(KSLOEN), INTENT(IN) :: KLOEN
29-
INTEGER(KIND=8), INTENT(IN) :: KNUMMAXRESOL
30-
INTEGER(KIND=8), INTENT(OUT) :: KGPTOT
31-
INTEGER(KIND=8), INTENT(OUT) :: KSPEC
32-
INTEGER(KIND=8), DIMENSION(KSLOEN), INTENT(OUT) :: KNMENG
25+
INTEGER(KIND=INT64), INTENT(OUT) :: KRETURNCODE
26+
INTEGER(KIND=INT64), INTENT(IN) :: KSIZEJ
27+
INTEGER(KIND=INT64), INTENT(IN) :: KTRUNC
28+
INTEGER(KIND=INT64), INTENT(IN) :: KSLOEN
29+
INTEGER(KIND=INT64), DIMENSION(KSLOEN), INTENT(IN) :: KLOEN
30+
INTEGER(KIND=INT64), INTENT(IN) :: KNUMMAXRESOL
31+
INTEGER(KIND=INT64), INTENT(OUT) :: KGPTOT
32+
INTEGER(KIND=INT64), INTENT(OUT) :: KSPEC
33+
INTEGER(KIND=INT64), DIMENSION(KSLOEN), INTENT(OUT) :: KNMENG
3334
!
3435
! II. Local variables declaration
3536
INTEGER, DIMENSION(SIZE(KLOEN)) :: ILOEN
@@ -41,7 +42,7 @@ SUBROUTINE TRANS_INQ4PY(KRETURNCODE, KSIZEJ, KTRUNC, KSLOEN, KLOEN, KNUMMAXRESOL
4142
INTEGER :: IIDENTRESOL
4243
INTEGER :: IGPTOT, ISPEC
4344
INTEGER, DIMENSION(SIZE(KLOEN)) :: INMENG
44-
REAL(KIND=8) :: ZDELTAX, ZDELTAY
45+
REAL(KIND=REAL64) :: ZDELTAX, ZDELTAY
4546
#include "trans_inq.h"
4647

4748
ILOEN(:)=KLOEN(:)

0 commit comments

Comments
 (0)