5 &(m,op,formul,ielm1,ielm2,xmul,f,g,h,u,v,w,mesh,msk,maskel)
110 INTEGER,
INTENT(IN) :: IELM1,IELM2
112 DOUBLE PRECISION,
INTENT(IN) :: XMUL
114 LOGICAL,
INTENT(IN) :: MSK
116 CHARACTER(LEN=16),
INTENT(IN) :: FORMUL
117 CHARACTER(LEN=8),
INTENT(IN) :: OP
119 TYPE(bief_obj),
INTENT(IN) :: F,G,H,U,V,W,MASKEL
120 TYPE(bief_obj),
INTENT(INOUT) :: M
121 TYPE(bief_mesh),
INTENT(INOUT) :: MESH
125 INTEGER NELMAX,NELEM,NPT,SS,I
126 INTEGER,
DIMENSION(:),
POINTER :: IKLE
127 INTEGER,
DIMENSION(:),
POINTER :: ELTSEG,ORISEG
145 IF(
dimens(ielm1).EQ.mesh%DIM1)
THEN 150 eltseg=>mesh%ELTSEG%I
151 oriseg=>mesh%ORISEG%I
153 DO i=1, mesh%M%D%DIM1
162 eltseg=>mesh%ELTSEGBOR%I
163 oriseg=>mesh%ORISEGBOR%I
169 IF(m%STO.EQ.1.OR.m%STO.EQ.3)
THEN 171 ELSEIF(m%STO.EQ.2)
THEN 174 WRITE(
lu,*)
'UNKNOWN STORAGE IN MATRIX' 180 CALL matriy(formul,mesh%M%X%R,
181 & mesh%M%TYPDIA,mesh%M%TYPEXT,
183 & f%R,g%R,h%R,u%R,v%R,w%R,
185 & mesh%XEL%R,mesh%YEL%R,mesh%ZEL%R,
186 & mesh%X%R,mesh%Y%R,mesh%Z%R,
187 & mesh%SURFAC%R,mesh%LGSEG%R,
188 & mesh%IKLE%I,mesh%IKLBOR%I,mesh%NBOR%I,
189 & mesh%NELBOR%I,mesh%NULONE%I,
190 & mesh%NELEM,mesh%NELMAX,
191 & mesh%NELEB,mesh%NELEBX,ielm1,ielm2,ss,
200 IF(npt.GT.mesh%M%D%MAXDIM1)
THEN 201 WRITE(
lu,501) mesh%M%NAME
208 mesh%M%D%ELM = min(ielm1,ielm2)
210 mesh%M%ELMLIN = ielm1
211 mesh%M%ELMCOL = ielm2
215 IF(lego.AND.mesh%M%TYPDIA.EQ.
'Q'.AND.nelem.GT.0)
THEN 219 & ikle,npt,nelem,nelmax,
220 & mesh%W%R,lego,mesh%LV,msk,maskel%R,
225 & ikle,npt,nelem,nelmax,
226 & mesh%W%R,lego,mesh%LV,msk,maskel%R,
234 IF(msk.AND.nelem.GT.0)
THEN 235 CALL om(
'M=MSK(M)',m=mesh%M,n=mesh%M,d=maskel,mesh=mesh)
242 CALL os(
'X=Y ',x=mesh%MSEG%D,y=mesh%M%D)
243 mesh%MSEG%TYPDIA(1:1)=
'Q' 245 IF(mesh%M%TYPEXT.EQ.
'Q'.OR.mesh%M%TYPEXT.EQ.
'S')
THEN 254 IF(mesh%M%STOX.EQ.2)
THEN 255 CALL assex3(mesh%MSEG%X%R,mesh%M%STO,mesh%M%NAME,
256 & mesh%M%ELMLIN,mesh%M%ELMCOL,
257 & mesh%M%TYPEXT,mesh%M%X%R,
259 & mesh%M%TYPEXT,mesh),
261 & mesh%M%TYPEXT,mesh),
263 & mesh,nelmax,eltseg,oriseg)
264 ELSEIF(mesh%M%STOX.EQ.1)
THEN 265 CALL assex3(mesh%MSEG%X%R,mesh%M%STO,mesh%M%NAME,
266 & mesh%M%ELMLIN,mesh%M%ELMCOL,
267 & mesh%M%TYPEXT,mesh%M%X%R,
269 & mesh%M%TYPEXT,mesh),
271 & mesh%M%TYPEXT,mesh),
273 & mesh,nelmax,eltseg,oriseg)
275 WRITE(
lu,*)
'MATRIX: UNKNOWN STORAGE:' 276 WRITE(
lu,*)
'MESH%M%STOX= : ',mesh%M%STOX
281 mesh%MSEG%TYPEXT=mesh%M%TYPEXT
282 mesh%MSEG%ELMLIN = ielm1
283 mesh%MSEG%ELMCOL = ielm2
284 mesh%MSEG%D%ELM = min(ielm1,ielm2)
285 mesh%MSEG%D%DIM1 = npt
287 & mesh%MSEG%TYPEXT,mesh)
289 & mesh%MSEG%TYPEXT,mesh)
297 & mesh%M%TYPEXT,mesh)
299 & mesh%M%TYPEXT,mesh)
308 CALL om(op, m, mesh%M, f, c, mesh)
309 ELSEIF(m%STO.EQ.3)
THEN 310 CALL om(op, m, mesh%MSEG, f, c, mesh)
312 WRITE(
lu,*)
'MATRIX: UNKNOWN STORAGE : ',m%STO
321 501
FORMAT(1x,
'MATRIX (BIEF) : MATRIX ',a6,
' TOO SMALL')
322 2001
FORMAT(1x,
' FOR IELM1 = ',1i6)
323 3001
FORMAT(1x,
' AND IELM2 = ',1i6)
integer function dimens(IELM)
integer function bief_nbpts(IELM, MESH)
integer function bief_nbpel(IELM, MESH)
integer function bief_dim1_ext(IELM1, IELM2, STO, TYPEXT, MESH)
subroutine assvec(X, IKLE, NPOIN, NELEM, NELMAX, W, INIT, LV, MSK, MASKEL, NDP, ERRX)
subroutine om(OP, M, N, D, C, MESH)
integer function bief_dim2_ext(IELM1, IELM2, STO, TYPEXT, MESH)
subroutine matriy(FORMUL, XM, TYPDIA, TYPEXT, XMUL, SF, SG, SH, SU, SV, SW, F, G, H, U, V, W, T, LEGO, XEL, YEL, ZEL, XPT, YPT, ZPT, SURFAC, LGSEG, IKLE, IKLBOR, NBOR, NELBOR, NULONE, NELEM, NELMAX, NELEB, NELEBX, IELM1, IELM2, S, NPLAN, MESH, SIZEXMT, STOX)
subroutine matrix(M, OP, FORMUL, IELM1, IELM2, XMUL, F, G, H, U, V, W, MESH, MSK, MASKEL)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine assex3(XM, STO, NAME, IELM1, IELM2, TYPEXT, XMT, DIM1XMT, DIM2XMT, STOXMT, MESH, NELMAX, ELTSEG, ORISEG)