GCC Code Coverage Report


Directory: ./
File: rad/sump_trans_preleg_mod.f90
Date: 2022-01-11 19:19:34
Exec Total Coverage
Lines: 0 66 0.0%
Branches: 0 160 0.0%

Line Branch Exec Source
1 MODULE SUMP_TRANS_PRELEG_MOD
2 CONTAINS
3 ✗ SUBROUTINE SUMP_TRANS_PRELEG
4
5 ! Set up distributed environment for the transform package (part 1)
6
7 USE PARKIND1 ,ONLY : JPIM ,JPRB
8
9 USE TPM_GEN
10 USE TPM_DIM
11 USE TPM_DISTR
12
13 USE SUWAVEDI_MOD
14 USE ABORT_TRANS_MOD
15
16 IMPLICIT NONE
17
18 INTEGER(KIND=JPIM) :: JA,JJ,JM,JMLOC,ILATPP,IRESTL,IMLOC,IDT,INM
19
20 ✗ INTEGER(KIND=JPIM) :: IMYMS(R%NSMAX+1),INUMTPP(NPRTRW)
21 INTEGER(KIND=JPIM) :: IDUMI1,IDUMI2,IDUMI3
22 INTEGER(KIND=JPIM) :: IDUM2(0:R%NSMAX), IDUM3(NPRTRW+1), IDUM4(R%NSMAX+1)
23
24 LOGICAL :: LLP1,LLP2
25
26 ! ------------------------------------------------------------------
27
28 ✗ LLP1 = NPRINTLEV>0
29 LLP2 = NPRINTLEV>1
30 ✗ IF(LLP1) WRITE(NOUT,*) '=== ENTER ROUTINE SUMP_TRANS_PRELEG ==='
31
32 !* 1. Initialize partitioning of wave numbers to PEs !
33 ! ----------------------------------------------
34
35 ✗ ALLOCATE(D%NASM0(0:R%NSMAX))
36 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NASM0 ',SIZE(D%NASM0 ),SHAPE(D%NASM0 )
37 ✗ ALLOCATE(D%NATM0(0:R%NTMAX))
38 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NATM0 ',SIZE(D%NATM0 ),SHAPE(D%NATM0 )
39 ✗ ALLOCATE(D%NUMPP(NPRTRW))
40 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NUMPP ',SIZE(D%NUMPP ),SHAPE(D%NUMPP )
41 ✗ ALLOCATE(D%NPOSSP(NPRTRW+1))
42 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NPOSSP',SIZE(D%NPOSSP ),SHAPE(D%NPOSSP )
43 ✗ ALLOCATE(D%NPROCM(0:R%NSMAX))
44 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NPROCM',SIZE(D%NPROCM ),SHAPE(D%NPROCM )
45 ✗ ALLOCATE(D%NPTRMS(NPRTRW))
46 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NPTRMS ',SIZE(D%NPTRMS ),SHAPE(D%NPTRMS )
47 ✗ ALLOCATE(D%NALLMS(R%NSMAX+1))
48 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NALLMS ',SIZE(D%NALLMS ),SHAPE(D%NALLMS )
49 ✗ ALLOCATE(D%NDIM0G(0:R%NSMAX))
50 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NDIM0G ',SIZE(D%NDIM0G ),SHAPE(D%NDIM0G )
51
52 CALL SUWAVEDI(R%NSMAX,R%NTMAX,NPRTRW,MYSETW,&
53 &D%NASM0,D%NSPOLEGL,D%NPROCM,D%NUMPP,&
54 &D%NSPEC,D%NSPEC2,D%NSPEC2MX,D%NPOSSP,IMYMS,&
55 ✗ &D%NPTRMS,D%NALLMS,D%NDIM0G)
56 CALL SUWAVEDI(R%NTMAX,R%NTMAX,NPRTRW,MYSETW,&
57 ✗ &KASM0=D%NATM0,KUMPP=INUMTPP,KSPEC2=D%NTPEC2)
58
59 ✗ D%NUMP = D%NUMPP (MYSETW)
60 ✗ ALLOCATE(D%MYMS(D%NUMP))
61 ✗ IF(LLP2)WRITE(NOUT,9) 'D%MYMS ',SIZE(D%MYMS ),SHAPE(D%MYMS )
62 ✗ D%MYMS(:) = IMYMS(1:D%NUMP)
63 ✗ D%NUMTP = INUMTPP(MYSETW)
64
65 ✗ IF (D%NUMP == 0) THEN
66 WRITE(NERR,'("SUMP: NPRTRW TOO LARGE FOR SPECTRAL RESOLUTION",/,&
67 &"NOTE MAX VALUE FOR Tnnn CASE IS nnn+1",/,&
68 ✗ &"MORE PROCESSORS CAN BE USED BY INCREASING NPRTRV")')
69 ✗ CALL ABORT_TRANS('NPRTRW TOO LARGE FOR SPECTRAL RESOLUTION')
70 ENDIF
71
72 ✗ ALLOCATE(D%NLATLS(NPRTRW))
73 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NLATLS',SIZE(D%NLATLS ),SHAPE(D%NLATLS )
74 ✗ ALLOCATE(D%NLATLE(NPRTRW))
75 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NLATLE',SIZE(D%NLATLE ),SHAPE(D%NLATLE )
76
77 ✗ D%NLATLS(:) = 9999
78 ✗ D%NLATLE(:) = -1
79
80 ✗ ILATPP = R%NDGNH/NPRTRW
81 ✗ IRESTL = R%NDGNH-NPRTRW*ILATPP
82 ✗ DO JA=1,NPRTRW
83 ✗ IF (JA > IRESTL) THEN
84 ✗ D%NLATLS(JA) = IRESTL*(ILATPP+1)+(JA-IRESTL-1)*ILATPP+1
85 ✗ D%NLATLE(JA) = D%NLATLS(JA)+ILATPP-1
86 ELSE
87 ✗ D%NLATLS(JA) = (JA-1)*(ILATPP+1)+1
88 ✗ D%NLATLE(JA) = D%NLATLS(JA)+ILATPP
89 ENDIF
90 ENDDO
91
92 ✗ IF (LLP1) THEN
93 ✗ WRITE(NOUT,'('' D%NLATLS '')')
94 ✗ WRITE(NOUT,'(20(1X,I4))')(D%NLATLS(JJ),JJ=1,NPRTRW)
95 ✗ WRITE(NOUT,'('' D%NLATLE '')')
96 ✗ WRITE(NOUT,'(20(1X,I4))')(D%NLATLE(JJ),JJ=1,NPRTRW)
97 ENDIF
98
99 ✗ ALLOCATE(D%NPMT(0:R%NSMAX))
100 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NPMT ',SIZE(D%NPMT ),SHAPE(D%NPMT )
101 ✗ ALLOCATE(D%NPMS(0:R%NSMAX))
102 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NPMS ',SIZE(D%NPMS ),SHAPE(D%NPMS )
103 ✗ ALLOCATE(D%NPMG(0:R%NSMAX))
104 ✗ IF(LLP2)WRITE(NOUT,9) 'D%NPMG ',SIZE(D%NPMG ),SHAPE(D%NPMG )
105 ✗ IDT = R%NTMAX-R%NSMAX
106 INM = 0
107 ✗ DO JMLOC=1,D%NUMP
108 ✗ IMLOC = D%MYMS(JMLOC)
109 ✗ D%NPMT(IMLOC) = INM
110 ✗ D%NPMS(IMLOC) = INM+IDT
111 ✗ INM = INM+R%NTMAX+2-IMLOC
112 ENDDO
113 INM = 0
114 ✗ DO JM=0,R%NSMAX
115 ✗ D%NPMG(JM) = INM
116 ✗ INM = INM+R%NTMAX+2-JM
117 ENDDO
118
119 ✗ D%NLEI3D = (R%NLEI3-1)/NPRTRW+1
120
121 ! ------------------------------------------------------------------
122 9 FORMAT(1X,'ARRAY ',A10,' ALLOCATED ',8I8)
123
124 ✗ END SUBROUTINE SUMP_TRANS_PRELEG
125 END MODULE SUMP_TRANS_PRELEG_MOD
126