155 INTEGER,
INTENT(IN) :: LF
159 DOUBLE PRECISION ECRHMU,MODHMU
161 DOUBLE PRECISION CBID
164 DOUBLE PRECISION ERREUR1,ERREURT
165 DOUBLE PRECISION XMUL,XK,ZERO
173 INTRINSIC abs,min,max,log,cos,sin,atan
186 CALL os(
'X=C ',
x=
mu,
c=0.d0)
187 CALL os(
'X=C ',
x=
fw,
c=0.d0)
208 IF ( ((
courant).AND.(iterkn.GT.0))
209 & .OR.((
langauto ).AND.(iterkn.GT.0)) )
THEN 215 IF(
debug.GT.0)
WRITE(
lu,*)
' - COMPUTING WAVE VECTOR (1st)' 222 wr%R(i)=sqrt(
grav*
k%R(i)*tanh(
k%R(i)*
h%R(i)))
223 c%R(i) =
wr%R(i)/
k%R(i)
224 cg%R(i)=0.5d0*
c%R(i)*
225 & (1.d0 + 2.d0*
k%R(i)*
h%R(i)/sinh(2.d0*
k%R(i)*
h%R(i)))
227 IF(
debug.GT.0)
WRITE(
lu,*)
' - WAVE VECTOR (1st) COMPUTED' 250 IF(
debug.GT.0)
WRITE(
lu,*)
' - ACTUALIZING BOUNDARY CONDITIONS' 252 IF(
debug.GT.0)
WRITE(
lu,*)
' - BOUNDARY CONDITIONS ACTUALIZED' 261 IF(
debug.GT.0)
WRITE(
lu,*)
' - PREPARING THE AM MATRIX' 293 CALL os(
'X=YZ ' ,
x=
t2 ,
y=
k , z=
k)
304 WRITE(
lu,*)
'IT IS NOT POSSIBLE TO USE ' 305 WRITE(
lu,*)
'CURRENT + BOTTOM EFFECTS AT THE SAME TIME' 306 WRITE(
lu,*)
'- FOR CURRENT ALONE, FIX IPENTO=0' 307 WRITE(
lu,*)
'- FOR BOTTOM EFFECTS ALONE, DON T USE CURRENT' 308 WRITE(
lu,*)
'-------------------------' 309 WRITE(
lu,*)
'THE CODE IS GOING TO STOP' 310 WRITE(
lu,*)
'-------------------------' 361 IF (
nptfr .GT. 0)
THEN 378 IF (
nptfr .GT. 0)
THEN 393 IF (
nptfr .GT. 0)
THEN 401 IF (
nptfr .GT. 0)
THEN 411 IF (
nptfr .GT. 0)
THEN 425 IF(
debug.GT.0)
WRITE(
lu,*)
' - AM MATRIX PREPARED' 430 IF(
debug.GT.0)
WRITE(
lu,*)
' - PREPARING SECOND MEMBERS CV1,CV2' 444 CALL os(
'X=C ',
x=
t1,
c=0.d0)
446 IF (
nptfr .GT. 0)
THEN 455 CALL os(
'X=C ',
x=
t1,
c=0.d0 )
456 CALL os(
'X=C ',
x=
t4,
c=1.d0 )
457 IF (
nptfr .GT. 0)
THEN 469 CALL os(
'X=C ',
x=
t1,
c=0.d0)
470 IF (
nptfr .GT. 0)
THEN 479 CALL os(
'X=C ',
x=
t1,
c=0.d0 )
480 CALL os(
'X=C ',
x=
t4,
c=1.d0 )
481 IF (
nptfr .GT. 0)
THEN 489 IF (
nptfr .GT. 0)
THEN 497 IF (
nptfr .GT. 0)
THEN 505 IF (
nptfr .GT. 0)
THEN 523 CALL os(
'X=C ' ,
x=
t1,
c=0.d0)
524 IF (
nptfr .GT. 0)
THEN 533 CALL os(
'X=C ',
x=
t1,
c=0.d0 )
534 CALL os(
'X=C ',
x=
t4,
c=1.d0 )
536 IF (
nptfr .GT. 0)
THEN 548 CALL os(
'X=C ',
x=
t1,
c=0.d0)
549 IF (
nptfr .GT. 0)
THEN 558 CALL os(
'X=C ',
x=
t1,
c=0.d0)
559 CALL os(
'X=C ',
x=
t4,
c=1.d0)
561 IF (
nptfr .GT. 0)
THEN 570 IF (
nptfr .GT. 0)
THEN 578 IF (
nptfr .GT. 0)
THEN 586 IF (
nptfr .GT. 0)
THEN 596 IF(
debug.GT.0)
WRITE(
lu,*)
' - SECOND MEMBERS CV1,CV2 PREPARED' 601 IF(
debug.GT.0)
WRITE(
lu,*)
' - PREPARING THE BM MATRIX' 615 IF ((
courant).AND.(iterkn.GT.0))
THEN 633 & 1.d0 ,
s ,
s ,
s ,
s ,
s ,
s ,
637 & 1.d0 ,
uc ,
s ,
s ,
s ,
s ,
s ,
641 & 1.d0 ,
vc ,
s ,
s ,
s ,
s ,
s ,
659 IF (
nptfr .GT. 0)
THEN 671 IF (
nptfr .GT. 0)
THEN 679 IF (
nptfr .GT. 0)
THEN 687 IF (
nptfr .GT. 0)
THEN 695 IF (
nptfr .GT. 0)
THEN 714 IF ((.NOT.
courant).OR.iterkn.EQ.0)
THEN 734 IF(
debug.GT.0)
WRITE(
lu,*)
' - BM MATRIX PREPARED' 744 WRITE(
lu,221) itermu+1
747 221
FORMAT(/,1
x,
'SUB-ITERATION NUMBER :',1
x,i3,/)
749 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING DIRICH' 751 IF(
debug.GT.0)
WRITE(
lu,*)
' - DIRICH CALLED' 760 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING CNTPRE' 763 IF(
debug.GT.0)
WRITE(
lu,*)
' - CNTPRE CALLED' 789 IF(itermu.EQ.0.AND.lf.EQ.0)
THEN 797 241
FORMAT(/,1
x,
'LINEAR SYSTEM SOLVING (SOLVE)',/)
799 IF(
debug.GT.0)
WRITE(
lu,*)
' - SOLVING THE LINEAR SYSTEM' 801 IF(
debug.GT.0)
WRITE(
lu,*)
' - LINEAR SYSTEM SOLVED' 813 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING CALDIR' 815 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALDIR CALLED' 837 IF (iterkn.GT.0)
THEN 841 & sqrt(
t5%R(i)**2+
t6%R(i)**2)
844 WRITE(
lu,*)
'--------------------------------------------' 845 WRITE(
lu,*)
'WAVE-CURRENT : DIFF. BETWEEN 2 ITER. =',
847 WRITE(
lu,*)
'LOOP FOR WAVE-CURRENT : TOLERANCE =',
850 WRITE(
lu,*)
'INITIAL LOOP FOR WAVE-CURRENT COMPLETED' 852 WRITE(
lu,*)
'----------------------------------------------' 869 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING CALTETAP' 872 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALTETAP CALLED' 875 IF (iterkn.GT.0)
THEN 883 WRITE(
lu,*)
'-------------------------------------------' 884 WRITE(
lu,*)
'AUTO-ANGLES : DIFF. BETWEEN 2 ITER. =',
886 WRITE(
lu,*)
'LOOP FOR AUTO-ANGLE : TOLERANCE =',
893 WRITE(
lu,*)
'INITIAL LOOP FOR AUTOMATIC ANGLES COMPLETED' 895 WRITE(
lu,*)
'--------------------------------------------' 901 IF (ncsize.GT.1)
THEN 902 erreurt =
p_max(erreurt)
903 erreur1 =
p_max(erreur1)
909 & .OR.(iterkn.EQ.0) )
THEN 912 IF (iterkn.LE.
nittp)
THEN 927 101
FORMAT(/,1
x,
'BERKHO (ARTEMIS): YOU REACHED THE MAXIMUM',
928 & 1
x,
'NUMBER OF SUB-ITERATIONS FOR CURRENT OR TETAP :)',1
x,i3)
930 203
FORMAT(/,1
x,
'NUMBER OF SUB-ITERATIONS DIRECTION / CURRENT :',
944 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING CALCMU' 946 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALCMU CALLED' 951 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING RELAXMU' 952 CALL relaxmu(ecrhmu,modhmu,itermu)
953 IF(
debug.GT.0)
WRITE(
lu,*)
' - CALLING RELAXMU' 961 WRITE(
lu,*)
'----------------------------------------------- ' 962 IF (ecrhmu.GT.
epsdis*modhmu)
GOTO 98
969 201
FORMAT(/,1
x,
'NUMBER OF SUB-ITERATIONS FOR DISSIPATION:',
type(bief_obj), target am2
type(bief_obj), target unk
type(bief_obj), target am1
type(bief_obj), target mat
type(bief_obj), pointer t14
type(bief_obj), pointer t6
type(bief_obj), target mask3
type(bief_obj), target mask4
type(bief_obj), target aphi2b
type(bief_obj), target dgrx1b
type(bief_obj), target mask1
type(bief_obj), target bphi1b
type(bief_obj), target tetap
type(bief_obj), target dphi2b
type(bief_obj), target mbor
subroutine solve(X, A, B, TB, CFG, INFOGR, MESH, AUX)
subroutine calcmu(ITERMU)
type(bief_obj), target maskel
type(bief_obj), target kancx
double precision, dimension(:), pointer y
type(bief_obj), target aphi3b
type(bief_obj), target tb
type(bief_obj), target cgry1b
type(bief_obj), target mask5
type(bief_obj), target aphi1b
type(bief_obj), target phii
type(bief_obj), pointer t5
type(bief_obj), target cphi1b
subroutine relaxmu(ECRHMU, MODHMU, ITERMU)
type(bief_obj), target phib
type(bief_obj), pointer t15
subroutine om(OP, M, N, D, C, MESH)
type(bief_obj), target tetapm
type(bief_obj), target cv2
subroutine solvelambda(XK, XUC, XVC, XKX, XKY, XH)
type(bief_obj), pointer t2
type(bief_obj), target bm1
type(bief_mesh), target mesh
type(bief_obj), target mask2
type(bief_obj), target wr
type(bief_obj), target aphi4b
subroutine cntpre(DAM, NPOIN, IPRECO, IPREC2)
type(bief_obj), target dphi1b
type(bief_obj), target bphi2b
type(bief_obj), target fw
type(bief_obj), target inci
type(bief_obj), target dphi4b
type(bief_obj), pointer t4
type(bief_obj), target phir
type(bief_obj), target uc
type(bief_obj), target vc
subroutine matrix(M, OP, FORMUL, IELM1, IELM2, XMUL, F, G, H, U, V, W, MESH, MSK, MASKEL)
double precision, dimension(:), pointer x
subroutine dirich(F, S, SM, FBOR, LIMDIR, WORK, MESH, KDIR, MSK, MASKPT)
type(bief_obj), target rhs
type(bief_obj), target sbid
subroutine vector(VEC, OP, FORMUL, IELM1, XMUL, F, G, H, U, V, W, MESH, MSK, MASKEL, LEGO, ASSPAR)
subroutine osdb(OP, X, Y, Z, C, MESH)
type(bief_obj), target cg
subroutine caltetap(TETA, XSGBOR, YSGBOR, ADIR, NPTFR)
type(bief_obj), target qb
type(bief_obj), target cgrx1b
type(bief_obj), target cv1
type(bief_obj), pointer t3
type(bief_obj), target bm2
type(bief_obj), target kancy
type(bief_obj), target mu
type(bief_obj), target am3
type(bief_obj), target bphi4b
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
type(bief_obj), target cphi2b
type(bief_obj), target cphi4b
type(bief_obj), pointer t1
type(bief_obj), target lidir
type(bief_obj), pointer t13
type(bief_obj), target dgry1b
type(bief_obj), pointer t16
subroutine lump(DIAG, A, MESH, XMUL)
type(bief_obj), target cphi3b
type(bief_obj), target bphi3b
type(bief_obj), target dphi3b