The TELEMAC-MASCARET system  trunk
declarations_stbtel.F
Go to the documentation of this file.
1 !
2 ! DECLARATION OF GLOBAL DATA STRUCTURE IN TELEMAC-2D
3 !
5 !
6 !***********************************************************************
7 ! STBTEL VERSION 6.2
8 !***********************************************************************
9 !
10 !
12  USE utils_med
13  CHARACTER(LEN=MAXLENFILE) nomgeo,nomfo1,nomfon,nomfo2,nomimp,
15  CHARACTER(LEN=MAXLENFILE) nomfor,nomcas,nomlim,nomres,nombnd2
17  INTEGER nbnd2
18 !
19 ! COMMON GEO
20 !
21  INTEGER nelem
22  INTEGER mesh
23  INTEGER ndp
24  INTEGER npoin
25  INTEGER nelmax
26  INTEGER npmax
27 !
28 !-----------------------------------------------------------------------
29 !
30 ! 4) INTEGERS
31 !
32 !-----------------------------------------------------------------------
33 !
34 ! KEY-WORDS AND PARAMETERS
35 !
37  INTEGER nsec11,nsec12
38 !
39 !-----------------------------------------------------------------------
40 !
41 ! 5) LOGICAL VALUES
42 !
43 !-----------------------------------------------------------------------
44 !
47 !
48 !-----------------------------------------------------------------------
49 !
50 ! 6) REALS
51 !
52 !-----------------------------------------------------------------------
53 !
54  DOUBLE PRECISION epsi,dm,cortri,som(10,2),som2(10,2),seusec
55 !
56 !-----------------------------------------------------------------------
57 !
58 ! 7) STRINGS
59 !
60 !-----------------------------------------------------------------------
61 !
62  CHARACTER(LEN=3) std
63  CHARACTER(LEN=9) maille
64  CHARACTER(LEN=PATH_LEN) fond(5)
65 
66  ! VARIABLE FOR HERMES
67  INTEGER :: typ_elem, typ_bnd_elem, nptir
68  CHARACTER(LEN=8) :: fformat, out_format
69 !
70 !-----------------------------------------------------------------------
71 ! CONVERTER
72 !-----------------------------------------------------------------------
73 !
74 !!!! DICTIONARY KEYWORDS
75  ! NAME OF THE INPUT FORMAT
76  CHARACTER(LEN=9) infmt
77  ! NAME OF THE OUTPUT FORMAT
78  CHARACTER(LEN=9) outfmt
79  ! NAME OF THE INPUT FILES
80  CHARACTER(LEN=MAXLENFILE) infile,boundfile,logfile
81  INTEGER ninp,nbnd,nlog
82  ! NAME OF THE OUTPUT FILES
83  CHARACTER(LEN=MAXLENFILE) outfile,outbndfile,outlogfile
84  INTEGER nout,nobnd,nolog
85  ! DICTIONARY KEY WORDS
86  LOGICAL conver,debug,srf_bnd
87  ! INFO FOR TRANSLATION OF MESH
88  LOGICAL :: translate
89  DOUBLE PRECISION dx,dy
90 !!!! PARAMETERS
91  ! MAX NUMBER OF FAMILY
92  INTEGER, PARAMETER :: maxfam = 40
93  ! LENGTH OF THE STRINGS
94 #if defined HAVE_MED
95  INTEGER, PARAMETER :: name_size = med_name_size
96  INTEGER, PARAMETER :: lname_size = med_lname_size
97  INTEGER, PARAMETER :: comment_size = med_comment_size
98  INTEGER, PARAMETER :: sname_size = med_sname_size
99 #else
100  INTEGER, PARAMETER :: name_size = 64
101  INTEGER, PARAMETER :: lname_size = 80
102  INTEGER, PARAMETER :: comment_size = 200
103  INTEGER, PARAMETER :: sname_size = 16
104 #endif
105  INTEGER, PARAMETER :: title_size = 80
106 !
107  ! DESCRIBE A MESH AND RESULTS
108  TYPE mesh_obj2
109 !!!! GENERALITIES
110  !NAME OF THE MESH
111  CHARACTER(LEN=TITLE_SIZE) :: title
112  ! MESH DESCRIPTION
113  CHARACTER(LEN=COMMENT_SIZE) :: description
114  !NUMBER OF ELEMENTS
115  INTEGER :: nelem
116  !NUMBER OF POINTS
117  INTEGER :: npoin
118  !NUMBER OF BOUNDAR POINTS
119  INTEGER :: nptfr
120  !NUMBER OF POINTS PER ELEMENT
121  INTEGER :: ndp
122  ! TYPE OF THE ELEMENTS SEE TYPES NUMBER BELOW
123  INTEGER :: type_elem
124  ! NUMBER OF DIMENSION
125  INTEGER :: ndim
126  !SERAFIN 10 INTEGER
127  INTEGER :: ib(10)
128  ! CONNECTIVITY TABLE
129  INTEGER, ALLOCATABLE :: ikles(:)
130  ! BOUNDARY TABLE
131  INTEGER, ALLOCATABLE :: ipobo(:)
132  !X COORDINATES
133  DOUBLE PRECISION, ALLOCATABLE :: x(:)
134  !Y COORDINATES
135  DOUBLE PRECISION, ALLOCATABLE :: y(:)
136  !Z COORDINATES
137  DOUBLE PRECISION, ALLOCATABLE :: z(:)
138  !NAME OF COORDINATES
139  CHARACTER(LEN=SNAME_SIZE), ALLOCATABLE :: namecoo(:)
140  !NAME OF COORDINATES
141  CHARACTER(LEN=SNAME_SIZE), ALLOCATABLE :: unitcoo(:)
142  !PARALLEL NUMBERING LOCAL TO GLOBAL
143  INTEGER,ALLOCATABLE :: knolg(:)
144 !!!! RESULTS
145  !TOTAL NUMBER OF VARIABLES
146  INTEGER :: nvar
147  !NAME OF VARIABLES
148  CHARACTER(LEN=SNAME_SIZE), ALLOCATABLE :: namevar(:)
149  !UNIT OF VARIABLES
150  CHARACTER(LEN=SNAME_SIZE), ALLOCATABLE :: unitvar(:)
151  !NUMBER OF TIME STEPS
152  INTEGER :: timestep
153  !TIMES STEPS TABLE
154  DOUBLE PRECISION, ALLOCATABLE :: times(:)
155  !RESULT TABLE (TIMESTEP,VAR,POINT)
156  DOUBLE PRECISION, ALLOCATABLE :: results(:,:,:)
157 !!!! FAMILY INFORMATIONS
158  ! NUMBER OF FAMILY
159  INTEGER :: nfam
160  ! FAMILY'S NAME
161  CHARACTER(LEN=NAME_SIZE), ALLOCATABLE :: namefam(:)
162  ! ID OF THE FAMILY
163  INTEGER, ALLOCATABLE :: idfam(:)
164  ! FAMILY VALUE
165  INTEGER, ALLOCATABLE :: valfam(:)
166  ! NUMBER OF GROUP FOR EACH FAMILY
167  INTEGER, ALLOCATABLE :: ngroupfam(:)
168  ! FAMILY'S GROUP
169  CHARACTER(LEN=LNAME_SIZE), ALLOCATABLE :: groupfam(:,:)
170 !!!! BOUNDARY INFORMATIONS
171  ! BOUNDARY TABLE
172  INTEGER, ALLOCATABLE :: lihbor(:)
173  ! LOCAL TO BOUNDARY NUMBER
174  INTEGER, ALLOCATABLE :: nbor(:)
175 !!!! ESTEL BOUNDARY ELEMENTS ONLY FOR UNV AND MED
176  ! NUMBER OF ELEMENTS
177  INTEGER :: nelem2
178  ! NUMBER OF POINT ER ELEMENT
179  INTEGER :: ndp2
180  ! TYPE OF THE ELEMENTS SEE TYPES NUMBER BELOW
181  INTEGER :: type_elem2
182  ! CONNECTIVITY TABLE
183  INTEGER, ALLOCATABLE :: ikles2(:)
184 !!!! COLOR INFORMATIONS
185  ! COLOR FOR NODES
186  INTEGER, ALLOCATABLE :: color(:)
187  ! COLOR FOR 2D ELEMENTS
188  INTEGER, ALLOCATABLE :: ncolor(:)
189  ! COLOR FOR 3D ELEMENTS
190  INTEGER, ALLOCATABLE :: ncolor2(:)
192  END TYPE mesh_obj2
193 !
194  TYPE(mesh_obj2) mesh2
195 !
196  SAVE
197 !
198  CONTAINS
199 !
200  SUBROUTINE rename_vector(STR,N)
202  IMPLICIT NONE
203  CHARACTER(LEN=*), INTENT(INOUT) :: STR
204  INTEGER, INTENT(IN) :: N
205  INTEGER :: POS
206  pos = index(str,'*')
207  IF (str(pos+1:pos+1).EQ.'0') THEN
208  IF(n.EQ.1)str(pos:pos)='U'
209  IF(n.EQ.2)str(pos:pos)='V'
210  IF(n.EQ.3)str(pos:pos)='W'
211  ELSE
212  IF(n.EQ.1)str(pos:pos)='X'
213  IF(n.EQ.2)str(pos:pos)='Y'
214  IF(n.EQ.3)str(pos:pos)='Z'
215  ENDIF
216  END SUBROUTINE rename_vector
217 !
218 !
219  CHARACTER(LEN=11) FUNCTION extens
220  & (n,ipid)
222  IMPLICIT NONE
223  INTEGER IPID,N
224 !
225  IF(n.GT.0) THEN
226 !
227  extens='00000-00000'
228 !
229  IF(n.LT.10) THEN
230  WRITE(extens(05:05),'(I1)') n
231  ELSEIF(n.LT.100) THEN
232  WRITE(extens(04:05),'(I2)') n
233  ELSEIF(n.LT.1000) THEN
234  WRITE(extens(03:05),'(I3)') n
235  ELSEIF(n.LT.10000) THEN
236  WRITE(extens(02:05),'(I4)') n
237  ELSE
238  WRITE(extens(01:05),'(I5)') n
239  ENDIF
240 !
241  IF(ipid.LT.10) THEN
242  WRITE(extens(11:11),'(I1)') ipid
243  ELSEIF(ipid.LT.100) THEN
244  WRITE(extens(10:11),'(I2)') ipid
245  ELSEIF(ipid.LT.1000) THEN
246  WRITE(extens(09:11),'(I3)') ipid
247  ELSEIF(ipid.LT.10000) THEN
248  WRITE(extens(08:11),'(I4)') ipid
249  ELSE
250  WRITE(extens(07:11),'(I5)') ipid
251  ENDIF
252 !
253  ELSE
254 !
255  extens=' '
256 !
257  ENDIF
258 !
259 !-----------------------------------------------------------------------
260 !
261  RETURN
262  END FUNCTION extens
263 
264 !
265  ! INITIALIZE THE MESH OBJECT
266  SUBROUTINE ini_mesh
268  IMPLICIT NONE
269  mesh2%TITLE = 'NO TITLE'
270  mesh2%DESCRIPTION = 'NO DESCRIPTION'
271  mesh2%NELEM = 0
272  mesh2%NELEM2 = 0
273  mesh2%TYPE_ELEM = 0
274  mesh2%TYPE_ELEM2 = 0
275  mesh2%NPOIN = 0
276  mesh2%NPTFR = 0
277  mesh2%NDP = 0
278  mesh2%NDP2 = 0
279  mesh2%NDIM = 0
280  mesh2%NVAR = 0
281  mesh2%TIMESTEP = 0
282  mesh2%IB(:) = 0
283  mesh2%IB(1) = 1
284  mesh2%NFAM = 0
285  END SUBROUTINE ini_mesh
286 !
287  ! CHECK THAT EVERYTHING HAS BEEN INITIALISE/ALLOCATED
288  SUBROUTINE check_mesh
289  !
290  !
292  IMPLICIT NONE
293  ! LANGAE AND OUTPUT VALUE
294  INTEGER I,J
295  WRITE(lu,*) '--------------------------------------------------'
296  WRITE(lu,*) '------CHECKING MESH OBJECT'
297  WRITE(lu,*) '--------------------------------------------------'
298  IF(mesh2%TITLE.EQ.' ') WRITE(lu,*) 'NO TITLE'
299  IF(mesh2%DESCRIPTION.EQ.' ') WRITE(lu,*) 'NO DESCRIPTION'
300  IF(mesh2%NELEM.EQ.0) WRITE(lu,*) 'NO ELEMENTS, NELEM = 0'
301  IF(mesh2%NPOIN.EQ.0) WRITE(lu,*) 'NO POINTS NPOIN = 0'
302  IF(mesh2%NDP.EQ.0) WRITE(lu,*) 'NDP NOT INITIALISE'
303  IF(mesh2%TYPE_ELEM.EQ.0) WRITE(lu,*) 'TYPE_ELEM NOT INITIALISE'
304  IF(mesh2%NDIM.EQ.0) WRITE(lu,*) 'NDIM NOT INITIALISE'
305  IF(mesh2%NVAR.NE.0) THEN
306  IF(.NOT.ALLOCATED(mesh2%NAMEVAR))
307  & WRITE(lu,*) 'NAMEVAR NOT ALLOCATED'
308  IF(.NOT.ALLOCATED(mesh2%UNITVAR))
309  & WRITE(lu,*) 'UNITVAR NOT ALLOCATED'
310  ENDIF
311  IF(.NOT.ALLOCATED(mesh2%IKLES))WRITE(lu,*) 'IKLES NOT ALLOCATED'
312  IF(.NOT.ALLOCATED(mesh2%IPOBO))WRITE(lu,*) 'IPOBO NOT ALLOCATED'
313  IF(.NOT.ALLOCATED(mesh2%X)) WRITE(lu,*) 'X NOT ALLOCATED'
314  IF(.NOT.ALLOCATED(mesh2%Y)) WRITE(lu,*) 'Y NOT ALLOCATED'
315  IF(mesh2%NDIM.EQ.3) THEN
316  IF(.NOT.ALLOCATED(mesh2%Z)) WRITE(lu,*) 'Z NOT ALLOCATED'
317  ENDIF
318  IF(.NOT.ALLOCATED(mesh2%NAMECOO))
319  & WRITE(lu,*) 'NAMECOO NOT ALLOCATED'
320  IF(.NOT.ALLOCATED(mesh2%UNITCOO))
321  & WRITE(lu,*) 'UNITCOO NOT ALLOCATED'
322  IF(mesh2%TIMESTEP.NE.0) THEN
323  IF(.NOT.ALLOCATED(mesh2%TIMES))
324  & WRITE(lu,*) 'TIMES NOT ALLOCATED'
325  IF(.NOT.ALLOCATED(mesh2%RESULTS))
326  & WRITE(lu,*) 'RESULTS NOT ALLOCATED'
327  ENDIF
328  IF(mesh2%NFAM.NE.0) THEN
329  IF(.NOT.ALLOCATED(mesh2%IDFAM))
330  & WRITE(lu,*) 'IDFAM NOT ALLOCATED'
331  IF(.NOT.ALLOCATED(mesh2%VALFAM))
332  & WRITE(lu,*) 'VALFAM NOT ALLOCATED'
333  IF(.NOT.ALLOCATED(mesh2%NAMEFAM))
334  & WRITE(lu,*) 'NAMEFAM NOT ALLOCATED'
335  ENDIF
336  IF(mesh2%NPTFR.NE.0) THEN
337  IF(.NOT.ALLOCATED(mesh2%LIHBOR))
338  & WRITE(lu,*) 'LIHBOR NOT ALLOCATED'
339  IF(.NOT.ALLOCATED(mesh2%NBOR))
340  & WRITE(lu,*) 'NBOR NOT ALLOCATED'
341  ENDIF
342  IF(mesh2%NELEM2.NE.0) THEN
343  IF(mesh2%NDP2.EQ.0) WRITE(lu,*) 'NDP2 NOT INITIALISE'
344  IF(mesh2%TYPE_ELEM2.EQ.0) WRITE(lu,*)
345  & 'TYPE_ELEM2 NOT INITIALISE'
346  IF(.NOT.ALLOCATED(mesh2%IKLES2))
347  & WRITE(lu,*) 'IKLES2 NOT ALLOCATED'
348  IF(.NOT.ALLOCATED(mesh2%NCOLOR))
349  & WRITE(lu,*) 'NCOLOR NOT ALLOCATED'
350  IF(.NOT.ALLOCATED(mesh2%NCOLOR2))
351  & WRITE(lu,*) 'NCOLOR2 NOT ALLOCATED'
352 
353  ENDIF
354  WRITE(lu,*) '--------------------------------------------------'
355  WRITE(lu,*) '------DUMPING MESH OBJECT'
356  WRITE(lu,*) '--------------------------------------------------'
357  WRITE(lu,*) '---GENERIC INFORMATION'
358  WRITE(lu,*) 'TITLE :',trim(mesh2%TITLE)
359  WRITE(lu,*) 'DESCRIPTION :',trim(mesh2%DESCRIPTION)
360  WRITE(lu,*) 'NUMBER OF DIMENSION :',mesh2%NDIM
361  WRITE(lu,*) 'COORDINATES NAMES :',mesh2%NAMECOO
362  WRITE(lu,*) 'COORDINATES UNTIS :',mesh2%UNITCOO
363  SELECT CASE(mesh2%TYPE_ELEM)
364  CASE(triangle_elt_type)
365  WRITE(lu,*) 'ELEMENT TYPE : TRIANGLE'
366  CASE(quadrangle_elt_type)
367  WRITE(lu,*) 'ELEMENT TYPE : QUADRATIC'
369  WRITE(lu,*) 'ELEMENT TYPE : TETRAHEDRON'
370  CASE(prism_elt_type)
371  WRITE(lu,*) 'ELEMENT TYPE : PRISM'
372  END SELECT
373  WRITE(lu,*) 'NUMBER OF ELEMENT :',mesh2%NELEM
374  IF(mesh2%NELEM2.NE.0) THEN
375  SELECT CASE(mesh2%TYPE_ELEM2)
376  CASE(triangle_elt_type)
377  WRITE(lu,*) 'ELEMENT TYPE : TRIANGLE'
378  CASE(quadrangle_elt_type)
379  WRITE(lu,*) 'ELEMENT TYPE : QUADRATIC'
381  WRITE(lu,*) 'ELEMENT TYPE : TETRAHEDRON'
382  CASE(prism_elt_type)
383  WRITE(lu,*) 'ELEMENT TYPE : PRISM'
384  END SELECT
385  WRITE(lu,*) 'NUMBER OF ELEMENT :',mesh2%NELEM2
386  ENDIF
387  WRITE(lu,*) 'NUMBER OF POINTS :',mesh2%NPOIN
388  WRITE(lu,*) '---FAMILIES INFORMATION'
389  IF(mesh2%NFAM.EQ.0) THEN
390  WRITE(lu,*) 'NO FAMILIES'
391  ELSE
392  WRITE(lu,*) 'NUMBER OF FAMILIES'
393  DO i=1,mesh2%NFAM
394  WRITE(lu,*) 'NAMEFAM : ',mesh2%NAMEFAM(i)
395  WRITE(lu,*) 'VALFAM : ',mesh2%VALFAM(i)
396  WRITE(lu,*) 'IDFAM : ',mesh2%IDFAM(i)
397  WRITE(lu,*) 'NGROUP : ',mesh2%NGROUPFAM(i)
398  IF(mesh2%NGROUPFAM(i).NE.0) THEN
399  DO j=1,mesh2%NGROUPFAM(i)
400  WRITE(lu,*) 'GROUP : ',trim(mesh2%GROUPFAM(i,j))
401  ENDDO
402  ENDIF
403  ENDDO
404  ENDIF
405  WRITE(lu,*) '---RESULTS INFORMATION'
406  IF(mesh2%TIMESTEP.EQ.0) THEN
407  WRITE(lu,*) 'NO RESULTS'
408  ELSE
409  WRITE(lu,*) 'NUMBER OF TIME STEPS :',mesh2%TIMESTEP
410  WRITE(lu,*) 'NUMBER OF VARIABLES :',mesh2%NVAR
411  DO i=1,mesh2%NVAR
412  WRITE(lu,*) 'NAME OF THE VARIABLE : ',mesh2%NAMEVAR(i)
413  WRITE(lu,*) 'UNIT OF THE VARIABLE : ',mesh2%UNITVAR(i)
414  ENDDO
415  ENDIF
416  END SUBROUTINE check_mesh
417 !
418  ! DEALLOCTE THE MESH OBJ TABLES
419  SUBROUTINE free_mesh
421  IMPLICIT NONE
422  IF(mesh2%NVAR.NE.0) THEN
423  DEALLOCATE(mesh2%NAMEVAR)
424  DEALLOCATE(mesh2%UNITVAR)
425  ENDIF
426  DEALLOCATE(mesh2%IKLES)
427  DEALLOCATE(mesh2%IPOBO)
428  DEALLOCATE(mesh2%X)
429  DEALLOCATE(mesh2%Y)
430  DEALLOCATE(mesh2%NAMECOO)
431  DEALLOCATE(mesh2%UNITCOO)
432  IF(mesh2%NDIM.EQ.3) DEALLOCATE(mesh2%Z)
433  IF(mesh2%TIMESTEP.NE.0) THEN
434  DEALLOCATE(mesh2%TIMES)
435  DEALLOCATE(mesh2%RESULTS)
436  ENDIF
437  IF(mesh2%NFAM.NE.0) THEN
438  DEALLOCATE(mesh2%NAMEFAM)
439  DEALLOCATE(mesh2%IDFAM)
440  DEALLOCATE(mesh2%VALFAM)
441  DEALLOCATE(mesh2%NGROUPFAM)
442  DEALLOCATE(mesh2%GROUPFAM)
443  ENDIF
444  IF(mesh2%NPTFR.NE.0) THEN
445  DEALLOCATE(mesh2%LIHBOR)
446  DEALLOCATE(mesh2%NBOR)
447  ENDIF
448  IF(mesh2%NELEM2.NE.0) THEN
449  DEALLOCATE(mesh2%IKLES2)
450  ENDIF
451  IF(ALLOCATED(mesh2%NCOLOR)) DEALLOCATE(mesh2%NCOLOR)
452  IF(ALLOCATED(mesh2%COLOR)) DEALLOCATE(mesh2%COLOR)
453  IF(ALLOCATED(mesh2%NCOLOR2))DEALLOCATE(mesh2%NCOLOR2)
454  END SUBROUTINE free_mesh
455 !
456  ! CONVERT AN INT INTO A STRING WITH ZEROS
457  SUBROUTINE number2string(RES,VAL)
459  IMPLICIT NONE
460  INTEGER, INTENT(IN) :: VAL
461  CHARACTER(LEN=*), INTENT(OUT) :: RES
462  IF(val.LT.10) THEN
463  WRITE(res,'(A7,I1)') '0000000',val
464  ELSE IF(val.LT.100) THEN
465  WRITE(res,'(A6,I2)') '000000',val
466  ELSE IF(val.LT.1000) THEN
467  WRITE(res,'(A5,I3)') '00000',val
468  ELSE IF(val.LT.10000) THEN
469  WRITE(res,'(A4,I4)') '0000',val
470  ELSE IF(val.LT.100000) THEN
471  WRITE(res,'(A3,I5)') '000',val
472  ELSE IF(val.LT.1000000) THEN
473  WRITE(res,'(A2,I6)') '00',val
474  ELSE IF(val.LT.10000000) THEN
475  WRITE(res,'(A1,I7)') '0',val
476  ELSE
477  WRITE(res,'(I8)') val
478  ENDIF
479  END SUBROUTINE number2string
480 !
481 !
482 !
483  END MODULE declarations_stbtel
484 !
integer, parameter prism_elt_type
character(len=maxlenfile) nomcas
integer, parameter lname_size
character(len=maxlenfile) outfile
character(len=8) fformat
integer, parameter title_size
character(len=9) maille
integer, parameter maxfam
subroutine rename_vector(STR, N)
integer, parameter triangle_elt_type
character(len=11) function extens(N, IPID)
character(len=maxlenfile) boundfile
double precision seusec
character(len=maxlenfile) outlogfile
character(len=maxlenfile) infile
double precision, dimension(10, 2) som2
character(len=maxlenfile) outbndfile
character(len=9) infmt
character(len=maxlenfile) nomgeo
character(len=maxlenfile) nomfor
character(len=8) out_format
subroutine number2string(RES, VAL)
integer, parameter comment_size
double precision cortri
character(len=maxlenfile) nomfrc
character(len=maxlenfile) nomfon
double precision epsi
double precision, dimension(10, 2) som
character(len=maxlenfile) nomsou
character(len=9) outfmt
character(len=maxlenfile) nomres
integer, parameter name_size
integer, parameter sname_size
integer, parameter tetrahedron_elt_type
character(len=maxlenfile) nomimp
integer, parameter quadrangle_elt_type
character(len=3) std
character(len=path_len), dimension(5) fond
character(len=maxlenfile) nomfo1
character(len=maxlenfile) nombnd2
character(len=maxlenfile) nomlim
character(len=maxlenfile) nomfo2
character(len=maxlenfile) logfile