15 SUBROUTINE swapar(IG,NICMAX,DEP2,KWAVE,CGO)
48 INTEGER :: IC,IS,ID,IG,NICMAX,INDX
49 REAL :: NN(1:MSC), ND(1:MSC)
50 REAL :: DEP2(MT),KWAVE(MSC,NICMAX),CGO(MSC,NICMAX)
65 CALL kscip1(msc,
spcsig,deploc,kwave(1,ic),cgo(1,ic),nn,nd)
69 deploc = dep2(
nv(indx,1))+dep2(
nv(indx,2))+dep2(
nv(indx,3))
79 CALL kscip1(msc,
spcsig,deploc,kwave(1,ic),cgo(1,ic),nn,nd)
91 SUBROUTINE swapar1(I,IS,ID,DEP2,KWAVEL,CGOL)
123 INTEGER :: IC,IS,ID,I,INDX
124 REAL :: NN(1:MSC), ND(1:MSC)
125 REAL :: DEP2(MT),KWAVEL,CGOL
126 REAL :: DEPLOC,SPCSIGL
128 deploc = (dep2(
nv(i,1))+dep2(
nv(i,2))+dep2(
nv(i,3)))/3.0
136 CALL kscip1(1,spcsigl,deploc,kwavel,cgol,nn,nd)
144 SUBROUTINE sproxy (I1 ,IS ,ID ,CAXL ,CAYL , &
145 CG0L ,ECOSL ,ESINL ,UX2L ,UY2L )
231 INTEGER IC,IS,ID,I1,NICMAX
232 REAL CAXL,CAYL,CG0L,ECOSL,ESINL,UX2L,UY2L
258 SUBROUTINE sproxy2 (CAXL ,CAYL , &
259 CG0L ,ECOSL ,ESINL ,UX2L ,UY2L )
345 INTEGER IC,IS,ID,I1,NICMAX
346 REAL CAXL(MDC,MSC),CAYL(MDC,MSC),CG0L(MDC,MSC),ECOSL(MDC),ESINL(MDC),UX2L,UY2L
349 caxl(id,:) = cg0l(id,:) * ecosl(id)
350 cayl(id,:) = cg0l(id,:) * esinl(id)
374 SUBROUTINE sproxy3 (CAXL ,CAYLA ,CAYLB, & !yzhang_w3
375 CG0L ,ECOSL ,ESINL ,UX2L ,UY2L, DLTYETMPP, DLTXETMPP ,DLTXEA , DLTXEB)
460 INTEGER IC,IS,ID,I1,NICMAX
461 REAL CAXL(MDC,MSC),CAYLA(MDC,MSC),CAYLB(MDC,MSC),CG0L(MDC,MSC),ECOSL(MDC),ESINL(MDC),UX2L,UY2L
462 REAL DLTXETMPP,DLTXEA,DLTXEB,DLTYETMPP
465 caxl(id,:) = cg0l(id,:) * ecosl(id) * dltyetmpp
466 cayla(id,:) = cg0l(id,:) * esinl(id) * dltxea
467 caylb(id,:) = cg0l(id,:) * esinl(id) * dltxeb
481 caxl = caxl + ux2l*dltyetmpp
482 cayla = cayla + uy2l*dltxetmpp
483 caylb = caylb + uy2l*dltxetmpp
494 SUBROUTINE sprosd (KWAVE ,CAS ,CAD , &
497 UY2 ,IDCMIN ,IDCMAX , &
498 COSCOS ,SINSIN ,SINCOS , &
561 USE all_vars,
ONLY :
ntve,
nbve,
nv,
vx,
vy,
xc,
yc,
art1,mt,
isonb_w,
nbsn,
ntsn 565 INTEGER,
INTENT(IN) :: IDCMIN(MSC), IDCMAX(MSC)
566 REAL :: CAS(MDC,MSC,MICMAX)
567 REAL :: CAD(MDC,MSC,MICMAX)
568 REAL :: CAX(MDC,MSC,MICMAX)
569 REAL :: CAY(MDC,MSC,MICMAX)
570 REAL :: CGO(MSC,MICMAX)
571 REAL :: DEP2(MT) ,DEP1(MT) ,ECOS(MDC) ,ESIN(MDC) ,COSCOS(MDC) , &
572 SINSIN(MDC) ,SINCOS(MDC)
573 REAL :: KWAVE(MSC,MICMAX)
574 REAL :: UX2(MT) ,UY2(MT) ,RDX(10) ,RDY(10)
575 INTEGER IENT ,IS ,ID ,II ,SWPNGB ,IDDUM ,ID1 ,ID2 ,ISWEEP
579 REAL :: VLSINH ,KD1 ,COEF
580 REAL :: RDXL(2) ,RDYL(2) ,DET ,DX2 ,DY2 ,DX3 ,DY3
581 REAL :: DPDX ,DPDY ,DUXDX ,DUXDY ,DUYDX ,DUYDY
582 REAL :: CAST1 ,CAST2 ,CAST3(3) ,CAST4(3) , &
583 CAST5 ,CAST6(3) ,CAST7(3) ,CAST8(3) ,CAST9(3) , &
584 CADT1 ,CADT2(3) ,CADT3(3) , &
585 CADT4(3) ,CADT5(3) ,CADT6(3) ,CADT7(3)
586 REAL :: DLOC1, DLOC2, DLOC3
588 INTEGER,
PARAMETER :: SWP_ARRAY(1:3) = (/2,1,3/)
590 REAL :: SUMHDX,SUMHDY,SUMUXDX,SUMUXDY,SUMUYDX,SUMUYDY
591 REAL :: SUMUXHDY,SUMUYHDX
594 REAL :: X1,X2,X3,Y1,Y2,Y3,DX1,DY1
612 cast2 = (dloc1-dep1(ig))*
rdtim 632 dloc2 = dep2(
nv(
nbve(ig,i),1)) + &
633 dep2(
nv(
nbve(ig,i),2)) + &
639 dloc2 = min(dloc2,
pnums(17)*dloc1)
641 IF(
abs(dloc2 - dloc1) > 100.0)
THEN 652 IF(
nv(
nbve(ig,i),1) == ig)
THEN 657 ELSE IF(
nv(
nbve(ig,i),2) == ig)
THEN 687 sumhdx = sumhdx - dloc2*
dx 688 sumhdy = sumhdy - dloc2*
dy 691 sumuxdx = sumuxdx - ux*
dx 692 sumuxdy = sumuxdy - ux*
dy 693 sumuydx = sumuydx - uy*
dx 694 sumuydy = sumuydy - uy*
dy 695 sumuxhdy = sumuxhdy - ux*dloc2*
dy 696 sumuyhdx = sumuyhdx - uy*dloc2*
dx 706 sumhdx = sumhdx - dep2(ig)*
dx 707 sumhdy = sumhdy - dep2(ig)*
dy 710 sumuxdx = sumuxdx - ux2(ig)*
dx 711 sumuxdy = sumuxdy - ux2(ig)*
dy 712 sumuydx = sumuydx - uy2(ig)*
dx 713 sumuydy = sumuydy - uy2(ig)*
dy 714 sumuxhdy = sumuxhdy - ux2(ig)*dep2(ig)*
dy 715 sumuyhdx = sumuyhdx - uy2(ig)*dep2(ig)*
dx 720 kd1 = kwave(is,1)*dloc1
721 IF(kd1 > 30.0)kd1 = 30.
722 vlsinh = sinh(2.*kd1)
727 cast1 = kwave(is,1)*coef
728 cast5 = cgo(is,1)*kwave(is,1)
736 DO iddum = idcmin(is)-1, idcmax(is)+1
737 id =
mod(iddum-1+mdc, mdc)+1
739 cas(id,is,1) = cast1*cast2
740 cad(id,is,1) = cadt1*(esin(id)*sumhdy+ecos(id)*sumhdx)
741 cad(id,is,1) = cad(id,is,1)/
art1(ig)
748 print*,
'NOT FINISH YET. SEE SPROSD 001' 753 cas(id,is,1)= cast1*(cast2*
art1(ig)+ &
754 sumuxhdy-sumuyhdx-dloc1*sumuxdy+dloc1*sumuydx)- &
756 (coscos(id)*sumuxdy-sincos(id)*(sumuxdx-sumuydy)- &
758 cas(id,is,1)=cas(id,is,1)/
art1(ig)
760 cad(id,is,1) = cadt1*(esin(id)*sumhdy+ecos(id)*sumhdx) + &
761 sincos(id)*(sumuxdy+sumuydx) + &
762 sinsin(id)*sumuydy+coscos(id)*sumuxdx
763 cad(id,is,1) = cad(id,is,1)/
art1(ig)
778 print*,
'NOT FINISH YET. SEE SPROSD 002' 803 SUBROUTINE dspher (CAD, CAX, CAY, IG, ECOS, ESIN)
842 REAL :: CAD(MDC,MSC,MICMAX)
843 REAL :: CAX(MDC,MSC,MICMAX)
844 REAL :: CAY(MDC,MSC,MICMAX)
847 INTEGER :: IS, ID, IG
858 cttmp = ecos(id) * tanlat /
rearth2 860 cad(id,is,1) = cad(id,is,1) - &
861 (cax(id,is,1)*ecos(id) + cay(id,is,1)*esin(id)) * cttmp
871 SUBROUTINE adddis (DISSXY ,LEAKXY , &
981 REAL DISSXY(MT) ,LEAKXY(MT) , &
982 DISC0(MDC,MSC) ,DISC1(MDC,MSC) , &
983 LEAKC1(MDC,MSC) ,AC2(MDC,MSC,0:MT)
985 LOGICAL ANYBIN(MDC,MSC)
986 INTEGER,
SAVE :: IENT=0
987 CALL strace (ient,
'ADDDIS')
992 IF (anybin(idc,isc))
THEN 993 dissxy(
kcgrd(1)) = dissxy(
kcgrd(1)) + dsdd*(disc0(idc,isc) + &
994 disc1(idc,isc) * ac2(idc,isc,
kcgrd(1)))
995 leakxy(
kcgrd(1)) = leakxy(
kcgrd(1)) + dsdd * &
996 leakc1(idc,isc) * ac2(idc,isc,
kcgrd(1))
1005 SUBROUTINE spredt (AC2 ,CAX ,CAY ,IDCMIN ,IDCMAX , &
1051 INTEGER :: IS ,ID ,IDDUM ,ISSTOP
1052 REAL :: FAC_A ,FAC_B
1053 REAL :: AC2(MDC,MSC,0:MT)
1054 REAL :: CAX(MDC,MSC,MICMAX)
1055 REAL :: CAY(MDC,MSC,MICMAX)
1056 REAL :: RDX(10), RDY(10)
1057 INTEGER :: IDCMIN(MSC) ,IDCMAX(MSC)
1058 REAL :: CDEN ,CNUM ,WEIG1, WEIG2
1061 DO iddum = idcmin(is), idcmax(is)
1062 id =
mod( iddum - 1 + mdc , mdc ) + 1
1066 cden = rdx(1) * cax(id,is,1) + rdy(1) * cay(id,is,1)
1067 cnum = (rdx(1) + rdx(2)) * cax(id,is,1) &
1068 + (rdy(1) + rdy(2)) * cay(id,is,1)
1072 fac_a = weig1 * ac2(id,is,
kcgrd(2))
1073 fac_b = weig2 * ac2(id,is,
kcgrd(3))
1075 IF (
acupda) ac2(id,is,
kcgrd(1)) = max( 0. , (fac_a + fac_b))
1085 SUBROUTINE swpsel(IDCMIN ,IDCMAX ,CAX , &
1086 CAY ,ISCMIN ,ISCMAX , &
1087 IDTOT ,ISTOT ,IDDLOW , &
1088 IDDTOP ,ISSTOP ,DEP2 , &
1108 REAL :: SPCDIR(MDC,6)
1109 INTEGER :: IS ,ID ,IDSUM ,IDCLOW ,IDCHGH ,IDTOT ,ISTOT , &
1110 IDDLOW ,IDDTOP ,ISSLOW ,ISSTOP ,IENT ,IDDUM ,ISCLOW , &
1112 REAL :: CAXMID ,CAYMID ,GROUP ,UABS ,THDIR
1113 INTEGER :: IDCMIN(MSC) ,IDCMAX(MSC) ,ISCMIN(MDC) ,ISCMAX(MDC) ,SECTOR(MSC)
1114 REAL :: CAX(MDC,MSC,MICMAX) ,CAY(MDC,MSC,MICMAX) ,DEP2(MT) , &
1115 UX2(MT) ,UY2(MT) ,RDX(10) ,RDY(10)
1116 LOGICAL :: LOWEST ,LOWBIN ,HGHBIN
1139 IF(sector(is) > 0)
THEN 1140 iddlow = min( iddlow , idcmin(is) )
1141 iddtop = max( iddtop , idcmax(is) )
1147 DO iddum = iddlow, iddtop
1148 id =
mod( iddum - 1 + mdc , mdc ) + 1
1171 IF(iddlow /= 9999)
THEN 1172 idtot = ( iddtop - iddlow ) + 1
1176 IF(idtot == 1) iddlow = iddlow - 1
1197 isslow = min(is,isslow)
1198 isstop = max(is,isstop)
1202 IF(isslow /= 9999)
THEN 1205 IF(
icur > 0) isstop = max(min(4,msc),isstop)
1206 istot = ( isstop - isslow ) + 1
1225 isslow /= 1 .AND. isslow /= 9999)
THEN 1227 7002
FORMAT (i4, 1x, i4, 1x, i2)
integer, dimension(:), allocatable, target ntsn
real, dimension(:), allocatable, save spcsig
subroutine adddis(DISSXY, LEAKXY, AC2, ANYBIN, DISC0, DISC1, LEAKC1, SPCSIG)
real, dimension(mdiffr) pdiffr
subroutine spredt(AC2, CAX, CAY, IDCMIN, IDCMAX, ISSTOP, RDX, RDY)
real, dimension(mnums) pnums
subroutine strace(IENT, SUBNAM)
subroutine dspher(CAD, CAX, CAY, IG, ECOS, ESIN)
real(sp), dimension(:), allocatable, target art1
real(sp), dimension(:), allocatable, target yc
subroutine swpsel(IDCMIN, IDCMAX, CAX, CAY, ISCMIN, ISCMAX, IDTOT, ISTOT, IDDLOW, IDDTOP, ISSTOP, DEP2, UX2, UY2, SPCDIR)
subroutine sprosd(KWAVE, CAS, CAD, CGO, DEP2, DEP1, ECOS, ESIN, UX2, UY2, IDCMIN, IDCMAX, COSCOS, SINSIN, SINCOS, RDX, RDY, CAX, CAY, IG)
integer, dimension(:), allocatable, target isonb_w
subroutine swapar1(I, IS, ID, DEP2, KWAVEL, CGOL)
real(sp), dimension(:), allocatable, target vx
real(sp), dimension(:), allocatable, target vy
integer, dimension(:), allocatable, target ntve
integer, dimension(:,:), allocatable, target nv
subroutine kscip1(MMT, SIG, D, K, CG, N, ND)
subroutine swapar(IG, NICMAX, DEP2, KWAVE, CGO)
integer, dimension(micmax) kcgrd
subroutine sproxy(I1, IS, ID, CAXL, CAYL, CG0L, ECOSL, ESINL, UX2L, UY2L)
subroutine sproxy2(CAXL, CAYL, CG0L, ECOSL, ESINL, UX2L, UY2L)
integer, dimension(:,:), allocatable, target nbve
real(sp), dimension(:), allocatable, target xc
integer, dimension(:,:), allocatable, target nbsn
subroutine sproxy3(CAXL, CAYLA, CAYLB, CG0L, ECOSL, ESINL, UX2L, UY2L, DLTYETMPP, DLTXETMPP, DLTXEA, DLTXEB)