5 &(res,ielm,u,v,f,dt,xmul,cflmax,t1,t2,mesh,msk,maskel)
62 INTEGER,
INTENT(IN) :: IELM
63 LOGICAL,
INTENT(IN) :: MSK
65 DOUBLE PRECISION,
INTENT(IN) :: DT,XMUL
66 DOUBLE PRECISION,
INTENT(OUT) :: CFLMAX
70 TYPE(bief_obj),
INTENT(IN) :: U,V,F,MASKEL
71 TYPE(bief_obj),
INTENT(INOUT) :: RES,T1,T2
72 TYPE(bief_mesh),
INTENT(INOUT) :: MESH
85 CALL cflpsi(t1,u,v,dt,ielm,mesh,msk,maskel)
87 IF(ncsize.GT.1) cflmax=
p_max(cflmax)
94 901
FORMAT(1x,
'VGFPSI: ',1i6,
' SUB-ITERATIONS REQUIRED FOR THE' 95 & ,/,1x,
' PSI SCHEME. DECREASE THE TIME-STEP')
103 CALL os(
'X=Y ' , x=t1 , y=f )
105 CALL vector(mesh%T,
'=',
'MASBAS ',ielm,
106 & 1.d0,f,f,f,f,f,f,mesh,msk,maskel)
107 IF(ncsize.GT.1)
CALL parcom(mesh%T,2,mesh)
108 CALL os(
'X=1/Y ',x=mesh%T,y=mesh%T,
109 & iopt=2,infini=0.d0,zero=1.d-8)
119 IF(it.EQ.1)
CALL os(
'X=0 ',x=res)
120 CALL vector(t2,
'=',
'VGRADF PSI',ielm,
121 & xmul,t1,t1,t1,u,v,v,mesh,msk,maskel)
122 CALL os(
'X=X+CY ',x=res,y=t2,c=1.d0/nit)
123 IF(ncsize.GT.1)
CALL parcom(t2,2,mesh)
124 CALL os(
'X=X+CYZ ',x=t1,y=t2,z=mesh%T,c=-ddt/xmul)
126 CALL vector(res,
'=',
'VGRADF PSI',ielm,
127 & xmul,t1,t1,t1,u,v,v,mesh,msk,maskel)
integer function bief_nbpts(IELM, MESH)
subroutine cflpsi(SYGMA, U, V, DT, IELM, MESH, MSK, MASKEL)
subroutine vgfpsi(RES, IELM, U, V, F, DT, XMUL, CFLMAX, T1, T2, MESH, MSK, MASKEL)
subroutine vector(VEC, OP, FORMUL, IELM1, XMUL, F, G, H, U, V, W, MESH, MSK, MASKEL, LEGO, ASSPAR)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine parcom(X, ICOM, MESH)
subroutine maxi(XMAX, IMAX, X, NPOIN)