167 INTEGER,
SAVE :: IENT = 0
173 REAL(rkind),
INTENT(IN) :: VAR(npa)
174 REAL(rkind),
INTENT(OUT) :: DVDX(npa), DVDY(npa)
176 INTEGER :: IE, I1, I2, I3, IP
177 REAL(rkind) :: DEDY(3),DEDX(3)
178 REAL(rkind) :: DVDXIE, DVDYIE
179 REAL(rkind) :: WEI(npa), eW
182 CALL strace (ient,
'VA_SETUP_IOBPD')
200 dvdxie = dot_product( var(ni),dedx)
201 dvdyie = dot_product( var(ni),dedy)
202 dvdx(ni) = dvdx(ni) + dvdxie
203 dvdy(ni) = dvdy(ni) + dvdyie
207 dvdx(ix)=dvdx(ix) / ew
208 dvdy(ix)=dvdy(ix) / ew
288 INTEGER,
SAVE :: IENT = 0
293 REAL(rkind),
INTENT(IN) :: VAR(npa)
294 REAL(rkind),
INTENT(OUT) :: DVDX(npa), DVDY(npa)
296 INTEGER :: IE, I1, I2, I3, IP, IX
297 REAL(rkind) :: DEDY(3),DEDX(3)
298 REAL(rkind) :: DVDXIE, DVDYIE
299 REAL(rkind) :: WEI(npa), eW
300 INTEGER :: IX1, IX2, IX3, ISEA
302 CALL strace (ient,
'VA_SETUP_IOBPD')
316 IF ((
mapsta(1,ix1) .gt. 0).and.(
mapsta(1,ix2) .gt. 0).and.(
mapsta(1,ix3) .gt. 0))
THEN
324 dvdxie = dot_product( var(ni),dedx)
325 dvdyie = dot_product( var(ni),dedy)
326 dvdx(ni) = dvdx(ni) + dvdxie
327 dvdy(ni) = dvdy(ni) + dvdyie
333 IF (ew .gt. 0 .and.
mapsta(1,ix) .gt. 0)
THEN
334 dvdx(ip)=dvdx(ip) / ew
335 dvdy(ip)=dvdy(ip) / ew
343 IF (
mapsta(1,ix) .lt. 0)
THEN
421 INTEGER,
SAVE :: IENT = 0
423 REAL(rkind),
INTENT(IN) :: VAR(npa)
424 REAL(rkind),
INTENT(OUT) :: DVDX(npa), DVDY(npa)
429 CALL strace (ient,
'VA_SETUP_IOBPD')
514 INTEGER,
SAVE :: IENT = 0
519 real(rkind),
intent(out) :: F_X(npa), F_Y(npa), DWNX(npa)
521 REAL(rkind) :: SXX_X, SXX_Y
522 REAL(rkind) :: SXY_X, SXY_Y
523 REAL(rkind) :: SYY_X, SYY_Y
526 real(rkind) :: U_X1(npa), U_Y1(npa)
527 real(rkind) :: U_X2(npa), U_Y2(npa)
528 real(rkind) :: SXX_p(npa), SXY_p(npa), SYY_p(npa)
529 real(rkind) :: eSXX, eSXY, eSYY
530 integer :: SXXmethod = 1
532 CALL strace (ient,
'VA_SETUP_IOBPD')
542 IF (sxxmethod .eq. 1)
THEN
554 WRITE(740+
iaproc,*)
'min/max(DEP)=', minval(dwnx), maxval(dwnx)
555 WRITE(740+
iaproc,*)
'sum(abs(SXX))=', sum(abs(sxx_p))
556 WRITE(740+
iaproc,*)
'sum(abs(SXY))=', sum(abs(sxy_p))
557 WRITE(740+
iaproc,*)
'sum(abs(SYY))=', sum(abs(syy_p))
563 WRITE(740+
iaproc,*)
'sum(absU_XY1)=', sum(abs(u_x1)), sum(abs(u_y1))
568 WRITE(740+
iaproc,*)
'sum(absU_XY2)=', sum(abs(u_x2)), sum(abs(u_y2))
575 WRITE(740+
iaproc,*)
'sum(absU_XY1)=', sum(abs(u_x1)), sum(abs(u_y1))
580 WRITE(740+
iaproc,*)
'sum(F_X)=', sum(f_x)
581 WRITE(740+
iaproc,*)
'sum(F_Y)=', sum(f_y)
658 INTEGER,
SAVE :: IENT = 0
663 INTEGER,
intent(in) :: IE, I1
664 REAL(rkind),
intent(inout) :: UGRAD, VGRAD
666 integer I2, I3, IP1, IP2, IP3
667 INTEGER :: POS_TRICK(3,2)
669 CALL strace (ient,
'VA_SETUP_IOBPD')
683 ugrad=-(
y(ip3) -
y(ip2))/h
684 vgrad= (
x(ip3) -
x(ip2))/h
765 INTEGER,
SAVE :: IENT = 0
770 real(rkind),
intent(in) :: FX(npa), FY(npa), DWNX(npa)
771 real(rkind),
intent(out) :: ASPAR(PDLIB_NNZ)
772 real(rkind),
intent(out) :: B(npa)
773 integer,
intent(in) :: ACTIVE(npa)
774 integer,
intent(out) :: ACTIVESEC(npa)
775 INTEGER :: POS_TRICK(3,2), POS_SHIFT(3,3)
776 integer I1, I2, I3, IP1, IP2, IP3
777 integer IDX, IDX1, IDX2, IDX3
778 INTEGER IE, IP, I, J, K, IPp, JPp
779 real(rkind) :: eDep, eFX, eFY, eScal, eFact, eArea
780 real(rkind) :: UGRAD, VGRAD, UGRAD1, VGRAD1
784 INTEGER LIDX(2), KIDX(2), jdx
785 INTEGER IPglob1, IPglob2, IPglob3
787 REAL(rkind) :: ListDiag(npa)
790 CALL strace (ient,
'VA_SETUP_IOBPD')
822 pos_shift(i,lidx(1))=kidx(2)
823 pos_shift(i,lidx(2))=kidx(1)
830 efx =(fx(ip1) + fx(ip2) + fx(ip3))/3
831 efy =(fy(ip1) + fy(ip2) + fy(ip3))/3
832 sumactive=active(ip1) + active(ip2) + active(ip3)
833 IF (sumactive .eq. 3)
THEN
837 edep=(dwnx(ip1) + dwnx(ip2) + dwnx(ip3))/3.0
846 idx1=pdlib_ja_ie(i1,1,ie)
847 idx2=pdlib_ja_ie(i1,2,ie)
848 idx3=pdlib_ja_ie(i1,3,ie)
850 escal=ugrad1*efx + vgrad1*efy
851 b(ip1) = b(ip1) + escal*earea
856 escal=ugrad*ugrad1 + vgrad*vgrad1
857 j=pdlib_ja_ie(i1,idx,ie)
858 aspar(j)=aspar(j) + efact*escal
864 IF (doprintout .eqv. .true.)
THEN
872 listdiag(ip)=aspar(j)
874 WRITE(740+
iaproc,*)
'Diag, min=', minval(listdiag),
' max=', maxval(listdiag)
875 WRITE(740+
iaproc,*)
'Diag, quot=', maxval(listdiag)/minval(listdiag)
956 INTEGER,
SAVE :: IENT = 0
961 REAL(rkind),
intent(in) :: ASPAR(PDLIB_NNZ)
962 REAL(rkind),
intent(in) :: TheIn(npa)
963 REAL(rkind),
intent(out) :: TheOut(npa)
964 INTEGER,
intent(IN) :: ACTIVE(npa), ACTIVESEC(npa)
965 integer IP, J1, J, JP, J2
966 REAL(rkind) :: eCoeff
967 INTEGER :: ThePrecond = 2
969 CALL strace (ient,
'VA_SETUP_IOBPD')
971 IF (theprecond .eq. 0)
THEN
974 IF (theprecond .eq. 1)
THEN
977 IF (active(ip) .eq. 1)
THEN
979 DO j=pdlib_ia(ip),pdlib_ia(ip+1)-1
981 IF (activesec(jp) .eq. 1)
THEN
986 ecoeff=-aspar(j) /(aspar(j1)*aspar(j2))
988 theout(ip)=theout(ip) + ecoeff*thein(jp)
994 IF (theprecond .eq. 2)
THEN
996 IF (activesec(ip) .eq. 1)
THEN
998 theout(ip)=thein(ip)/aspar(j)
1000 theout(ip)=thein(ip)
1082 INTEGER,
SAVE :: IENT = 0
1087 REAL(rkind),
intent(in) :: ASPAR(PDLIB_NNZ)
1088 REAL(rkind),
intent(in) :: TheIn(npa)
1089 REAL(rkind),
intent(out) :: TheOut(npa)
1090 INTEGER,
intent(in) :: ACTIVE(npa), ACTIVESEC(npa)
1092 REAL(rkind) :: eCoeff
1094 CALL strace (ient,
'VA_SETUP_IOBPD')
1098 IF (activesec(ip) .eq. 1)
THEN
1099 DO j=pdlib_ia(ip),pdlib_ia(ip+1)-1
1102 theout(ip)=theout(ip) + ecoeff*thein(jp)
1175 USE mpi,
only : mpi_sum
1185 INTEGER,
SAVE :: IENT = 0
1190 real(rkind),
intent(in) :: V1(npa), V2(npa)
1191 real(rkind),
intent(inout) :: eScal
1193 real(rkind) :: lScal_loc(1), lScal_gl(1)
1196 CALL strace (ient,
'VA_SETUP_IOBPD')
1200 lscal_loc(1) = lscal_loc(1) + v1(ip)*v2(ip)
1281 INTEGER,
SAVE :: IENT = 0
1286 real(rkind),
intent(in) :: ASPAR(PDLIB_NNZ)
1287 real(rkind),
intent(in) :: B(npa)
1288 real(rkind),
intent(out) :: TheOut(npa)
1289 integer,
intent(in) :: ACTIVE(npa), ACTIVESEC(npa)
1290 real(rkind) :: V_X(npa), V_R(npa), V_Z(npa), V_P(npa), V_Y(npa)
1291 real(rkind) :: uO, uN, alphaV, h1, h2
1292 real(rkind) :: eNorm, beta
1293 real(rkind) :: SOLVERTHR
1296 CALL strace (ient,
'VA_SETUP_IOBPD')
1301 WRITE(740+
iaproc,*)
'Begin TRIG_WAVE_SETUP_SOLVE ....'
1311 WRITE(740+
iaproc,*)
'uO=', uo
1316 WRITE(740+
iaproc,*)
'eNorm(B)=', enorm
1317 WRITE(740+
iaproc,*)
'SOLVERTHR=', solverthr
1318 WRITE(740+
iaproc,*)
'SOLVERTHR=', solverthr,
' eNorm(B)=', enorm
1321 IF (enorm .le. solverthr)
THEN
1323 WRITE(740+
iaproc,*)
'Leaving here, zero solution'
1336 v_x(ip) = v_x(ip) + alphav * v_p(ip)
1337 v_r(ip) = v_r(ip) - alphav * v_y(ip)
1342 WRITE(740+
iaproc,*)
'nbIter=', nbiter,
' eNorm(res)=', enorm
1345 IF (enorm .le. solverthr)
THEN
1355 WRITE(740+
iaproc,*)
' beta=', beta,
' uN=', un,
' alphaV=', alphav,
' h2=', h2
1360 v_p(ip)=v_z(ip) + beta * v_p(ip)
1365 WRITE(740+
iaproc,*)
'TRIG_WAVE_SETUP_SOLVE_POISSON_NEUMANN_DIR, max/min=', maxval(theout), minval(theout)
1435 USE mpi,
only : mpi_sum
1445 INTEGER,
SAVE :: IENT = 0
1450 real(rkind),
intent(inout) :: TheVar(npa)
1451 real(rkind) :: SUM_SI_Var, SUM_SI, TheMean
1453 real(rkind) :: eVect_loc(2), eVect_gl(2)
1456 CALL strace (ient,
'VA_SETUP_IOBPD')
1461 sum_si_var = sum_si_var + pdlib_si(ip)*thevar(ip)
1462 sum_si = sum_si + pdlib_si(ip)
1464 evect_loc(1)=sum_si_var
1467 WRITE(740+
iaproc,*)
'SUM_SI_Var=', sum_si_var,
'SUM_SI=', sum_si
1471 sum_si_var=evect_gl(1)
1473 themean=sum_si_var/sum_si
1475 WRITE(740+
iaproc,*)
'TheMean=', themean
1479 thevar(ip)=thevar(ip) - themean
1554 INTEGER,
SAVE :: IENT = 0
1559 REAL(rkind),
INTENT(in) :: DWNX(npa)
1560 INTEGER,
INTENT(out) :: ACTIVE(npa)
1566 CALL strace (ient,
'VA_SETUP_IOBPD')
1578 nbactive=nbactive + eact
1583 WRITE(740+
iaproc,*)
'min/max(DWNX)=', minval(dwnx), maxval(dwnx)
1585 WRITE(740+
iaproc,*)
'nbActive=', nbactive,
' npa=', npa
1664 INTEGER,
SAVE :: IENT = 0
1671 REAL(rkind) :: ZETA_WORK(npa)
1672 REAL(rkind) :: ZETA_WORK_ALL(NX)
1673 REAL(rkind) :: F_X(npa), F_Y(npa), DWNX(npa)
1674 REAL(rkind) :: ASPAR(PDLIB_NNZ), B(npa)
1675 INTEGER I, ISEA, JSEA, IX, IP, IP_glob
1676 INTEGER :: ACTIVE(npa), ACTIVESEC(npa)
1677 REAL(rkind) max_val, min_val
1679 CALL strace (ient,
'VA_SETUP_IOBPD')
1686 WRITE(740+
iaproc,*)
'npa=', npa,
' np=',
np
1693 IF (isea .gt. 0)
THEN
1698 WRITE(740+
iaproc,*)
'Before TRIG_COMPUTE_LH_STRESS'
1704 WRITE(740+
iaproc,*)
'After TRIG_COMPUTE_LH_STRESS'
1709 WRITE(740+
iaproc,*)
'After COMPUTE_ACTIVE_NODE'
1714 WRITE(740+
iaproc,*)
'Before,B,min=', minval(b),
' max=', maxval(b)
1721 WRITE(740+
iaproc,*)
'After,B,min=', minval(b),
' max=', maxval(b)
1730 WRITE(740+
iaproc,*)
'After SET_MEAN ZETA_WORK(min/max)=', minval(zeta_work), maxval(zeta_work)
1734 max_val = -100000000
1735 min_val = -100000000
1739 IF (isea .gt. 0)
THEN
1741 max_val = max(max_val, zeta_work(ip))
1742 min_val = max(min_val, zeta_work(ip))
1746 WRITE(740+
iaproc,*)
'TRIG_WAVE_SETUP_COMPUTATION, max/min=', max_val, min_val
1752 zeta_work_all(isea) = zeta_work(ip)
1754 CALL synchronize_global_array(zeta_work_all)
1760 write(6666) (zeta_work_all(ix), zeta_work_all(ix), zeta_work_all(ix), ix = 1, nx)
1763 WRITE(740+
iaproc,*)
'Now exiting TRIG_WAVE_SETUP_COMPUTATION'
1837 INTEGER,
SAVE :: IENT = 0
1842 integer,
intent(in) :: IMOD
1843 integer IN, ISEA, nbEdge
1845 integer NeighMat(4,2)
1846 integer,
allocatable :: STAT_SeaLand(:,:)
1847 integer,
allocatable :: EDGES(:,:)
1848 integer IXN, JXN, JSEA, J
1850 CALL strace (ient,
'VA_SETUP_IOBPD')
1855 allocate(stat_sealand(
nx,
ny))
1860 stat_sealand(ix,iy)=isea
1877 ixn=ix+neighmat(in,1)
1878 jxn=ix+neighmat(in,2)
1879 jsea=stat_sealand(ixn,jxn)
1880 IF (jsea .gt. 0)
THEN
1882 grids(imod)%NEIGH(isea,idx)=jsea
1883 IF (jsea < isea)
THEN
1892 grids(imod)%NBEDGE=nbedge
1893 ALLOCATE(
grids(imod)%EDGES(nbedge,2))
1899 ixn=ix+neighmat(in,1)
1900 jxn=ix+neighmat(in,2)
1901 jsea=stat_sealand(ixn,jxn)
1902 IF (jsea .gt. 0)
THEN
1903 IF (jsea < isea)
THEN
1905 grids(imod)%EDGES(idx,1)=jsea
1906 grids(imod)%EDGES(idx,2)=isea
1919 ixn=ix+neighmat(in,1)
1920 jxn=ix+neighmat(in,2)
1921 jsea=stat_sealand(ixn,jxn)
1922 IF (jsea .gt. 0)
THEN
2005 INTEGER,
SAVE :: IENT = 0
2010 REAL(rkind),
intent(in) :: ASPAR(NNZ)
2011 REAL(rkind),
intent(in) :: TheIn(NSEA)
2012 REAL(rkind),
intent(out) :: TheOut(NSEA)
2014 REAL(rkind) :: eCoeff
2016 CALL strace (ient,
'VA_SETUP_IOBPD')
2023 theout(ip)=theout(ip) + ecoeff*thein(jp)
2099 INTEGER,
SAVE :: IENT = 0
2104 REAL(rkind),
intent(in) :: ASPAR(PDLIB_NNZ)
2105 REAL(rkind),
intent(in) :: TheIn(NSEA)
2106 REAL(rkind),
intent(out) :: TheOut(NSEA)
2107 integer IP, J1, J, JP, J2
2108 REAL(rkind) :: eCoeff
2109 INTEGER :: ThePrecond = 0
2111 CALL strace (ient,
'VA_SETUP_IOBPD')
2113 IF (theprecond .eq. 0)
THEN
2116 IF (theprecond .eq. 1)
THEN
2126 ecoeff=-aspar(j) /(aspar(j1)*aspar(j2))
2128 theout(ip)=theout(ip) + ecoeff*thein(jp)
2132 IF (theprecond .eq. 2)
THEN
2136 theout(ip)=thein(ip)/aspar(j)
2215 INTEGER,
SAVE :: IENT = 0
2222 real(rkind),
intent(out) :: SXX_t(NSEA), SXY_t(NSEA), SYY_t(NSEA)
2223 real(rkind) :: SXX_p(NSEAL), SXY_p(NSEAL), SYY_p(NSEAL)
2224 real(rkind),
allocatable :: rVect(:)
2225 integer IPROC, NSEAL_loc
2227 CALL strace (ient,
'VA_SETUP_IOBPD')
2230 sxx_p(isea)=sxx(isea)
2231 sxy_p(isea)=sxy(isea)
2232 syy_p(isea)=syy(isea)
2237 sxx_t(isea)=sxx_p(jsea)
2238 sxy_t(isea)=sxy_p(jsea)
2239 syy_t(isea)=syy_p(jsea)
2242 nseal_loc=1 + (nsea-iproc)/
naproc
2243 allocate(rvect(nseal_loc))
2246 isea = iproc + (jsea-1)*
naproc
2247 sxx_t(isea)=rvect(jsea)
2251 isea = iproc + (jsea-1)*
naproc
2252 sxy_t(isea)=rvect(jsea)
2256 isea = iproc + (jsea-1)*
naproc
2257 syy_t(isea)=rvect(jsea)
2341 INTEGER,
SAVE :: IENT = 0
2346 real(rkind),
intent(in) :: SXX_t(NSEA), SXY_t(NSEA), SYY_t(NSEA)
2347 real(rkind),
intent(out) :: FX(NSEA), FY(NSEA)
2349 REAL(rkind) :: SXX_X, SXX_Y
2350 REAL(rkind) :: SXY_X, SXY_Y
2351 REAL(rkind) :: SYY_X, SYY_Y
2352 REAL(rkind) :: eFX, eFY
2353 REAL(rkind) :: UGRAD, VGRAD
2354 INTEGER IE, I1, I2, I3, IP1, IP2, IP3
2355 integer ISEA, JSEA1, JSEA2, JSEA3, JSEA4
2356 integer NeighMat(4,2)
2357 real(rkind) dist_X, dist_Y
2359 CALL strace (ient,
'VA_SETUP_IOBPD')
2383 IF ((jsea1 .gt. 0).and.(jsea2 .gt. 0))
THEN
2384 sxx_x=(
sxx(jsea1) -
sxx(jsea2))/(2*dist_x)
2385 sxy_x=(
sxy(jsea1) -
sxy(jsea2))/(2*dist_x)
2386 syy_x=(
sxy(jsea1) -
syy(jsea2))/(2*dist_x)
2388 IF ((jsea1 .gt. 0).and.(jsea2 .eq. 0))
THEN
2389 sxx_x=(
sxx(jsea1) -
sxx(isea ))/dist_x
2390 sxy_x=(
sxy(jsea1) -
sxy(isea ))/dist_x
2391 syy_x=(
sxy(jsea1) -
syy(isea ))/dist_x
2393 IF ((jsea1 .eq. 0).and.(jsea2 .gt. 0))
THEN
2394 sxx_x=(
sxx(isea ) -
sxx(jsea2))/dist_x
2395 sxy_x=(
sxy(isea ) -
sxy(jsea2))/dist_x
2396 syy_x=(
sxy(isea ) -
syy(jsea2))/dist_x
2398 IF ((jsea3 .gt. 0).and.(jsea4 .gt. 0))
THEN
2399 sxx_x=(
sxx(jsea3) -
sxx(jsea4))/(2*dist_y)
2400 sxy_x=(
sxy(jsea3) -
sxy(jsea4))/(2*dist_y)
2401 syy_x=(
sxy(jsea3) -
syy(jsea4))/(2*dist_y)
2403 IF ((jsea3 .eq. 0).and.(jsea4 .gt. 0))
THEN
2404 sxx_x=(
sxx(isea ) -
sxx(jsea4))/dist_y
2405 sxy_x=(
sxy(isea ) -
sxy(jsea4))/dist_y
2406 syy_x=(
sxy(isea ) -
syy(jsea4))/dist_y
2408 IF ((jsea3 .gt. 0).and.(jsea4 .gt. 0))
THEN
2409 sxx_x=(
sxx(jsea3) -
sxx(isea ))/dist_y
2410 sxy_x=(
sxy(jsea3) -
sxy(isea ))/dist_y
2411 syy_x=(
sxy(jsea3) -
syy(isea ))/dist_y
2493 INTEGER,
SAVE :: IENT = 0
2498 INTEGER,
intent(in) :: IEDGE, ISEA
2499 REAL(rkind),
intent(inout) :: UGRAD, VGRAD, dist
2501 integer I2, I3, IP1, IP2, IP3
2502 integer IX1, IY1, IX2, IY2
2503 integer ISEA1, ISEA2
2504 REAL(rkind) deltaX, deltaY
2506 CALL strace (ient,
'VA_SETUP_IOBPD')
2509 isea1=edges(iedge,1)
2510 isea2=edges(iedge,2)
2515 deltax=
xgrd(ix1,iy1) -
xgrd(ix2,iy2)
2516 deltay=
ygrd(ix1,iy1) -
ygrd(ix2,iy2)
2517 dist=sqrt(deltax*deltax + deltay*deltay)
2518 IF (isea .eq. isea1)
THEN
2600 INTEGER,
SAVE :: IENT = 0
2605 real(rkind),
intent(in) :: FX(NSEA), FY(NSEA)
2606 real(rkind),
intent(out) :: ASPAR(PDLIB_NNZ)
2607 real(rkind),
intent(out) :: B(NX)
2608 INTEGER :: POS_TRICK(3,2), POS_SHIFT(3,3)
2609 integer I1, I2, I3, IP1, IP2, IP3
2610 integer IDX, IDX1, IDX2, IDX3
2611 INTEGER IE, IP, I, J, K, IPp, JPp
2612 real(rkind) :: eDep, eFX, eFY, eScal, eFact, eLen
2613 real(rkind) :: UGRAD, VGRAD, UGRAD1, VGRAD1, dist1, dist2
2614 INTEGER LIDX(2), KIDX(2), jdx
2615 INTEGER ISEAREL, JSEAREL, ISEA, JSEA, IEDGE
2617 CALL strace (ient,
'VA_SETUP_IOBPD')
2625 edep=(
dw(isea) +
dw(jsea))/2.0
2626 efx =(fx(isea) + fx(jsea))/2.0
2627 efy =(fy(isea) + fy(jsea))/2.0
2629 isearel=
edges(iedge,i)
2631 escal=ugrad1*efx + vgrad1*efy
2632 b(isearel) = b(isearel) + escal*dist1
2635 jsearel=
edges(iedge,j)
2637 escal=ugrad*ugrad1 + vgrad*vgrad1
2638 aspar(j)=aspar(j)+efact*escal
2714 INTEGER,
SAVE :: IENT = 0
2719 real(rkind),
intent(in) :: V1(NX), V2(NX)
2720 real(rkind),
intent(inout) :: eScal
2723 CALL strace (ient,
'VA_SETUP_IOBPD')
2727 escal=escal + v1(ip)*v2(ip)
2802 INTEGER,
SAVE :: IENT = 0
2807 real(rkind),
intent(in) :: ASPAR(PDLIB_NNZ)
2808 real(rkind),
intent(in) :: B(NX)
2809 real(rkind),
intent(out) :: TheOut(NX)
2810 real(rkind) :: V_X(NX), V_R(NX), V_Z(NX), V_P(NX), V_Y(NX)
2811 real(rkind) :: uO, uN, alphaV, h1, h2
2812 real(rkind) :: eNorm, beta
2813 real(rkind) :: SOLVERTHR
2816 CALL strace (ient,
'VA_SETUP_IOBPD')
2818 solverthr=0.00000001
2832 v_x(ip) = v_x(ip) + alphav * v_p(ip)
2833 v_r(ip) = v_r(ip) - alphav * v_y(ip)
2837 IF (enorm .le. solverthr)
THEN
2848 v_p(ip)=v_z(ip) + beta * v_p(ip)
2922 INTEGER,
SAVE :: IENT = 0
2927 real(rkind),
intent(inout) :: TheVar(NX)
2928 real(rkind) :: SUM_SI_Var, SUM_SI, TheMean
2931 CALL strace (ient,
'VA_SETUP_IOBPD')
2936 sum_si_var = sum_si_var +
si(ip)*thevar(ip)
2937 sum_si = sum_si +
si(ip)
2939 themean=sum_si_var/sum_si
2941 thevar(ip)=thevar(ip) - themean
3018 INTEGER,
SAVE :: IENT = 0
3023 REAL(rkind) :: ZETA_WORK(NSEA)
3024 REAL(rkind) :: F_X(NSEA), F_Y(NSEA)
3025 REAL(rkind) :: ASPAR(PDLIB_NNZ), B(NX)
3027 real(rkind) :: SXX_t(NSEA), SXY_t(NSEA), SYY_t(NSEA)
3030 real(rkind) max_val, min_val
3033 CALL strace (ient,
'VA_SETUP_IOBPD')
3051 max_val = zeta_work(isea)
3052 min_val = zeta_work(isea)
3057 max_val = max(max_val, zeta_work(isea))
3058 min_val = min(min_val, zeta_work(isea))
3062 WRITE(740+
iaproc,*)
'FD_WAVE_SETUP_COMPUTATION, max/min=', max_val, min_val
3135 INTEGER,
SAVE :: IENT = 0
3141 REAL(rkind),
allocatable :: ZETA_WORK(:)
3143 CALL strace (ient,
'VA_SETUP_IOBPD')
3152 WRITE(740+
iaproc,*)
'Begin WAVE_SETUP_COMPUTATION'
3164 WRITE(740+
iaproc,*)
'End WAVE_SETUP_COMPUTATION'