5 &( npoin1 , typele , nfond , precis , nsfond , titre)
111 INTEGER,
INTENT(INOUT) :: NPOIN1
112 CHARACTER(LEN=11),
INTENT(INOUT) :: TYPELE
113 INTEGER,
INTENT(IN) :: NFOND(5)
114 CHARACTER(LEN=6),
INTENT(INOUT) :: PRECIS
115 INTEGER,
INTENT(INOUT) :: NSFOND
116 CHARACTER(LEN=80),
INTENT(INOUT) :: TITRE
118 INTEGER NPTFR , NITER, OLD_NPTFR
119 INTEGER NDEPAR , IELM
124 INTEGER NVAR , NVARCL
125 INTEGER NPINIT , NEINIT
126 INTEGER NUMPB(100), NBPB, I
127 INTEGER :: IPARAM(10) = (/ 0,0,0,0,0,0,0,0,0,0 /)
129 REAL,
DIMENSION(:),
ALLOCATABLE :: W
130 DOUBLE PRECISION,
DIMENSION(:) ,
ALLOCATABLE :: WORK,X,Y,ZF
131 DOUBLE PRECISION,
DIMENSION(:) ,
ALLOCATABLE :: XR,YR,ZR
132 DOUBLE PRECISION,
DIMENSION(:) ,
ALLOCATABLE :: XINIT,YINIT
133 DOUBLE PRECISION,
DIMENSION(:) ,
ALLOCATABLE :: VAINIT,VAR
134 DOUBLE PRECISION,
DIMENSION(:) ,
ALLOCATABLE :: CHBORD
135 DOUBLE PRECISION,
ALLOCATABLE :: HBOR(:),UBOR(:,:),VBOR(:,:)
136 DOUBLE PRECISION,
DIMENSION(:,:),
ALLOCATABLE :: SHP
137 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: TRAV1,TRAV2,TRAV3
138 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: IKLE,IFABOR,IKINIT
139 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: NBOR,KP1BOR,LIUBOR
140 INTEGER,
ALLOCATABLE :: OLD_NBOR(:)
141 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: LIVBOR,LITBOR,LIHBOR
142 INTEGER,
DIMENSION(:) ,
ALLOCATABLE :: ELT,NCOLOR,NCOLFR,NOP5
143 INTEGER,
DIMENSION(:),
ALLOCATABLE :: TFAST1,TFAST2,ISDRY,IPOBO
146 CHARACTER(LEN=32) TEXTE(26) , VARCLA(1)
149 LOGICAL SUIT , ECRI , DEBU , LISTIN
151 INTEGER DATE(3) , TIME(3)
152 INTEGER X_ORIG,Y_ORIG
153 DOUBLE PRECISION TPSFIN(1)
154 INTEGER NVARIN , NVAROU , NVAR2 ,ERR
155 INTEGER NSOR , MXPTVS , MXELVS
161 ALLOCATE(w(
npoin) ,stat=err)
162 CALL check_allocate(err,
'W')
163 ALLOCATE(work(
npmax) ,stat=err)
164 CALL check_allocate(err,
'WORK')
165 ALLOCATE(x(
npmax) ,stat=err)
166 CALL check_allocate(err,
'X')
167 ALLOCATE(y(
npmax) ,stat=err)
168 CALL check_allocate(err,
'Y')
169 ALLOCATE(zf(
npmax) ,stat=err)
170 CALL check_allocate(err,
'ZF')
171 ALLOCATE(xr(
nbat) ,stat=err)
172 CALL check_allocate(err,
'XR')
173 ALLOCATE(yr(
nbat) ,stat=err)
174 CALL check_allocate(err,
'YR')
175 ALLOCATE(zr(
nbat) ,stat=err)
176 CALL check_allocate(err,
'ZR')
177 ALLOCATE(xinit(
npoin) ,stat=err)
178 CALL check_allocate(err,
'XINIT')
179 ALLOCATE(yinit(
npoin) ,stat=err)
180 CALL check_allocate(err,
'YINIT')
181 ALLOCATE(vainit(
npoin) ,stat=err)
182 CALL check_allocate(err,
'VAINIT')
183 ALLOCATE(var(
npmax) ,stat=err)
184 CALL check_allocate(err,
'VAR')
185 ALLOCATE(shp(
npmax,3) ,stat=err)
186 CALL check_allocate(err,
'SHP')
187 ALLOCATE(nop5(
inop5) ,stat=err)
188 CALL check_allocate(err,
'NOP5')
192 ALLOCATE(trav1(4*
nelmax) ,stat=err)
193 CALL check_allocate(err,
'TRAV1')
194 ALLOCATE(trav2(4*
nelmax) ,stat=err)
195 CALL check_allocate(err,
'TRAV2')
196 ALLOCATE(trav3(
npmax) ,stat=err)
197 CALL check_allocate(err,
'TRAV3')
198 ALLOCATE(ncolor(
npmax) ,stat=err)
199 CALL check_allocate(err,
'NCOLOR')
200 ALLOCATE(ikle(
nelmax,4) ,stat=err)
201 CALL check_allocate(err,
'IKLE')
202 ALLOCATE(ikinit(
nelem,3) ,stat=err)
203 CALL check_allocate(err,
'IKINIT')
204 ALLOCATE(ifabor(
nelmax,4) ,stat=err)
205 CALL check_allocate(err,
'IFABOR')
206 ALLOCATE(elt(
npmax) ,stat=err)
207 CALL check_allocate(err,
'ELT')
208 ALLOCATE(tfast1(
npmax) ,stat=err)
209 CALL check_allocate(err,
'TFAST1')
210 ALLOCATE(tfast2(
npmax) ,stat=err)
211 CALL check_allocate(err,
'TFAST2')
212 ALLOCATE(isdry(
npmax) ,stat=err)
213 CALL check_allocate(err,
'ISDRY')
215 ALLOCATE(nbor(
npmax) ,stat=err)
216 CALL check_allocate(err,
'NBOR')
217 ALLOCATE(old_nbor(
npmax) ,stat=err)
218 CALL check_allocate(err,
'OLD_NBOR')
219 ALLOCATE(kp1bor(
npmax) ,stat=err)
220 CALL check_allocate(err,
'KP1BOR')
221 ALLOCATE(liubor(
npmax) ,stat=err)
222 CALL check_allocate(err,
'LIUBOR')
223 ALLOCATE(livbor(
npmax) ,stat=err)
224 CALL check_allocate(err,
'LIVBOR')
225 ALLOCATE(litbor(
npmax) ,stat=err)
226 CALL check_allocate(err,
'LITBOR')
227 ALLOCATE(lihbor(
npmax) ,stat=err)
228 CALL check_allocate(err,
'LIHBOR')
229 ALLOCATE(ncolfr(
npmax) ,stat=err)
230 CALL check_allocate(err,
'NCOLFR')
232 ALLOCATE(chbord(
npmax) ,stat=err)
233 CALL check_allocate(err,
'CHBORD')
234 ALLOCATE(hbor(
npmax) ,stat=err)
235 CALL check_allocate(err,
'HBOR')
236 ALLOCATE(ubor(
npmax,2) ,stat=err)
237 CALL check_allocate(err,
'UBOR')
238 ALLOCATE(vbor(
npmax,2) ,stat=err)
239 CALL check_allocate(err,
'VBOR')
253 ALLOCATE(ipobo(
npoin) ,stat=err)
254 CALL check_allocate(err,
'IPOBO')
255 IF (
maille.EQ.
'SELAFIN')
THEN 256 CALL lecsel (xinit,yinit,ikinit,npinit,neinit,x,y,ikle,trav1,
258 &
ngeo,
nfo1,ipobo,iparam,date,time,x_orig,y_orig)
261 & chbord,nbor,
npmax,nptfr,ncolor)
263 ELSEIF (
maille.EQ.
'ADCIRC')
THEN 266 ELSEIF (
maille.EQ.
'SIMAIL')
THEN 268 ELSEIF (
maille.EQ.
'TRIGRID')
THEN 270 titre =
'MAILLAGE TRIGRID' 271 ELSEIF (
maille.EQ.
'FASTTABS')
THEN 274 titre =
'MAILLAGE FASTTABS' 277 CALL lecstb (x,y,ikle,ncolor,titre,npoin1,
301 & trav1,trav2,shp,elt,
npmax)
316 & ncolor, isdry,
ihaut, nvarin, var, w , trav2,
std ,
ngeo,texte)
324 & nachb,nbor,nptfr,trav1,trav2)
325 CALL verifs (ifabor,ikle,trav1,nptfr,numpb,nbpb)
328 WRITE(
lu,3001) numpb(i)
330 CALL elmpb (nbpb, numpb, x,y,ikle,ncolor,isdry,trav2)
353 IF (
mesh.EQ.3) ielm = 11
356 & nachb,nbor,nptfr,trav1,trav2)
364 CALL ranbo(nbor,kp1bor,ifabor,ikle,ncolor,trav1,nptfr,x,y,
375 & (old_nptfr,
npmax,0,lihbor,liubor,livbor,dummy,
376 & hbor,ubor,vbor,chbord,dummy,dummy,dummy, nbor, old_nbor)
386 CALL surcon (x,y,ikle,trav1,nbor,nptfr,ncolor,ifabor,
color)
398 WRITE(
lu,*)
'RENUMBERING IS NOT POSSIBLE IF '//
399 &
'YOU ARE DOING A REFINEMENT.' 400 WRITE(
lu,*)
'YOU WILL NEED TO DO IT IN ANOTHER RUN' 405 & (x,y,work,ikle,nbor,trav1,trav2,trav3,ncolor,
color,nptfr)
430 IF (niter.GT.50)
THEN 447 CALL projec (x,y,zf,xr,yr,zr,
nbat,nbor,nptfr,nfond,
nbfond,
464 IF(iparam(10).EQ.0)
THEN 480 & varcla,nvarcl,titre,sorleo,nsor,w,trav1,ikle,
481 & trav2,
nelem,nptfr,
ndp,mxptvs,mxelvs,date,time,
482 & debu,suit,ecri,listin,iparam,ipobo,x_orig,y_orig)
487 CALL interp(xinit,yinit,ikinit,npinit,neinit,x,y,
npoin,
493 CALL ecrsel (vainit,ikinit,npinit,neinit,shp,elt,
npoin,npoin1,
494 &
npmax,w,x,zf,nsfond,ncolor,
color,var,nvarin,nvarou,
498 CALL ecrsel(vainit,ikinit,npinit,neinit,shp,elt,
npoin,npoin1,
499 &
npmax,w,x,zf,nsfond,ncolor,
color,var,nvarin,nvarou,
510 &(
nres,lihbor,liubor,livbor,hbor,ubor(:,1),vbor(:,1),
511 & chbord,nbor,
npmax,nptfr)
513 CALL dynami (nptfr,nbor,lihbor,liubor,livbor,litbor,
517 3900
FORMAT(//,
'********************************************',/,
518 &
'OVERSTRESSED ELEMENTS ARE CANCELLED ONLY IN',/,
519 &
'THE CASE OF TRIANGLES ',/,
520 &
'********************************************',/)
521 3901
FORMAT(//,
'********************************************',/,
522 &
'ELEMENTS CAN BE CUT IN FOUR ONLY IN',/,
523 &
'THE CASE OF TRIANGLES ',/,
524 &
'********************************************',/)
525 4000
FORMAT(//,
'***********************************************',/,
526 &
'FAILURE IN CANCELLING BACKWARD DEPENDENCIES ',/,
527 &
' (NUMBER OF ATTEMPTS : 50) ',/,
528 &
'THERE MUST BE TOO FEW NODES IN THE MESH ',/,
529 &
'***********************************************')
530 4100
FORMAT(1x,
'BACKWARD DEPENDENCIES ARE CANCELLED AFTER ',i2,
533 4002
FORMAT(//,
'***********************************************',/,
534 &
'MESH DRY ELEMENT SUPPRESION NOT AVAILABLE FOR ',
535 &
'NON TRIANGULAR MESH.',/,
536 &
'***********************************************')
538 3001
FORMAT(1x,
'THE POINT NUMBER ',i6,
' HAS TO BE REMOVED')
539 3003
FORMAT(//,1x,
'GENERATING GEOMETRY FILE',/,
540 & 1x,
'------------------------')
541 3005
FORMAT(//,1x,
'TREATMENT OF BOUNDARY CONDITIONS',/,
542 & 1x,
'--------------------------------')
543 3007
FORMAT(//,1x,
'MESH DRY ELEMENT SUPPRESSION',
544 & /,1x,
'----------------------------',/)
545 3009
FORMAT(/,1x,
'NO CONNECTED ISLAND')
546 3011
FORMAT(//,1x,
'ELIMINATION OK BACKWARDS DEPENDENCIES',
547 & /,1x,
'------------------------------------',/)
subroutine lecsim(X, Y, IKLE, NCOLOR, TITRE, NOP5, NGEO)
subroutine elmsec(ELPSEC, SEUSEC, TPSFIN, X, Y, IKLE, NCOLOR, ISDRY, IHAUT, NVAR, H, WORK, NEW, STD, NGEO, TEXTE)
subroutine interp(XINIT, YINIT, IKINIT, NPINIT, NEINIT, X, Y, NPOIN, NPMAX, SHP, ELT)
subroutine surcon(X, Y, IKLE, IPO, NBOR, NPTFR, NCOLOR, IFABOR, COLOR)
integer, parameter triangle_elt_type
subroutine fill_lim(NPTFR, NPTFRX, NTRAC, LIHBOR, LIUBOR, LIVBOR, LITBOR, HBOR, UBOR, VBOR, CHBORD, TBOR, ATBOR, BTBOR, NBOR, OLD_NBOR)
subroutine shufle(IKLE, X)
subroutine dynami(NPTFR, NBOR, LIHBOR, LIUBOR, LIVBOR, LITBOR, NCOLFR, MAILLE, NLIM)
subroutine lecfas(X, Y, IKLE, NCOLOR, TFAST1, TFAST2, ADDFAS, NGEO, NFO1)
subroutine projec(X, Y, ZF, XRELV, YRELV, ZRELV, NBAT, NBOR, NPTFR, NFOND, NBFOND, FOND, DM, FONTRI, CORTRI, MAILLE, NGEO, KP1BOR)
double precision, dimension(10, 2) som2
subroutine cordep(IKLE, LGVEC)
subroutine fm3sel(X, Y, NPOIN, NBOR, NFIC, STD, NVAR, TEXTE, TEXTLU, VARCLA, NVARCL, TITRE, SORLEO, NSOR, W, IKLE, IKLES, ITRAV, NELEM, NPTFR, NDP, MXPTVS, MXELVS, DATE, TIME, DEBU, SUIT, ECRI, LISTIN, IPARAM, IPOBO, X_ORIG, Y_ORIG)
subroutine lecadc(X, Y, ZF, IKLE, NGEO)
subroutine lecstb(X, Y, IKLE, NCOLOR, TITRE, NPOIN1, NGEO, NSEC2, NSEC3, NSEC11, NSEC12)
double precision, dimension(10, 2) som
subroutine deparr(IKLE, NDEPAR, LGVEC)
subroutine ranbo(NBOR, KP1BOR, IFABOR, IKLE, NCOLOR, TRAV1, NPTFR, X, Y, NCOLFR, NDP, NPOIN, NELEM, NELMAX, MESH)
integer, parameter quadrangle_elt_type
subroutine elmpb(NBPB, NUMPB, X, Y, IKLE, NCOLOR, ISDRY, NEW)
subroutine verifs(IFABOR, IKLE, TRAV1, NPTFR, NUMPB, NBPB)
character(len=path_len), dimension(5) fond
subroutine lecsellim(NLIM, LIHBOR, LIUBOR, LIVBOR, HBOR, UBOR, VBOR, CHBORD, NBOR, NPMAX, NPTFR, NCOLOR)
character(len=maxlenfile) nombnd2
subroutine ecrsel(VAINIT, IKINIT, NPINIT, NEINIT, SHP, ELT, NPOIN, NPOIN1, NPMAX, W, X, ZF, NSFOND, NCOLOR, COLOR, VAR, NVARIN, NVAROU, NVAR2, STD, FUSION, NRES, NGEO, NFO1, MAILLE, TEXTE)
subroutine divise(X, Y, IKLE, NCOLOR, NPOIN, NELEM, NELMAX, NSOM2, SOM2, INDICP, INDICE, SHP, ELT, NPMAX, CORR, LEVEL)
subroutine lecsel(XINIT, YINIT, IKINIT, NPINIT, NEINIT, X, Y, IKLE, IKLES, W, TITRE, TEXTE, NVARIN, NVAR2, STD, FUSION, NGEO, NFO1, IPOBO, IPARAM, DATE, TIME, X_ORIG, Y_ORIG)
subroutine voisin(IFABOR, NELEM, NELMAX, IELM, IKLE, SIZIKL, NPOIN, NACHB, NBOR, NPTFR, IADR, NVOIS)
subroutine imprim(NPOIN1, NPOIN, TYPELE, NELEM, TITRE, MAILLE, PRECIS)
subroutine lectri(X, Y, IKLE, NCOLOR, NGEO, NFO1)
subroutine renum(X, Y, W, IKLE, NBOR, TRAV1, TRAV2, TAB, NCOLOR, COLOR, NPTFR)
subroutine stbtel(NPOIN1, TYPELE, NFOND, PRECIS, NSFOND, TITRE)
subroutine presel(IKLE, TRAV1, NELEM, NELMAX, NDP, TEXTE, NBFOND, SORLEO, COLOR, NSFOND, NVARIN, NVAROU, MAILLE)
subroutine verifi(X, Y, IKLE, NCOLOR, TRAV1, EPSI, MESH, NDP, NPOIN, NELEM, NELMAX)
subroutine writesellim(NLIM, LIHBOR, LIUBOR, LIVBOR, HBOR, UBOR, VBOR, CHBORD, NBOR, NPMAX, NPTFR)