The TELEMAC-MASCARET system  trunk
homere_stbtel.f
Go to the documentation of this file.
1 ! *********************
2  PROGRAM homere_stbtel
3 ! *********************
4 !
5 !***********************************************************************
6 ! STBTEL VERSION 7.0 19/02/2009 J-M HERVOUET (LNH) 01 30 87 80 18
7 !
8 !***********************************************************************
9 !
10 ! FONCTIONS:
11 ! ==========
12 !
13 ! 1) ACQUISITION DE TOUTES LES DONNEES NECESSAIRES
14 ! AU CALCUL DES POINTEURS: FICHIER CAS + PARTIELLEMENT LA GEOMETRIE
15 !
16 ! 2) APPEL DU SOUS-PROGRAMME STBTEL.
17 !
18 !
19 !-----------------------------------------------------------------------
20 !
21 ! SOUS-PROGRAMMES APPELES : LECDON , POINT , STBTEL
22 !
23 !**********************************************************************
24 !
25 ! USE BIEF
31  IMPLICIT NONE
32 !
33  INTEGER TDEB,TFIN
34 !
35  CHARACTER(LEN=24), PARAMETER :: CODE='STBTEL '
36 !
37  INTEGER TIME_IN_SECONDS
38  EXTERNAL time_in_seconds
39 !
40  INTEGER NPOIN1
41 !
42  INTEGER NSFOND ,NFOND(5)
43 !
44  CHARACTER(LEN=11) TYPELE
45  CHARACTER(LEN=80) TITRE
46  CHARACTER(LEN=6) PRECIS
47 
48  INTEGER IERR
49 !
50 !
51 !======================================================================
52 !
53  INTEGER NCAR
54  CHARACTER(LEN=PATH_LEN) FORTXY(50)
55  CHARACTER(LEN=MAXLENTMPDIR) PATH
56  ngeo=1
57  ncle=2
58  ncas=3
59  nlim=7
60  nres=8
61  nsou=11
62  nimp=12
63  nfrc=20
64  nfon=23
65  nfo1=26
66  nfo2=27
67  ninp=28
68  nout=29
69  nbnd=30
70  nlog=31
71  nobnd=32
72  nolog=33
73  nbnd2=34
74  nomgeo=' '
75  nomfo1=' '
76  nomfo2=' '
77  nomfon=' '
78  nomimp=' '
79  nomsou=' '
80  nomfrc=' '
81  nomfor=' '
82  nomcas=' '
83  nomlim=' '
84  nomres=' '
85  infile=' '
86  outfile=' '
87  boundfile=' '
88  logfile=' '
89  outbndfile=' '
90  outlogfile=' '
91  nombnd2 = ' '
92  CALL p_init(path,ncar,ipid,ncsize)
93  CALL read_config(path,ncar)
94  fortxy(ngeo) ='STBGEO'
95  fortxy(ncle) ='STBDICO'
96  fortxy(ncas) ='STBCAS'
97  fortxy(nlim) ='STBLIM'
98  fortxy(nres) ='STBRES'
99  fortxy(nsou) ='STBSOU'
100  fortxy(nimp) ='STBIMP'
101  fortxy(nfrc) ='STBFRC'
102  fortxy(nfon) ='STBFON'
103  fortxy(nfo1) ='STBFO1'
104  fortxy(nfo2) ='STBFO2'
105  fortxy(ninp) ='STBINP'
106  fortxy(nout) ='STBOUT'
107  fortxy(nbnd) ='STBBND'
108  fortxy(nlog) ='STBLOG'
109  fortxy(nobnd) ='STBOBD'
110  fortxy(nolog) ='STBOLG'
111  fortxy(nbnd2) ='STBND2'
112 !
113  tdeb = time_in_seconds()
114 !
115 ! ENTETE SUR LISTING
116 !
117  CALL print_header(code,' ')
118 !
119 !=======================================================================
120 ! LECTURE DU FICHIER CAS
121 !=======================================================================
122 !
123  OPEN(ncle , file=fortxy(ncle) , form='FORMATTED' ,action='READ')
124  OPEN(ncas , file=fortxy(ncas) , form='FORMATTED' ,action='READ')
125  CALL lecdon_stbtel
126 
127 ! CHECK IF WE SWITCH TO THE CONVERTER PROGRAM
128  IF(conver) THEN
129  IF (boundfile.EQ.' ') fortxy(nbnd) = ' '
130  IF (logfile.EQ.' ') fortxy(nlog) = ' '
131  IF (outbndfile.EQ.' ') fortxy(nobnd) = ' '
132  IF (outlogfile.EQ.' ') fortxy(nolog) = ' '
133  CALL converter(fortxy(ninp),fortxy(nbnd),
134  & fortxy(nout),fortxy(nobnd))
135  ! GO TO THE END OF STBTEL
136  GOTO 666
137  ENDIF
138 !
139 ! LE FICHIER UNIVERSEL EST DE TYPE BINAIRE OU FORMATE
140 !
141  IF(maille.EQ.'SIMAIL') THEN
142  OPEN(ngeo,file=fortxy(ngeo), form='UNFORMATTED')
143  ELSE IF(maille.EQ.'SELAFIN') THEN
144  CALL open_mesh(fformat,fortxy(ngeo),ngeo,'READ ',ierr)
145  CALL check_call(ierr, 'OPEN_MESH:NGEO')
146  ELSE
147  OPEN(ngeo,file=fortxy(ngeo), form='FORMATTED')
148  ENDIF
149 !
150 !=======================================================================
151 ! OUVERTURE DES FICHIERS
152 !=======================================================================
153 !
154  ! In case the output format was not specified using fformat (that
155  ! by default is SERAFIN) and if the input file is SERAFIN it will
156  ! be the same format as the input file (fformat will be replace by
157  ! the format of the file when we open it)
158  IF (out_format == '') THEN
160  ENDIF
161 
162  IF(nomres(1:1).NE.' ') THEN
163  CALL open_mesh(out_format,fortxy(nres),nres,'WRITE ',ierr)
164  CALL check_call(ierr, 'OPEN_MESH:NRES')
165  ENDIF
166 !
167  IF(nomlim(1:1).NE.' ') THEN
168  CALL open_bnd(out_format,fortxy(nlim),nres,'WRITE ',ierr)
169  CALL check_call(ierr, 'OPEN_BND:NRES')
170  ENDIF
171 !
172  IF(nombnd2(1:1).NE.' ') THEN
173  CALL open_bnd(fformat,fortxy(nbnd2),ngeo,'READ ',ierr)
174  CALL check_call(ierr, 'OPEN_BND:NGEO')
175  ENDIF
176 !
177  IF(nomsou(1:1).NE.' ') THEN
178  OPEN(nsou,file=fortxy(nsou),form='FORMATTED',action='READWRITE')
179  ENDIF
180 !
181  IF(nomimp(1:1).NE.' ') THEN
182  OPEN(nimp,file=fortxy(nimp),form='FORMATTED',action='READ')
183  ENDIF
184 !
185  IF(nomfrc(1:1).NE.' ') THEN
186  OPEN(nfrc,file=fortxy(nfrc),form='FORMATTED',action='READ')
187  ENDIF
188 !
189  IF(nomfon(1:1).NE.' ') THEN
190  OPEN(nfon,file=fortxy(nfon),form='FORMATTED',action='READ')
191  ENDIF
192 !
193  IF(nomfo1(1:1).NE.' ') THEN
194  OPEN(nfo1,file=fortxy(nfo1),form='FORMATTED',action='READ')
195  ENDIF
196 !
197  IF(nomfo2(1:1).NE.' ') THEN
198  OPEN(nfo2,file=fortxy(nfo2),form='FORMATTED',action='READ')
199  ENDIF
200 !
201 !
202 !
203  IF(nomfo1(1:1).NE.' '.AND.maille.EQ.'SELAFIN') THEN
204 ! POUR SELAFIN : NFO1 EST BINAIRE
205  CLOSE(nfo1)
206  CALL open_mesh(fformat,fortxy(nfo1),nfo1,'READ ',ierr)
207  CALL check_call(ierr, 'OPEN_MESH:NFO1')
208  ENDIF
209 !
210 ! CANAUX DU FICHIER FOND1 ET SUIVANTS
211 !
212  IF(nbfond.NE.0) THEN
213  nfond(1) = 23
214  nfond(2) = 27
215  nfond(3) = 12
216  nfond(4) = 11
217  nfond(5) = 20
218  ENDIF
219 !
220 !=======================================================================
221 ! INITIALISATION : RECHERCHE DES NOMBRES DE POINTS , D'ELEMENTS ET
222 ! DU TYPE DES ELEMENTS
223 !=======================================================================
224 !
225 ! INITIALISATION DE LA LONGUEUR DU TABLEAU NOP5 A 1
226 !
227  inop5 = 1
228  nsfond = 0
229 !
230  IF (maille.EQ.'SELAFIN') THEN
231  CALL inisel (npoin1,typele,std,nsfond,fusion,ihaut,
232  & ngeo , nfo1)
233  ELSEIF (maille.EQ.'TRIGRID') THEN
234  CALL initri (npoin1,typele,ngeo,nfo1)
235  ELSEIF (maille.EQ.'FASTTABS') THEN
236  CALL inifas (typele,ngeo)
237  ELSEIF (maille.EQ.'SIMAIL') THEN
238  CALL inisim (npoin1,typele,inop5,ngeo)
239  ELSEIF (maille.EQ.'ADCIRC') THEN
240  CALL iniadc (npoin1,typele,nsfond,ihaut,ngeo,titre)
241  ELSE
242  CALL inistb (npoin1,typele,maille,precis,ngeo,
243  & nsec2,nsec11,nsec12)
244  ENDIF
245 !
246 !=======================================================================
247 ! DEFINITION DES POINTEURS
248 !=======================================================================
249 !
250  CALL point_stbtel
251 !
252 !=======================================================================
253 ! APPEL DU PROGRAMME GENERAL
254 !=======================================================================
255 !
256  CALL stbtel(npoin1,typele,nfond,precis,nsfond,titre)
257 !
258 !=======================================================================
259 ! FERMETURE DES FICHIERS
260 !=======================================================================
261 !
262  IF(nomlim(1:1).NE.' ') then
263  CALL close_bnd(fformat,nres,ierr)
264  CALL check_call(ierr, 'CLOSE_BND:NRES')
265  ENDIF
266  IF(nomres(1:1).NE.' ') THEN
267  CALL close_mesh(fformat,nres,ierr)
268  CALL check_call(ierr, 'CLOSE_MESH:NRES')
269  ENDIF
270 
271  IF(nombnd2(1:1).NE.' ') THEN
272  CALL close_bnd(fformat,ngeo,ierr)
273  CALL check_call(ierr, 'CLOSE_BND:NGEO')
274  ENDIF
275  IF(maille.EQ.'SELAFIN') THEN
276  CALL close_mesh(fformat, ngeo,ierr)
277  CALL check_call(ierr, 'CLOSE_MESH:NGEO')
278  ELSE
279  CLOSE(ngeo)
280  ENDIF
281 
282  IF(nomfo1(1:1).NE.' '.AND.maille.EQ.'SELAFIN') THEN
283  CALL close_mesh(fformat, nfo1,ierr)
284  CALL check_call(ierr, 'CLOSE_MESH:NFO1')
285  ENDIF
286 
287  CLOSE(ncle)
288  CLOSE(ncas)
289  IF(nomsou(1:1).NE.' ') CLOSE(nsou)
290  IF(nomimp(1:1).NE.' ') CLOSE(nimp)
291  IF(nomfrc(1:1).NE.' ') CLOSE(nfrc)
292  IF(nomfon(1:1).NE.' ') CLOSE(nfon)
293  IF(nomfo2(1:1).NE.' ') CLOSE(nfo2)
294 !
295 !-----------------------------------------------------------------------
296 !
297  WRITE(lu,11)
298 11 FORMAT(1x,///,1x,'CORRECT END OF RUN',///)
299 !
300 !-----------------------------------------------------------------------
301 !
302 666 tfin = time_in_seconds()
303  WRITE(lu,*) 'COMPUTER TIME: ',tfin-tdeb,' SECONDS'
304  CALL p_exit()
305 !
306 !-----------------------------------------------------------------------
307 !
308  stop 0
309  END
subroutine read_config(CHAINE, NCAR)
Definition: read_config.f:7
character(len=maxlenfile) nomcas
subroutine close_mesh(FFORMAT, FILE_ID, IERR, MESH_NUMBER)
Definition: close_mesh.f:7
character(len=maxlenfile) outfile
character(len=8) fformat
subroutine p_exit
Definition: p_exit.F:4
character(len=9) maille
subroutine p_init(CHAINE, NCAR, IPID, NCSIZE)
Definition: p_init.F:7
subroutine inifas(TYPELE, NGEO)
Definition: inifas.f:7
subroutine inisim(NPOIN1, TYPELE, INOP5, NGEO)
Definition: inisim.f:7
subroutine inistb(NPOIN1, TYPELE, MAILLE, PRECIS, NGEO, NSEC2, NSEC11, NSEC12)
Definition: inistb.f:7
program homere_stbtel
Definition: homere_stbtel.f:3
character(len=maxlenfile) boundfile
character(len=maxlenfile) outlogfile
subroutine close_bnd(FFORMAT, FILE_ID, IERR, MESH_NUMBER)
Definition: close_bnd.f:7
character(len=maxlenfile) infile
character(len=maxlenfile) outbndfile
subroutine lecdon_stbtel
Definition: lecdon_stbtel.f:4
character(len=maxlenfile) nomgeo
character(len=maxlenfile) nomfor
character(len=8) out_format
subroutine point_stbtel
Definition: point_stbtel.f:4
subroutine inisel(NPOIN1, TYPELE, STD, NSFOND, FUSION, IHAUT, NGEO, NFO1)
Definition: inisel.f:7
character(len=maxlenfile) nomfrc
character(len=maxlenfile) nomfon
character(len=maxlenfile) nomsou
character(len=maxlenfile) nomres
character(len=maxlenfile) nomimp
subroutine converter(LOC_INPFILE, LOC_BNDFILE, LOC_OUTFILE, LOC_OUTBNDFILE)
Definition: converter.f:7
character(len=3) std
subroutine iniadc(NPOIN1, TYPELE, NSFOND, IHAUT, NGEO, TITRE)
Definition: iniadc.f:7
character(len=maxlenfile) nomfo1
subroutine initri(NPOIN1, TYPELE, NGEO, NFO1)
Definition: initri.f:7
character(len=maxlenfile) nombnd2
character(len=maxlenfile) nomlim
subroutine open_mesh(FFORMAT, FILE_NAME, FILE_ID, OPENMODE, IERR, MESH_NUMBER)
Definition: open_mesh.f:7
character(len=maxlenfile) nomfo2
subroutine open_bnd(FFORMAT, FILE_NAME, FILE_ID, OPENMODE, IERR, MESH_NUMBER)
Definition: open_bnd.f:7
character(len=maxlenfile) logfile
subroutine stbtel(NPOIN1, TYPELE, NFOND, PRECIS, NSFOND, TITRE)
Definition: stbtel.f:7