Line |
Branch |
Exec |
Source |
1 |
|
|
MODULE PE2SET_MOD |
2 |
|
|
CONTAINS |
3 |
|
✗ |
SUBROUTINE PE2SET(KPE,KPRGPNS,KPRGPEW,KPRTRW,KPRTRV) |
4 |
|
|
|
5 |
|
|
|
6 |
|
|
USE PARKIND1 ,ONLY : JPIM ,JPRB |
7 |
|
|
|
8 |
|
|
USE TPM_DISTR |
9 |
|
|
USE EQ_REGIONS_MOD |
10 |
|
|
USE ABORT_TRANS_MOD |
11 |
|
|
|
12 |
|
|
|
13 |
|
|
IMPLICIT NONE |
14 |
|
|
INTEGER(KIND=JPIM),INTENT(IN) :: KPE |
15 |
|
|
INTEGER(KIND=JPIM),INTENT(OUT) :: KPRGPNS,KPRGPEW,KPRTRW,KPRTRV |
16 |
|
|
|
17 |
|
|
INTEGER(KIND=JPIM) :: IPE,JA |
18 |
|
|
! ------------------------------------------------------------------ |
19 |
|
|
|
20 |
|
|
!* 1. Check input argument for validity |
21 |
|
|
! --------------------------------- |
22 |
|
|
|
23 |
|
✗ |
IF(KPE <= 0.OR.KPE > NPROC) THEN |
24 |
|
✗ |
WRITE(*,'(A,2I8)') ' PE2SET INVALID ARGUMENT ',KPE,NPROC |
25 |
|
✗ |
CALL ABORT_TRANS(' PE2SET INVALID ARGUMENT ') |
26 |
|
|
|
27 |
|
|
ELSE |
28 |
|
|
|
29 |
|
|
!* 2. Compute output parameters |
30 |
|
|
! ------------------------- |
31 |
|
|
|
32 |
|
✗ |
IF( LEQ_REGIONS )THEN |
33 |
|
✗ |
KPRGPNS=1 |
34 |
|
|
IPE=KPE |
35 |
|
✗ |
DO JA=1,N_REGIONS_NS |
36 |
|
✗ |
IF( IPE > N_REGIONS(JA) )THEN |
37 |
|
✗ |
IPE=IPE-N_REGIONS(JA) |
38 |
|
✗ |
KPRGPNS=KPRGPNS+1 |
39 |
|
|
CYCLE |
40 |
|
|
ENDIF |
41 |
|
✗ |
KPRGPEW=IPE |
42 |
|
✗ |
EXIT |
43 |
|
|
ENDDO |
44 |
|
|
ELSE |
45 |
|
✗ |
KPRGPEW=MOD(KPE-1,NPRGPEW)+1 |
46 |
|
✗ |
KPRGPNS=(KPE-1)/NPRGPEW+1 |
47 |
|
|
ENDIF |
48 |
|
✗ |
KPRTRV =MOD(KPE-1,NPRTRV)+1 |
49 |
|
✗ |
KPRTRW =(KPE-1)/NPRTRV+1 |
50 |
|
|
|
51 |
|
|
ENDIF |
52 |
|
|
|
53 |
|
✗ |
END SUBROUTINE PE2SET |
54 |
|
|
END MODULE PE2SET_MOD |
55 |
|
|
|