| Line |
Branch |
Exec |
Source |
| 1 |
|
|
MODULE SETUP_GEOM_MOD |
| 2 |
|
|
CONTAINS |
| 3 |
|
✗ |
SUBROUTINE SETUP_GEOM |
| 4 |
|
|
|
| 5 |
|
|
USE PARKIND1 ,ONLY : JPIM ,JPRB |
| 6 |
|
|
|
| 7 |
|
|
USE TPM_GEN |
| 8 |
|
|
USE TPM_DIM |
| 9 |
|
|
USE TPM_FIELDS |
| 10 |
|
|
USE TPM_GEOMETRY |
| 11 |
|
|
|
| 12 |
|
|
IMPLICIT NONE |
| 13 |
|
|
|
| 14 |
|
✗ |
REAL(KIND=JPRB) :: ZSQM2(R%NDGL) |
| 15 |
|
✗ |
INTEGER(KIND=JPIM) :: IDGLU(0:R%NSMAX,R%NDGNH) |
| 16 |
|
|
INTEGER(KIND=JPIM) :: JGL,JM |
| 17 |
|
|
|
| 18 |
|
|
LOGICAL :: LLP1,LLP2 |
| 19 |
|
|
|
| 20 |
|
|
! ------------------------------------------------------------------ |
| 21 |
|
|
|
| 22 |
|
✗ |
LLP1 = NPRINTLEV>0 |
| 23 |
|
|
LLP2 = NPRINTLEV>1 |
| 24 |
|
|
|
| 25 |
|
✗ |
IF(LLP1) WRITE(NOUT,*) '=== ENTER ROUTINE SETUP_GEOM ===' |
| 26 |
|
|
|
| 27 |
|
✗ |
ALLOCATE (G%NMEN(R%NDGL)) |
| 28 |
|
✗ |
IF(LLP2)WRITE(NOUT,9) 'G%NMEN ',SIZE(G%NMEN ),SHAPE(G%NMEN ) |
| 29 |
|
|
|
| 30 |
|
✗ |
IF (G%LREDUCED_GRID) THEN |
| 31 |
|
✗ |
IF (G%LINEAR_GRID) THEN |
| 32 |
|
✗ |
ZSQM2(:) = 0.0_JPRB |
| 33 |
|
|
ELSE |
| 34 |
|
✗ |
ZSQM2(:) = F%R1MU2(:) |
| 35 |
|
|
ENDIF |
| 36 |
|
✗ |
G%NMEN(1) = MIN(R%NSMAX,INT(REAL(G%NLOEN(1)-1,JPRB)/(2.0_JPRB+ZSQM2(1)))) |
| 37 |
|
✗ |
DO JGL=2,R%NDGNH |
| 38 |
|
|
G%NMEN(JGL) = MIN(R%NSMAX,MAX(G%NMEN(JGL-1),& |
| 39 |
|
✗ |
&INT(REAL(G%NLOEN(JGL)-1,JPRB)/(2.0_JPRB+ ZSQM2(JGL))))) |
| 40 |
|
|
ENDDO |
| 41 |
|
|
! * SOUTHERN HEMISPHERE : |
| 42 |
|
✗ |
G%NMEN(R%NDGL) = MIN(R%NSMAX,INT(REAL(G%NLOEN(R%NDGL)-1,JPRB)/(2.0_JPRB+ZSQM2(R%NDGL)))) |
| 43 |
|
✗ |
DO JGL=R%NDGL-1, R%NDGNH+1, -1 |
| 44 |
|
|
G%NMEN(JGL) = MIN(R%NSMAX,MAX(G%NMEN(JGL+1),& |
| 45 |
|
✗ |
&INT(REAL(G%NLOEN(JGL)-1,JPRB)/(2.0_JPRB+ ZSQM2(JGL))))) |
| 46 |
|
|
ENDDO |
| 47 |
|
|
|
| 48 |
|
|
ELSE |
| 49 |
|
✗ |
G%NMEN(:) = R%NSMAX |
| 50 |
|
|
ENDIF |
| 51 |
|
✗ |
IF(LLP1) THEN |
| 52 |
|
✗ |
WRITE(NOUT,FMT='('' (JGL,G%NLOEN,G%NMEN) '')') |
| 53 |
|
|
WRITE(NOUT,FMT='(8(1X,''('',I4,I4,I4,'')''))')& |
| 54 |
|
✗ |
&(JGL,G%NLOEN(JGL),G%NMEN(JGL),JGL=1,R%NDGL) |
| 55 |
|
|
ENDIF |
| 56 |
|
✗ |
ALLOCATE(G%NDGLU(0:R%NSMAX)) |
| 57 |
|
✗ |
IF(LLP2)WRITE(NOUT,9) 'G%NDGLU ',SIZE(G%NDGLU ),SHAPE(G%NDGLU ) |
| 58 |
|
✗ |
IDGLU(:,:) = 0 |
| 59 |
|
✗ |
G%NDGLU(:) = 0 |
| 60 |
|
✗ |
DO JGL=1,R%NDGNH |
| 61 |
|
✗ |
DO JM=0,G%NMEN(JGL) |
| 62 |
|
✗ |
IDGLU(JM,JGL) = 1 |
| 63 |
|
|
ENDDO |
| 64 |
|
|
ENDDO |
| 65 |
|
✗ |
DO JM=0,R%NSMAX |
| 66 |
|
✗ |
DO JGL=1,R%NDGNH |
| 67 |
|
✗ |
G%NDGLU(JM) = G%NDGLU(JM)+IDGLU(JM,JGL) |
| 68 |
|
|
ENDDO |
| 69 |
|
|
ENDDO |
| 70 |
|
✗ |
IF(LLP1) THEN |
| 71 |
|
✗ |
WRITE(NOUT,FMT='('' (JM,G%NDGLU) '')') |
| 72 |
|
|
WRITE(NOUT,FMT='(10(1X,''('',I4,I4,'')''))')& |
| 73 |
|
✗ |
&(JM,G%NDGLU(JM),JM=0,R%NSMAX) |
| 74 |
|
|
ENDIF |
| 75 |
|
|
! ------------------------------------------------------------------ |
| 76 |
|
|
9 FORMAT(1X,'ARRAY ',A10,' ALLOCATED ',8I8) |
| 77 |
|
|
|
| 78 |
|
✗ |
END SUBROUTINE SETUP_GEOM |
| 79 |
|
|
END MODULE SETUP_GEOM_MOD |
| 80 |
|
|
|