LMDZ
setup_geom_mod.F90
Go to the documentation of this file.
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
!$Id mode_top_bound COMMON comconstr r
Definition: comconst.h:7
!$Id mode_top_bound COMMON comconstr g
Definition: comconst.h:7
type(fields_type), pointer f
Definition: tpm_fields.F90:23
integer, parameter jprb
Definition: parkind1.F90:31
subroutine setup_geom
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
integer, parameter jpim
Definition: parkind1.F90:13
integer(kind=jpim) nout
Definition: tpm_gen.F90:9
integer(kind=jpim) nprintlev
Definition: tpm_gen.F90:11