The TELEMAC-MASCARET system  trunk
phbor.f
Go to the documentation of this file.
1 ! ****************
2  SUBROUTINE phbor
3 ! ****************
4 !
5 !
6 !***********************************************************************
7 ! ARTEMIS V7P2 Nov 2016
8 !***********************************************************************
9 !
10 !brief TRANSLATES THE BOUNDARY CONDITIONS SPECIFIED
11 !+ BY THE USER,
12 !+ I.E. COMPUTES THE COEFFICIENTS
13 !+ APHIR, APHII, ... FOR EACH BOUNDARY SEGMENT.
14 !
15 !history J-M HERVOUET (LNH)
16 !+
17 !+
18 !+ LINKED TO BIEF 5.0
19 !
20 !history D. AELBRECHT (LNH)
21 !+ 21/08/2000
22 !+ V5P1
23 !+
24 !
25 !history C. DENIS (SINETICS)
26 !+ 18/03/2010
27 !+ V6P0
28 !+
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 13/07/2010
32 !+ V6P0
33 !+ Translation of French comments within the FORTRAN sources into
34 !+ English comments
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 21/08/2010
38 !+ V6P0
39 !+ Creation of DOXYGEN tags for automated documentation and
40 !+ cross-referencing of the FORTRAN sources
41 !
42 !history C.PEYRARD (LNHE)
43 !+ 01/06/2012
44 !+ V6P0
45 !+ KSORT : end of application to neighbours
46 !+ KINC : end of application to the I+1 node
47 !+ SEGMENT : If a segment links a solid node to a liquid node,
48 !+ this segment is regarded as solid.
49 !+ BUG correction : Full KINC boundaries taken into account
50 !+ NEW boundary condition : incident potential can be given by the user
51 !+ Parallel correction : - End of HBT,CGT,CTT,KT,XT,YT tables
52 !+ only HB%R,CG%R, etc... are used.
53 !+ - No use of NCSIZE variable.
54 !
55 !history C.PEYRARD (LNHE)
56 !+ 18/03/2014
57 !+ V7P0
58 !+ KSORT : application to neighbours (best for automatic angles)
59 !
60 !history N.DURAND (HRW)
61 !+ November 2016
62 !+ V7P2
63 !+ Phase calculation brought back inside PHBOR
64 !+ (automatic in the sense of applicable to general case, different
65 !+ from that using KPHREF)
66 !
67 !history S.BOURBAN (HRW)
68 !+ 23/01/2017
69 !+ V7P3
70 !+ Implementing a cumulative sorting of each boundary allowing for
71 !+ varying bathymetry along each boundary segment.
72 !
73 !history N.DURAND (HRW)
74 !+ August 2017
75 !+ V7P3
76 !+ PI now defined in DECLARATIONS_ARTEMIS
77 !
78 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
80 !
81  USE bief
84 !
86  IMPLICIT NONE
87 !
88  INTEGER I,I0,IZ1,IZ2,IG,IGN,IGP,N
89 !
90 !
91  DOUBLE PRECISION GRE, GIM
92  DOUBLE PRECISION DDXGRE,DDYGRE,DDXGIM,DDYGIM
93 !
94 
95  DOUBLE PRECISION PHASEOI,X0,Y0
96  DOUBLE PRECISION AUXI1,AUXIC,AUXIS
97  DOUBLE PRECISION SDIST,MINDIST
98 ! DOUBLE PRECSION AUXI2
99  INTRINSIC cos,sin
100 !
101  DOUBLE PRECISION, PARAMETER :: CHOUIA = 1.d-9
102 !
103 !-----------------------------------------------------------------------
104 !
105  pi = 4.d0 * atan( 1.d0 )
106  degrad = pi / 180.d0
107  raddeg = 180.d0 / pi
108 !
109 !-----------------------------------------------------------------------
110 !
111 ! INITIALISES LIDIR TO KSORT (A DIFFERENT VALUE FROM KENT)
112 ! IN ORDER NOT TO TAKE NODES IMPOSED IN PRIDIH INTO ACCOUNT,
113 ! WHEN IT HAS NOT BEEN REQUESTED.
114 !
115  DO i=1,nptfr
116  lidir%I(i) = ksort
117 ! BEWARE: IT IS ASSUMED HERE THAT NPTFRX=NPTFR
118  lidir%I(i+nptfr) = ksort
119  IF (lihbor%I(i).EQ.kent) THEN
120  lihbor%I(i) = kinc
121  ENDIF
122  aphi1b%R(i) = 0.d0
123  bphi1b%R(i) = 0.d0
124  cphi1b%R(i) = 0.d0
125  dphi1b%R(i) = 0.d0
126  aphi2b%R(i) = 0.d0
127  bphi2b%R(i) = 0.d0
128  cphi2b%R(i) = 0.d0
129  dphi2b%R(i) = 0.d0
130  aphi3b%R(i) = 0.d0
131  bphi3b%R(i) = 0.d0
132  cphi3b%R(i) = 0.d0
133  dphi3b%R(i) = 0.d0
134  aphi4b%R(i) = 0.d0
135  bphi4b%R(i) = 0.d0
136  cphi4b%R(i) = 0.d0
137  dphi4b%R(i) = 0.d0
138  cgrx1b%R(i) = 0.d0
139  cgry1b%R(i) = 0.d0
140  dgrx1b%R(i) = 0.d0
141  dgry1b%R(i) = 0.d0
142  ENDDO
143 !
144 ! -------------------------------------------------
145 ! COEFFICIENTS FOR A INCIDENT WAVE
146 ! -------------------------------------------------
147 !
148 !-----------------------------------------------------------------------
149 !
150 ! PROCESSING EACH BOUNDARY SEGMENT INDEPEDENTLY,
151 ! STARTING WITH THE FIRST NODE HIT BY THE INCOMING WAVE
152 !
153  DO n = 1,nfrliq
154 !
155 ! ***********************************************************
156 ! LOOKING FOR AN APPROPRIATE STARTING POINT: I0 (AND END POINTS IZS)
157 !
158  i0 = 0
159  DO i=1,nptfr
160  IF( numliq%I(i).EQ.n ) THEN
161 ! SIGNED DISTANCE BETWEEN THE CREST OF THE WAVE AND THE BOUNDARY
162 ! ( TETAB%R(I) DEFINED AS WAVE PROPAGATING TOWARDS )
163  ig = mesh%NBOR%I(i)
164  sdist = cos(tetab%R(i)*degrad)*( x_phref*y_phref-x(ig) )
165  & + sin(tetab%R(i)*degrad)*( x_phref*y_phref-y(ig) )
166  IF( i0.EQ.0 ) THEN
167  i0 = i
168  mindist = sdist
169  ELSE
170  IF( sdist.GT.mindist ) THEN
171  i0 = i
172  mindist = sdist
173  ENDIF
174  ENDIF
175  ENDIF
176  ENDDO
177 !
178  IF( i0.EQ.0 ) cycle
179 !
180  iz1 = mesh%KP1BOR%I(i0)
181  iz2 = mesh%KP1BOR%I(i0+nptfr)
182  DO WHILE( numliq%I(iz1).EQ.n .AND. numliq%I(iz2).EQ.n )
183  iz1 = mesh%KP1BOR%I(iz1)
184  iz2 = mesh%KP1BOR%I(iz2+nptfr)
185  IF( iz1.EQ.iz2 ) EXIT
186  ENDDO
187  IF( numliq%I(iz1).NE.n ) THEN
188  DO WHILE( numliq%I(iz2).EQ.n )
189  iz2 = mesh%KP1BOR%I(iz2+nptfr)
190  ENDDO
191  ENDIF
192  IF( numliq%I(iz2).NE.n ) THEN
193  DO WHILE( numliq%I(iz1).EQ.n )
194  iz1 = mesh%KP1BOR%I(iz1)
195  ENDDO
196  ENDIF
197 !
198 ! CASE OF A BOUNDARY SPLIT OVER MORE THAN ONE PROCESSOR
199 ! /!\ THIS SHOULD NOT HAPPEN AGAIN BECAUSE ARTEMIS'S SPECIAL TREATMENT
200 ! IF( NCSIZE.GT.1 ) THEN
201 ! SDIST = MDIST
202 ! MDIST = P_MIN( MDIST )
203 ! IG = 0
204 ! IF( ABS(SDIST-MDIST).LT.CHOUIA ) IG = I0
205 ! I0 = P_MAX( I0 )
206 ! ENDIF
207 !
208 ! ***********************************************************
209 ! DUAL WAVE PROPAGATION ALONG THE BOUNDARY, STARTING FROM I0
210 !
211  IF (lihbor%I(i0).EQ.kinc) THEN
212 !
213  WRITE(lu,112) n,mesh%NBOR%I(i0),
214  & x(mesh%NBOR%I(i0)),y(mesh%NBOR%I(i0))
215  112 FORMAT(/,1x,'PHBOR: BOUNDARY ',i3,
216  & ' IS INCIDENT - FIRST IMPACT NODE ',i6,
217  & '[',f12.4,',',f12.4,']')
218 !
219 ! 1. FOLLOWING THE BOUNDARY NODES GOING ONE WAY (INCL. I0)
220  i = i0
221  ig = mesh%NBOR%I(i)
222  x0 = x_phref
223  y0 = y_phref
224  phaseoi = 0.d0
225  DO WHILE( numliq%I(i).EQ.n )
226 ! -- LOCAL CONSTANTS
227  auxic = cos(tetab%R(i)*degrad)
228  auxis = sin(tetab%R(i)*degrad)
229  auxi1 = grav/omega * hb%R(i)/2.d0
230 ! -- AUTOMATIC PHASE CALCULATION (TETAB HAVE TO BE UNIFORM ON THE BOUNDARY)
231  IF(lphaseauto) THEN
232  phaseoi =
233  & kphref*auxic*( x(ig)-x0 ) + kphref*auxis*( y(ig)-y0 )
234  ELSE
235  phaseoi = phaseoi +
236  & k%R(ig)*auxic*( x(ig)-x0 ) + k%R(ig)*auxis*( y(ig)-y0 )
237 ! -- INCREMENT WITHIN
238  x0=x(ig)
239  y0=y(ig)
240  ENDIF
241 ! -- INCIDENT WAVE --> INCIDENT POTENTIAL (REAL, IMAGINAR)
242  gre= auxi1*sin( alfap%R(i)*degrad + phaseoi)
243  gim=-auxi1*cos( alfap%R(i)*degrad + phaseoi)
244 ! -- INCIDENT WAVE --> GRADIENTS (REAL, IMAGINAR)
245  ddxgre= auxi1*cos(alfap%R(i)*degrad+phaseoi)*auxic*k%R(ig)
246  ddygre= auxi1*cos(alfap%R(i)*degrad+phaseoi)*auxis*k%R(ig)
247  ddxgim= auxi1*sin(alfap%R(i)*degrad+phaseoi)*auxic*k%R(ig)
248  ddygim= auxi1*sin(alfap%R(i)*degrad+phaseoi)*auxis*k%R(ig)
249 ! -- MATRIX AM AND BM COEFFICIENTS
250  aphi1b%R(i) = - k%R(ig) * c%R(ig) * cg%R(ig)
251  & * cos(tetap%R(i)*degrad)
252  bphi1b%R(i) = 0.d0
253 ! -- SECOND MEMBER CV1 AND CV2 COEFFICIENTS
254 ! i * K * Gamma (multiplied by "- cos THETAP" in BERKHO)
255  cphi1b%R(i) = ( -gim*k%R(ig) ) *c%R(ig)*cg%R(ig)
256  dphi1b%R(i) = ( gre*k%R(ig) ) *c%R(ig)*cg%R(ig)
257 ! -- GRAD(Gamma) will be used in BERKHO ...
258  cgrx1b%R(i)= ( ddxgre ) *c%R(ig)*cg%R(ig)
259  cgry1b%R(i)= ( ddygre ) *c%R(ig)*cg%R(ig)
260  dgrx1b%R(i)= ( ddxgim ) *c%R(ig)*cg%R(ig)
261  dgry1b%R(i)= ( ddygim ) *c%R(ig)*cg%R(ig)
262 ! -- WHILE INCREMENT
263  IF( i.EQ.iz1 ) EXIT
264  i = mesh%KP1BOR%I(i)
265  ig = mesh%NBOR%I(i)
266  ENDDO
267 !
268 ! 2. FOLLOWING THE BOUNDARY GOING THE OTHER WAY (INCL. I0)
269  i = i0
270  ig = mesh%NBOR%I(i)
271  x0 = x_phref
272  y0 = y_phref
273  phaseoi = 0.d0
274  DO WHILE( numliq%I(i).EQ.n )
275 ! -- LOCAL CONSTANTS
276  auxic = cos(tetab%R(i)*degrad)
277  auxis = sin(tetab%R(i)*degrad)
278  auxi1 = grav/omega * hb%R(i)/2.d0
279 ! -- AUTOMATIC PHASE CALCULATION (TETAB HAVE TO BE UNIFORM ON THE BOUNDARY)
280  IF(lphaseauto) THEN
281  phaseoi =
282  & kphref*auxic*( x(ig)-x0 ) + kphref*auxis*( y(ig)-y0 )
283  ELSE
284  phaseoi = phaseoi +
285  & k%R(ig)*auxic*( x(ig)-x0 ) + k%R(ig)*auxis*( y(ig)-y0 )
286 ! -- INCREMENT WITHIN
287  x0=x(ig)
288  y0=y(ig)
289  ENDIF
290 ! -- INCIDENT WAVE --> INCIDENT POTENTIAL (REAL, IMAGINAR)
291  gre= auxi1*sin( alfap%R(i)*degrad + phaseoi)
292  gim=-auxi1*cos( alfap%R(i)*degrad + phaseoi)
293 ! -- INCIDENT WAVE --> GRADIENTS (REAL, IMAGINAR)
294  ddxgre= auxi1*cos(alfap%R(i)*degrad+phaseoi)*auxic*k%R(ig)
295  ddygre= auxi1*cos(alfap%R(i)*degrad+phaseoi)*auxis*k%R(ig)
296  ddxgim= auxi1*sin(alfap%R(i)*degrad+phaseoi)*auxic*k%R(ig)
297  ddygim= auxi1*sin(alfap%R(i)*degrad+phaseoi)*auxis*k%R(ig)
298 ! -- MATRIX AM AND BM COEFFICIENTS
299  aphi1b%R(i) = - k%R(ig) * c%R(ig) * cg%R(ig)
300  & * cos(tetap%R(i)*degrad)
301  bphi1b%R(i) = 0.d0
302 ! -- SECOND MEMBER CV1 AND CV2 COEFFICIENTS
303 ! i * K * Gamma (multiplied by "- cos THETAP" in BERKHO)
304  cphi1b%R(i) = ( -gim*k%R(ig) ) *c%R(ig)*cg%R(ig)
305  dphi1b%R(i) = ( gre*k%R(ig) ) *c%R(ig)*cg%R(ig)
306 ! -- GRAD(Gamma) will be used in BERKHO ...
307  cgrx1b%R(i)= ( ddxgre ) *c%R(ig)*cg%R(ig)
308  cgry1b%R(i)= ( ddygre ) *c%R(ig)*cg%R(ig)
309  dgrx1b%R(i)= ( ddxgim ) *c%R(ig)*cg%R(ig)
310  dgry1b%R(i)= ( ddygim ) *c%R(ig)*cg%R(ig)
311 ! -- WHILE INCREMENT
312  IF( i.EQ.iz2 ) EXIT
313  i = mesh%KP1BOR%I(i+nptfr)
314  ig = mesh%NBOR%I(i)
315  ENDDO
316 
317  ENDIF
318 !
319 ! ***********************************************************
320 !
321  ENDDO
322 !
323 ! INITIALISATION OF PHASE VARIABLES FOR AUTOMATIC CALCULATION
324  x0 = x_phref
325  y0 = y_phref
326  phaseoi = 0d0
327 !
328  DO i=1,nptfr
329 !
330 ! ********************************
331 ! GLOBAL NUMBER OF THE BOUNDARY NODE I
332 ! ********************************
333 !
334  ig = mesh%NBOR%I(i)
335 !
336 ! ******************************************
337 ! GLOBAL NUMBER OF THE BOUNDARY NODE PRECEDING I
338 ! ******************************************
339 !
340  ign = mesh%NBOR%I(mesh%KP1BOR%I(i+nptfr))
341 !
342 ! ****************************************
343 ! GLOBAL NUMBER OF THE BOUNDARY NODE FOLLOWING I
344 ! ****************************************
345 !
346  igp = mesh%NBOR%I(mesh%KP1BOR%I(i))
347 
348 ! -------------------------------------------------
349 ! COEFFICIENTS FOR AN INCIDENT WAVE
350 ! -------------------------------------------------
351 ! ALREADY TREATED ABOVE
352 !
353 ! IF (LIHBOR%I(I).EQ.KINC) THEN
354 !
355 ! ENDIF
356 !
357 ! -------------------------------------------------
358 ! COEFFICIENTS FOR AN INCIDENT POTENTIAL
359 ! -------------------------------------------------
360 !
361  IF (lihbor%I(i).EQ.kpot) THEN
362 !
363 !------------ POTENTIAL (REAL, IMAGINAR)
364  gre=prb%R(i)
365  gim=pib%R(i)
366 ! ----------- GRADIENTS (REAL, IMAGINAR)
367  ddxgre= ddxprb%R(i)
368  ddygre= ddyprb%R(i)
369  ddxgim= ddxpib%R(i)
370  ddygim= ddypib%R(i)
371 ! --------COEFFICIENTS
372 ! -- MATRIX AM AND BM COEFFICIENTS
373  aphi1b%R(i) = - k%R(ig) * c%R(ig) * cg%R(ig)
374  & * cos(tetap%R(i)*degrad)
375  bphi1b%R(i) = 0.d0
376 ! -- SECOND MEMBER CV1 AND CV2 COEFFICIENTS
377 ! ---- i * K * Gamma (multiplied by "- cos THETAP" in BERKHO)
378  cphi1b%R(i) = ( -gim*k%R(ig) ) *c%R(ig)*cg%R(ig)
379  dphi1b%R(i) = ( gre*k%R(ig) ) *c%R(ig)*cg%R(ig)
380 ! ---- GRAD(Gamma) will be used in BERKHO...
381  cgrx1b%R(i)= ( ddxgre ) *c%R(ig)*cg%R(ig)
382  cgry1b%R(i)= ( ddygre ) *c%R(ig)*cg%R(ig)
383  dgrx1b%R(i)= ( ddxgim ) *c%R(ig)*cg%R(ig)
384  dgry1b%R(i)= ( ddygim ) *c%R(ig)*cg%R(ig)
385  ENDIF
386 ! -------------------------------------------------
387 ! COEFFICIENTS FOR A FREE EXIT BOUNDARY SEGMENT
388 ! -------------------------------------------------
389 !
390  IF(lihbor%I(i).EQ.ksort) THEN
391 !
392  aphi2b%R(i) = - k%R(ig) * c%R(ig) * cg%R(ig)
393  & * cos(tetap%R(i)*degrad)
394  bphi2b%R(i) = 0.d0
395  cphi2b%R(i) = 0.d0
396  dphi2b%R(i) = 0.d0
397 !
398  ELSEIF (lihbor%I(mesh%KP1BOR%I(i)).EQ.ksort) THEN
399  aphi2b%R(i) = - k%R(ig) * c%R(ig) * cg%R(ig)
400  & * cos(tetap%R(mesh%KP1BOR%I(i))*degrad)
401  bphi2b%R(i) = 0.d0
402  cphi2b%R(i) = 0.d0
403  dphi2b%R(i) = 0.d0
404 !
405  ELSEIF (lihbor%I(mesh%KP1BOR%I(i+nptfr)).EQ.ksort) THEN
406  aphi2b%R(i) = - k%R(ig) * c%R(ig) * cg%R(ig)
407  & * cos(tetap%R(mesh%KP1BOR%I(i+nptfr))*degrad)
408  bphi2b%R(i) = 0.d0
409  cphi2b%R(i) = 0.d0
410  dphi2b%R(i) = 0.d0
411 !
412  ELSE
413  aphi2b%R(i) = 0.d0
414  bphi2b%R(i) = 0.d0
415  cphi2b%R(i) = 0.d0
416  dphi2b%R(i) = 0.d0
417  ENDIF
418 !
419 ! -------------------------------------------
420 ! COEFFICIENTS FOR A SOLID BOUNDARY SEGMENT
421 ! -------------------------------------------
422 !
423  IF (lihbor%I(i).EQ.klog) THEN
424 !
425  auxi1 = k%R(ig) * c%R(ig) * cg%R(ig) *
426  & cos(tetap%R(i)*degrad) /
427  & (1.d0 + rp%R(i)*rp%R(i) +
428  & 2.d0*rp%R(i)*cos(alfap%R(i)*degrad))
429 !
430  aphi3b%R(i) = - (1.d0 - rp%R(i) * rp%R(i) ) * auxi1
431 !
432  bphi3b%R(i) = 2.d0*rp%R(i)*sin(alfap%R(i)*degrad) * auxi1
433 !
434  cphi3b%R(i) = 0.d0
435 !
436  dphi3b%R(i) = 0.d0
437 !
438  ELSEIF (lihbor%I(mesh%KP1BOR%I(i)).EQ.klog) THEN
439  auxi1 = k%R(ig) * c%R(ig) * cg%R(ig) *
440  & cos(tetap%R(mesh%KP1BOR%I(i))*degrad) /
441  & (1.d0 + rp%R(mesh%KP1BOR%I(i))*rp%R(mesh%KP1BOR%I(i))
442  & +2.d0 * rp%R(mesh%KP1BOR%I(i))*
443  & cos(alfap%R(mesh%KP1BOR%I(i))*degrad))
444 !
445  aphi3b%R(i) = - (1.d0-rp%R(mesh%KP1BOR%I(i))*
446  & rp%R(mesh%KP1BOR%I(i))) * auxi1
447 !
448  bphi3b%R(i) = 2.d0*rp%R(mesh%KP1BOR%I(i))
449  & * sin(alfap%R(mesh%KP1BOR%I(i))*degrad) * auxi1
450 !
451  cphi3b%R(i) = 0.d0
452 !
453  dphi3b%R(i) = 0.d0
454 !
455  ELSEIF (lihbor%I(mesh%KP1BOR%I(i+nptfr)).EQ.klog) THEN
456  auxi1 = k%R(ig) * c%R(ig) * cg%R(ig) *
457  & cos(tetap%R(mesh%KP1BOR%I(i+nptfr))*degrad) /
458  & (1.d0 + rp%R(mesh%KP1BOR%I(i+nptfr))
459  & *rp%R(mesh%KP1BOR%I(i+nptfr))
460  & +2.d0 * rp%R(mesh%KP1BOR%I(i+nptfr))*
461  & cos(alfap%R(mesh%KP1BOR%I(i+nptfr))*degrad))
462 !
463  aphi3b%R(i) = - (1.d0-rp%R(mesh%KP1BOR%I(i+nptfr))*
464  & rp%R(mesh%KP1BOR%I(i+nptfr))) * auxi1
465 !
466  bphi3b%R(i) = 2.d0*rp%R(mesh%KP1BOR%I(i+nptfr))
467  & * sin(alfap%R(mesh%KP1BOR%I(i+nptfr))*degrad) * auxi1
468 !
469  cphi3b%R(i) = 0.d0
470 !
471  dphi3b%R(i) = 0.d0
472 !
473  ELSE
474  aphi3b%R(i) = 0.d0
475 !
476  bphi3b%R(i) = 0.d0
477 !
478  cphi3b%R(i) = 0.d0
479 !
480  dphi3b%R(i) = 0.d0
481 !
482  ENDIF
483 !
484 ! -------------------------------------------------
485 ! COEFFICIENTS FOR AN IMPOSED WAVE BOUNDARY SEGMENT
486 ! -------------------------------------------------
487 !DA -----------------------------------
488 !DA KEPT FOR MEMORY !
489 !DA -----------------------------------
490 !DA
491 !DA IF (LIHBOR(I).EQ.KENT) THEN
492 !DA AUXIC = COS(TETAB(I)*DEGRAD)
493 !DA AUXIS = SIN(TETAB(I)*DEGRAD)
494 !DA AUXI1 = GRAV/OMEGA * HB(I)/2.D0 * C(IG) * CG(IG) *
495 !DA * K(IG) * ( AUXIC *XSGBOR(I) +
496 !DA * AUXIS *YSGBOR(I) )
497 !DA AUXI2 = K(IG) * ( X(IG)*AUXIC +
498 !DA * Y(IG)*AUXIS )
499 !DA
500 !DA APHI4B(I) = 0.D0
501 !DA
502 !DA BPHI4B(I) = 0.D0
503 !DA
504 !DA CPHI4B(I) = AUXI1 * COS( AUXI2 )
505 !DA
506 !DA DPHI4B(I) = AUXI1 * SIN( AUXI2 )
507 !DA
508 !DA VALUES IMPOSED AT THE NODES OF A KENT SEGMENT
509 !DA LIDIR(I) = KENT
510 !DA
511 !DA AUXI1 = GRAV/OMEGA * HB(I)/2.D0
512 !DA AUXI2 = K(IG) * (X(IG)*AUXIC +
513 !DA * Y(IG)*AUXIS )
514 !DA
515 !DA PHIRB(I) = AUXI1 * SIN( AUXI2 )
516 !DA PHIIB(I) = - AUXI1 * COS( AUXI2 )
517 !DA ENDIF
518 !
519 !
520  ENDDO
521 !-----------------------------------------------------------------------
522 !
523 !
524  RETURN
525  END SUBROUTINE
type(bief_obj), target lihbor
type(bief_obj), target prb
type(bief_obj), target aphi2b
type(bief_obj), target dgrx1b
type(bief_obj), target bphi1b
type(bief_obj), target tetap
type(bief_obj), target dphi2b
subroutine phbor
Definition: phbor.f:4
double precision, dimension(:), pointer y
type(bief_obj), target aphi3b
type(bief_obj), target cgry1b
type(bief_obj), target aphi1b
type(bief_obj), target cphi1b
type(bief_obj), target pib
integer, parameter kpot
type(bief_obj), target k
integer, parameter kent
type(bief_mesh), target mesh
type(bief_obj), target hb
type(bief_obj), target tetab
type(bief_obj), target aphi4b
type(bief_obj), target dphi1b
type(bief_obj), target ddxpib
type(bief_obj), target bphi2b
type(bief_obj), target dphi4b
type(bief_obj), target alfap
type(bief_obj), target numliq
integer, parameter kinc
double precision, dimension(:), pointer x
type(bief_obj), target rp
type(bief_obj), target ddxprb
type(bief_obj), target cg
type(bief_obj), target cgrx1b
type(bief_obj), target bphi4b
type(bief_obj), target cphi2b
type(bief_obj), target cphi4b
type(bief_obj), target ddyprb
type(bief_obj), target lidir
type(bief_obj), target c
type(bief_obj), target dgry1b
type(bief_obj), target ddypib
integer, parameter klog
integer, parameter ksort
type(bief_obj), target cphi3b
type(bief_obj), target bphi3b
type(bief_obj), target dphi3b
Definition: bief.f:3