22 USE bief, ONLY : nbmaxnshare, nptir,
30 CHARACTER(LEN=PATH_LEN) :: NAMEGEO
31 CHARACTER(LEN=PATH_LEN) :: NAMECLI
32 CHARACTER(LEN=8) :: FFORMAT
34 CHARACTER(LEN=80) :: TITLE
36 INTEGER NVAR, NPLAN, NPTFR, NELEBD
37 INTEGER NELEM, NPOIN, NDP, NELEM2, NPOIN2, NDP_BND
38 INTEGER TYP_ELEM, TYP_BND_ELEM
41 INTEGER,
ALLOCATABLE :: IKLES(:)
42 INTEGER,
ALLOCATABLE :: IKLES3D(:)
43 INTEGER,
ALLOCATABLE :: LIHBOR(:),LIUBOR(:)
44 INTEGER,
ALLOCATABLE :: LIVBOR(:),LITBOR(:),COLOR(:)
45 DOUBLE PRECISION,
ALLOCATABLE :: HBOR(:),UBOR(:),VBOR(:)
46 DOUBLE PRECISION,
ALLOCATABLE :: CHBORD(:)
47 DOUBLE PRECISION,
ALLOCATABLE :: TBOR(:),ATBOR(:),BTBOR(:)
48 INTEGER,
ALLOCATABLE :: NBOR(:),IKLE_BND(:)
49 INTEGER,
ALLOCATABLE :: NUMLIQ(:)
50 INTEGER,
ALLOCATABLE :: IFABOR(:,:), NELBOR(:)
51 INTEGER,
ALLOCATABLE :: IKLE(:,:)
52 INTEGER,
ALLOCATABLE :: KP1BOR(:,:)
56 DOUBLE PRECISION,
ALLOCATABLE :: F(:,:)
60 INTEGER TIME(3),DATE(3), DATE_TMP(6)
62 INTEGER :: FIRST, LAST, NFRLIQ
78 WRITE(
lu,*)
'--INPUT GEOMETRY FILE NAME <INPUT_NAME>: ' 81 IF (namegeo.EQ.
' ')
THEN 82 WRITE (
lu,*)
' NO FILENAME ' 86 WRITE(
lu,*)
'INPUT: ',trim(namegeo)
89 INQUIRE (file=namegeo,exist=is)
91 WRITE (
lu,*)
' FILE DOES NOT EXIST: ',trim(namegeo)
97 &
'--INPUT FILE FORMAT <FFORMAT> [MED,SERAFIN,SERAFIND]: ' 99 IF ( (fformat .NE.
'MED ') .AND.
100 & (fformat(1:7) .NE.
'SERAFIN') )
THEN 102 &
' FILE FORMAT MUST BE "MED" OR "SERAFIN" OR "SERAFIND" ' 106 WRITE(
lu,*)
' INPUT: ', fformat
109 WRITE(
lu, *)
'--BOUNDARY CONDITIONS FILE NAME: ' 111 IF (namecli.EQ.
' ')
THEN 112 WRITE (
lu,*)
' NO FILENAME ' 116 WRITE(
lu,*)
'INPUT: ',trim(namecli)
119 INQUIRE (file=namecli,exist=is)
121 WRITE (
lu,*)
'FILE DOES NOT EXIST: ',trim(namecli)
131 CALL open_mesh(fformat, namegeo, ninp,
'READ ', ierr)
132 CALL check_call(ierr,
'PARTEL:OPENMESH:INP')
134 CALL open_bnd(fformat,namecli,ninp,
'READ ',ierr)
135 CALL check_call(ierr,
'PARTEL:OPEN_BND:NCLI')
143 & typ_bnd_elem,nelebd)
149 CALL check_call(ierr,
'PARTEL:GET_MESH_DATE:INP')
151 date(i) = date_tmp(i)
152 time(i) = date_tmp(i+3)
157 nelem2 = nelem/(nplan-1)
167 ALLOCATE (ikles(nelem2*3),stat=ierr)
168 CALL check_allocate(ierr,
'IKLES')
170 ALLOCATE (ikles3d(nelem*ndp),stat=ierr)
171 CALL check_allocate(ierr,
'IKLES3D')
179 ALLOCATE (f(npoin,2),stat=ierr)
180 CALL check_allocate(ierr,
'F')
187 CALL check_call(ierr,
'PARTEL:GET_MESH_CONNECTIVITY:2D')
191 CALL check_call(ierr,
'PARTEL:GET_MESH_CONNECTIVITY:3D')
195 ikles((k-1)*3+j)=ikles3d((k-1)*6+j)
203 CALL check_call(ierr,
'PARTEL:GET_MESH_COORD:X')
205 CALL check_call(ierr,
'PARTEL:GET_MESH_COORD:Y')
212 CALL get_nodes_per_element(typ_bnd_elem,ndp_bnd)
215 CALL check_call(ierr,
'PARTEL:GET_BND_NELEBD:NCLI')
217 CALL check_call(ierr,
'PARTEL:GET_BND_NPOIN:NCLI')
219 ALLOCATE(ikle_bnd(nelebd*ndp_bnd),stat=ierr)
220 CALL check_allocate(ierr,
'PARTEL:IKLE_BND')
221 ALLOCATE(nbor(nptfr),stat=ierr)
222 CALL check_allocate(ierr,
'PARTEL:NBOR')
224 ALLOCATE(lihbor(nptfr),stat=ierr)
225 CALL check_allocate(ierr,
'PARTEL:LIHBOR')
226 ALLOCATE(liubor(nptfr),stat=ierr)
227 CALL check_allocate(ierr,
'PARTEL:LIUBOR')
228 ALLOCATE(livbor(nptfr),stat=ierr)
229 CALL check_allocate(ierr,
'PARTEL:LIVBOR')
230 ALLOCATE(hbor(nptfr),stat=ierr)
231 CALL check_allocate(ierr,
'PARTEL:HBOR')
232 ALLOCATE(ubor(nptfr),stat=ierr)
233 CALL check_allocate(ierr,
'PARTEL:UBOR')
234 ALLOCATE(vbor(nptfr),stat=ierr)
235 CALL check_allocate(ierr,
'PARTEL:VBOR')
236 ALLOCATE(chbord(nptfr),stat=ierr)
237 CALL check_allocate(ierr,
'PARTEL:CHBORD')
238 ALLOCATE(litbor(nptfr),stat=ierr)
239 CALL check_allocate(ierr,
'PARTEL:LITBOR')
240 ALLOCATE(tbor(nptfr),stat=ierr)
241 CALL check_allocate(ierr,
'PARTEL:TBOR')
242 ALLOCATE(atbor(nptfr),stat=ierr)
243 CALL check_allocate(ierr,
'PARTEL:ATBOR')
244 ALLOCATE(btbor(nptfr),stat=ierr)
245 CALL check_allocate(ierr,
'PARTEL:BTBOR')
246 ALLOCATE (numliq(nptfr),stat=ierr)
247 CALL check_allocate(ierr,
'NUMLIQ')
248 ALLOCATE (color(nptfr),stat=ierr)
249 CALL check_allocate(ierr,
'COLOR')
252 & ndp_bnd,ikle_bnd,ierr)
253 CALL check_call(ierr,
'PARTEL:GET_BND_CONNECTIVITY:NCLI')
259 & livbor,hbor,ubor,vbor,chbord,.true.,
260 & litbor,tbor,atbor,btbor,nptfr,ierr)
261 CALL check_call(ierr,
'PARTEL:GET_BND_VALUE:NCLI')
264 CALL check_call(ierr,
'PARTEL:GET_BND_COLOR:NCLI')
269 & (namegeo, ikle, ikles,
270 & kp1bor, numliq, dim_mesh, npoin2, nptfr, npoin, nelem2,
271 & nelbor, liubor, lihbor, nbor, ifabor, f, .true.)
275 CALL check_call(ierr,
'PARTEL:CLOSE_BND:NCLI')
277 CALL check_call(ierr,
'PARTEL:CLOSE_MESH:NINP')
281 CALL get_free_id(nout)
282 OPEN(file=
"liq_bnd.txt", action=
'WRITE', unit=nout,
283 & form=
'FORMATTED', iostat=ierr)
284 CALL check_call(ierr,
'opening liq_bnd.txt')
286 nfrliq = maxval(numliq)
294 IF(numliq(j).NE.i .AND. numliq(mod(j,nptfr)+1).EQ.i)
THEN 295 first = mod(j,nptfr)+1
301 IF(numliq(j).EQ.i .AND. numliq(mod(j,nptfr)+1).NE.i)
THEN 306 WRITE(nout,*) i, first, nbor(first),
307 & f(nbor(first),1), f(nbor(first),2),
309 & f(nbor(last),1), f(nbor(last),2)
subroutine get_bnd_npoin(FFORMAT, FID, TYPE_BND_ELEM, NPTFR, IERR)
subroutine close_mesh(FFORMAT, FILE_ID, IERR, MESH_NUMBER)
subroutine get_bnd_connectivity(FFORMAT, FID, TYP_BND_ELEM, NELEBD, NDP, IKLE_BND, IERR)
subroutine get_bnd_color(FFORMAT, FID, TYP_BND_ELEM, NELEBD, COLOR, IERR)
subroutine numbering_open_boundaries(NAMEINP, IKLE, IKLES, KP1BOR, NUMLIQ, DIM_MESH, NPOIN2, NPTFR, NPOIN, NELEM2, NELBOR, LIUBOR, LIHBOR, NBOR, IFABOR, F, LISTIN)
subroutine get_bnd_nelem(FFORMAT, FID, TYPE_BND_ELEM, NELEM, IERR)
subroutine close_bnd(FFORMAT, FILE_ID, IERR, MESH_NUMBER)
subroutine read_mesh_info(FFORMAT, NFIC, TITLE, NVAR, NPOIN, TYP_ELEM, NELEM, NPTFR, NPTIR, NDP, NPLAN, X_ORIG, Y_ORIG, TYP_BND_ELEM, NELEBD)
subroutine front2(NFRLIQ, LIHBOR, LIUBOR, X, Y, NBOR, KP1BOR, DEJAVU, NPOIN, NPTFR, KLOG, LISTIN, NUMLIQ, MAXFRO)
subroutine get_bnd_numbering(FFORMAT, FID, TYP_BND_ELEM, NPTFR, NBOR, IERR)
subroutine get_mesh_date(FFORMAT, FID, DATE, IERR)
subroutine get_mesh_coord(FFORMAT, FID, JDIM, NDIM, NPOIN, COORD, IERR)
subroutine get_bnd_value(FFORMAT, FID, TYP_BND_ELEM, NELEBD, LIHBOR, LIUBOR, LIVBOR, HBOR, UBOR, VBOR, CHBORD, TRAC, LITBOR, TBOR, ATBOR, BTBOR, NPTFR, IERR)
subroutine get_mesh_connectivity(FFORMAT, FID, TYP_ELEM, IKLE, NELEM, NDP, IERR)
subroutine open_mesh(FFORMAT, FILE_NAME, FILE_ID, OPENMODE, IERR, MESH_NUMBER)
subroutine open_bnd(FFORMAT, FILE_NAME, FILE_ID, OPENMODE, IERR, MESH_NUMBER)