12
12
13
13
SUBROUTINE SETUP_TRANS (KSMAX ,KDGL ,KDLON ,KLOEN ,LDSPLIT ,PSTRET ,&
14
14
& KTMAX ,KRESOL ,PWEIGHT ,LDGRIDONLY ,LDUSERPNM ,LDKEEPRPNM ,LDUSEFLT ,&
15
- & LDSPSETUPONLY ,LDPNMONLY ,LDUSEFFTW ,&
15
+ & LDSPSETUPONLY ,LDPNMONLY ,LDUSEFFTW ,LD_ALL_FFTW , &
16
16
& LDLL ,LDSHIFTLL ,CDIO_LEGPOL ,CDLEGPOLFNAME ,KLEGPOLPTR ,KLEGPOLPTR_LEN )
17
17
18
18
! **** *SETUP_TRANS* - Setup transform package for specific resolution
@@ -37,7 +37,8 @@ SUBROUTINE SETUP_TRANS(KSMAX,KDGL,KDLON,KLOEN,LDSPLIT,PSTRET,&
37
37
! LDSPLIT - true if split latitudes in grid-point space [false]
38
38
! KTMAX - truncation order for tendencies?
39
39
! KRESOL - the resolution identifier
40
- ! PWEIGHT - the weight per grid-point (for a weighted distribution)
40
+ ! PWEIGHT - the weight per grid-point (for a weighted distribution);
41
+ ! Note, only seems to be used from within enkf
41
42
! LDGRIDONLY - true if only grid space is required
42
43
43
44
! KSMAX,KDGL,KTMAX and KLOEN are GLOBAL variables desribing the resolution
@@ -53,7 +54,8 @@ SUBROUTINE SETUP_TRANS(KSMAX,KDGL,KDLON,KLOEN,LDSPLIT,PSTRET,&
53
54
! LDKEEPRPNM - Keep Legendre Polynomials (only applicable when using
54
55
! FLT, otherwise always kept)
55
56
! LDPNMONLY - Compute the Legendre polynomials only, not the FFTs.
56
- ! LDUSEFFTW - Use FFTW for FFTs
57
+ ! LDUSEFFTW - Use FFTW for FFTs (option deprecated - FFTW is now mandatory)
58
+ ! LD_ALL_FFTW : T to transform all fields in one call, F to transforms fields one after another
57
59
! LDLL - Setup second set of input/output latitudes
58
60
! the number of input/output latitudes to transform is equal KDGL
59
61
! or KDGL+2 in the case that includes poles + equator
@@ -96,6 +98,7 @@ SUBROUTINE SETUP_TRANS(KSMAX,KDGL,KDLON,KLOEN,LDSPLIT,PSTRET,&
96
98
! G. Mozdzynski : Jun 2015 Support alternative FFTs to FFTW
97
99
! M.Hamrud/W.Deconinck : July 2015 IO options for Legenndre polynomials
98
100
! R. El Khatib 07-Mar-2016 Better flexibility for Legendre polynomials computation in stretched mode
101
+ ! R. El Khatib 08-Jun-2023 LALL_FFTW for better flexibility
99
102
! ------------------------------------------------------------------
100
103
101
104
USE PARKIND1, ONLY: JPIM, JPRB, JPRD
@@ -145,6 +148,7 @@ SUBROUTINE SETUP_TRANS(KSMAX,KDGL,KDLON,KLOEN,LDSPLIT,PSTRET,&
145
148
REAL (KIND= JPRD) ,OPTIONAL ,INTENT (IN ) :: PSTRET
146
149
LOGICAL ,OPTIONAL ,INTENT (IN ):: LDGRIDONLY
147
150
LOGICAL ,OPTIONAL ,INTENT (IN ):: LDUSEFLT
151
+ LOGICAL ,OPTIONAL ,INTENT (IN ):: LD_ALL_FFTW
148
152
LOGICAL ,OPTIONAL ,INTENT (IN ):: LDUSERPNM
149
153
LOGICAL ,OPTIONAL ,INTENT (IN ):: LDKEEPRPNM
150
154
LOGICAL ,OPTIONAL ,INTENT (IN ):: LDSPSETUPONLY
@@ -394,6 +398,10 @@ SUBROUTINE SETUP_TRANS(KSMAX,KDGL,KDLON,KLOEN,LDSPLIT,PSTRET,&
394
398
! Setup distribution independent dimensions
395
399
CALL SETUP_DIMS
396
400
401
+ IF (PRESENT (LD_ALL_FFTW)) THEN
402
+ WRITE (NOUT,* ) ' SETUP_TRANS: LD_ALL_FFTW option is not relevant for GPUs'
403
+ ENDIF
404
+
397
405
S% LSOUTHPNM= .FALSE.
398
406
IF (PRESENT (PSTRET)) THEN
399
407
IF (ABS (PSTRET-1.0_JPRBT )>100._JPRBT * EPSILON (1._JPRBT )) THEN
0 commit comments