The TELEMAC-MASCARET system  trunk
dynami.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE dynami
3 ! *****************
4 !
5  &(nptfr,nbor,lihbor,liubor,livbor,litbor,ncolfr,maille,nlim)
6 !
7 !***********************************************************************
8 ! STBTEL VERSION 6.0 J-C GALLAND (LNH) 30 87 78 13
9 ! J-M JANIN (LNH) 30 87 72 84
10 ! P LANG (LHF)
11 ! ORIGINE : TELEMAC
12 !***********************************************************************
13 !
14 ! FONCTION : ECRITURE DU FICHIER DYNAM DE TELEMAC
15 ! POUR TOUTE MODIFICATION DES CL VOIR DANS LE SPGM STBTEL
16 !
17 !-----------------------------------------------------------------------
18 ! ARGUMENTS
19 ! .________________.____.______________________________________________
20 ! I NOM IMODEI ROLE
21 ! I________________I____I______________________________________________
22 ! | NPTFR | -->| NOMBRE DE POINTS FRONTIERE
23 ! | NBOR | -->| TABLEAU DES POINTS DE BORD
24 ! | NCOLFR | -->| TABLEAU DES COULEURS DES POINTS FRONTIERES
25 ! | MAILLE | -->| NOM DU MAILLEUR
26 ! |________________|____|______________________________________________
27 ! | COMMON: | |
28 ! | GEO: | |
29 ! | MESH | -->| TYPE DES ELEMENTS DU MAILLAGE
30 ! | NDP | -->| NOMBRE DE NOEUDS PAR ELEMENTS
31 ! | NELEM | -->| NOMBRE TOTAL D'ELEMENTS DU MAILLAGE
32 ! |________________|____|______________________________________________
33 ! MODE : -->(DONNEE NON MODIFIEE), <--(RESULTAT), <-->(DONNEE MODIFIEE)
34 !----------------------------------------------------------------------
35 ! APPELE PAR : STBTEL
36 ! APPEL DE : -
37 !***********************************************************************
38 !
42 !
43  IMPLICIT NONE
44 !
45  INTEGER, INTENT(IN) :: NPTFR, NLIM
46  INTEGER, INTENT(IN) :: NBOR(*) , NCOLFR(*)
47  INTEGER, INTENT(INOUT) :: LIHBOR(*) , LIUBOR(*)
48  INTEGER, INTENT(INOUT) :: LIVBOR(*) ,LITBOR(*)
49  CHARACTER(LEN=9), INTENT(IN) :: MAILLE
50 !
51  INTEGER ILOG , IADH , IENT , IENTU , IINC , ISORT
52 !
53  INTEGER I,J,IERR
54 !
55  DOUBLE PRECISION, ALLOCATABLE :: ZEROS(:)
56  INTEGER, ALLOCATABLE :: NCOLOR(:)
57 !
58 !
59 !***********************************************************************
60 !
61  ilog = 2
62  iadh = 0
63  ient = 5
64  ientu= 6
65  isort= 4
66  iinc = 1
67 !
68  rewind nlim
69 !
70  DO j =1,nptfr
71 !
72 ! PAR DEFAUT, ON SUPPOSE QUE LE POINT EST UN POINT FRONTIERE SOLIDE
73 ! SANS FROTTEMENT. LA COULEUR 11, STANDARD POUR SUPERTAB, DONNE CE
74 ! TYPE DE CARACTERISTIQUE.
75 !
76  lihbor(j)=ilog
77  liubor(j)=ilog
78  livbor(j)=ilog
79  litbor(j)=ilog
80 !
81  IF(ncolfr(j).EQ.1) THEN
82 !
83 ! H IMPOSEE , U ET V LIBRES
84 !
85  lihbor(j)=ient
86  liubor(j)=isort
87  livbor(j)=isort
88  litbor(j)=isort
89 !
90  ELSE IF (ncolfr(j).EQ.2) THEN
91 !
92 ! H IMPOSEE , DEBIT IMPOSE
93 !
94  lihbor(j)=ient
95  liubor(j)=ient
96  livbor(j)=ient
97  litbor(j)=ient
98 !
99  ELSE IF (ncolfr(j).EQ.3) THEN
100 !
101 ! H , U ET V IMPOSEES
102 !
103  lihbor(j)=ient
104  liubor(j)=ientu
105  livbor(j)=ientu
106  litbor(j)=ient
107 !
108  ELSE IF (ncolfr(j).EQ.4) THEN
109 !
110 ! H IMPOSEE , U LIBRE , V NULLE
111 !
112  lihbor(j)=ient
113  liubor(j)=isort
114  livbor(j)=iadh
115  litbor(j)=isort
116 !
117  ELSE IF (ncolfr(j).EQ.5) THEN
118 !
119 ! CONDITION D'ONDE INCIDENTE
120 !
121  lihbor(j)=iinc
122  liubor(j)=iinc
123  livbor(j)=iinc
124  litbor(j)=isort
125 !
126  ELSE IF (ncolfr(j).EQ.7) THEN
127 !
128 ! H IMPOSEE , U NULLE , V LIBRE
129 !
130  lihbor(j)=ient
131  liubor(j)=iadh
132  livbor(j)=isort
133  litbor(j)=isort
134 !
135  ELSE IF (ncolfr(j).EQ.8) THEN
136 !
137 ! H LIBRE , U ET V IMPOSEES
138 !
139  lihbor(j)=isort
140  liubor(j)=ient
141  livbor(j)=ient
142  litbor(j)=ient
143 !
144  ELSE IF (ncolfr(j).EQ.9) THEN
145 !
146 ! H LIBRE , U ET V IMPOSEES
147 !
148  lihbor(j)=isort
149  liubor(j)=ientu
150  livbor(j)=ientu
151  litbor(j)=ient
152 !
153  ELSE IF (ncolfr(j).EQ.12) THEN
154 !
155 ! H LIBRE , U IMPOSEE , V NULLE
156 !
157  lihbor(j)=isort
158  liubor(j)=ient
159  livbor(j)=iadh
160  litbor(j)=ient
161 !
162  ELSE IF (ncolfr(j).EQ.13) THEN
163 !
164 ! FRONTIERE SOLIDE AVEC V NULLE
165 !
166  lihbor(j)=ilog
167  liubor(j)=ilog
168  livbor(j)=iadh
169  litbor(j)=ilog
170 !
171  ELSE IF (ncolfr(j).EQ.14) THEN
172 !
173 ! FRONTIERE SOLIDE AVEC U NULLE
174 !
175  lihbor(j)=ilog
176  liubor(j)=iadh
177  livbor(j)=ilog
178  litbor(j)=ilog
179 !
180  ELSE IF (ncolfr(j).EQ.15) THEN
181 !
182 ! H LIBRE , U NULLE , V IMPOSEE
183 !
184  lihbor(j)=isort
185  liubor(j)=iadh
186  livbor(j)=ient
187  litbor(j)=ient
188 !
189  ENDIF
190 !
191  ENDDO
192 !
193  ALLOCATE(ncolor(nptfr))
194  ALLOCATE(zeros(nptfr))
195  DO i=1,nptfr
196  ncolor(i) = i
197  ENDDO
198  zeros = 0.d0
199 !
200  CALL set_bnd(out_format, nlim, typ_bnd_elem, nptfr, 1, nbor,nptfr,
201  & lihbor, liubor, livbor, zeros, zeros, zeros, zeros,
202  & litbor, zeros, zeros, zeros, ncolor, ierr)
203  CALL check_call(ierr, 'DYNAMI:SET_BND')
204 
205  DEALLOCATE(ncolor)
206  DEALLOCATE(zeros)
207 !
208  IF (maille(1:8).NE.'SUPERTAB'.AND.
209  & maille(1:7).NE.'TRIGRID') WRITE(lu,3040) maille
210 !
211 !-----------------------------------------------------------------------
212 !
213  3040 FORMAT(/,
214  & ' **************************************************',/,
215  & ' BEWARE: THE UNIVERSAL FILE FORMAT IS ',a8,/,
216  & ' BOUNDARY CONDITIONS WILL HAVE TO BE',/,
217  & ' CHECKED IN THE BOUNDARY CONDITIONS FILE',/,
218  & ' **************************************************',/)
219 !
220 !-----------------------------------------------------------------------
221 !
222  RETURN
223  END
subroutine dynami(NPTFR, NBOR, LIHBOR, LIUBOR, LIVBOR, LITBOR, NCOLFR, MAILLE, NLIM)
Definition: dynami.f:7
character(len=8) out_format
subroutine set_bnd(FFORMAT, FID, TYPE_BND_ELT, NELEBD, NDP, IKLE, NPTFR, LIHBOR, LIUBOR, LIVBOR, HBOR, UBOR, VBOR, CHBORD, LITBOR, TBOR, ATBOR, BTBOR, COLOR, IERR)
Definition: set_bnd.f:9