diff --git a/.gitignore b/.gitignore index 4ce6fdd..93a1705 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ *.user *.userosscache *.sln.docstates +ubsubsurface.f90 # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs @@ -28,7 +29,7 @@ bld/ [Ll]og/ # Visual Studio 2015/2017 cache/options directory -.vs/ +*.vs/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ diff --git a/.vs/iph-eco-model/v16/.suo b/.vs/iph-eco-model/v16/.suo deleted file mode 100644 index 5d4963e..0000000 Binary files a/.vs/iph-eco-model/v16/.suo and /dev/null differ diff --git a/AdvcConservativeScheme.f90 b/AdvcConservativeScheme.f90 new file mode 100644 index 0000000..c936ba8 --- /dev/null +++ b/AdvcConservativeScheme.f90 @@ -0,0 +1,825 @@ +!Module AdvcConservativeScheme +! private +! public:: ConservativeFuFv +! !public:: ComputeFW +! public:: signa +! !----------------------------------------------------------------- +! Contains +! +! Subroutine ConservativeFuFv(HydroParam,MeshParam,dt) +! +! Use MeshVars !, Only: Left,Right,nElem,nEdge,EdgeBary,NormalVector,TangentVector,Edge,EdgeLength,Quadri,xNode,yNode,Area,xb,yb,nNode,Kmax,nEgdesatNode,EgdesatNode +! Use Hydrodynamic !, Only: Smallm,CapitalM,Z,u,utang,Fu,Fv,H,Pcri,w,Nfut,uxy,uxyback,ElSmallm,ElCapitalM,lat,OMEGA,Pi,Wu,HorViscosity,Fub,FuxyNode +! +! Implicit None +! Integer :: iElem,iEdge,iEdgein,lEdge,iLayer,l,r,j,Sig,Face,n1,n2,n3,n4,n5,n6,n7,n8,n9,iNode,iCount,fac,kin,nu,nu1,nl,rElem,lElem,uElem,psi_flag,nr +! Real :: NearZero = 1e-10 +! Real :: fi_small = 0.0d0 +! Real :: epsGrad = 100000 !CAYO +! Real :: dt, weit +! Real :: uuNode(9), vvNode(9), wwNode(9), xxNode(9), yyNode(9) +! Real :: Nodes(9), dzNode(9) +! Real :: rj(2,4), psi(2,4), ru +! Real :: Courant +! type(MeshGridParam) :: MeshParam +! type(HydrodynamicParam) :: HydroParam +! +! +! Do iElem = 1,MeshParam%nElem +! +! Do iEdge = 1,4 +! Face = MeshParam%Edge(iEdge,iElem) +! l = MeshParam%Left(Face) +! r = MeshParam%Right(Face) +! +! ! In the case that Cell is dry, the backtrack tang velocities is null. +! ! Note that in subsurface coupled case %H(iEdge) can take the freatic water level in Cell. +! ! DZsj represents the Edge freatic component thickness, thus H - DZsj is equivalent only surface water level +! ! In Cell where no subsufarce layer exist or in only surface flow simulation DZsj is set equal 0.0d0 (ReadHydroIniCond Module) +! If (HydroParam%H(iEdge) + HydroParam%sj(iEdge)-HydroParam%hj(iEdge)<=HydroParam%Pcri+NearZero) Then !CAYO +! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) +! HydroParam%uxyback(iLayer,1:2,iEdge) = (/ 0., 0. /) +! EndDo +! Cycle +! EndIf +! +! If (iEdge==1) Then +! iEdgein = 3 +! n7 = 2 +! rElem = MeshParam%Right(MeshParam%Edge(4,l)) +! lElem = MeshParam%Right(MeshParam%Edge(2,l)) +! +! ! In the case that Cell is Wet: +! Do iLayer = HydroParam%Smallm(Face), HydroParam%CapitalM(Face) +! +! psi(:,:) = 0.0d0 +! rj(:,:) = 0.0d0 +! NodeValues(iEdgein, iEdge, Face, rElem,lElem,n7,r,l,uuNode(:),vvNode(:),xxNode(:), yyNode(:), dzNode(:)) +! +! Courant = 0.5*(HydroParam%Theta*HydroParam%u(iLayer,iEdge)*+(1.-HydroParam%Theta)*HydroParam%ut(iLayer,iEdge))*dt/MeshParam%CirDistance(iEdge) +! +! !x - direction: +! If ((uuNode(3) - uuNode(7))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then +! +! If (uuNode(3) + uuNode(7) >= 0) Then +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(7) + uuNode(3)) +! +! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(8) + uuNode(3)) +! +! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! ! y-direction: +! If (vvNode(3) + vvNode(2)>= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(2)) +! +! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),yyNode(3),yyNode(2),yyNode(1)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),yyNode(3),yyNode(2),yyNode(1)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(4) + vvNode(3)) +! +! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),yyNode(5),yyNode(4),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),yyNode(5),yyNode(4),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! Else +! ! x-direction: +! If (uuNode(7)*dzNode(7) + uuNode(3)*dzNode(3) >= 0 ) Then +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(7)*dzNode(7) + uuNode(3)*dzNode(3))/(dzNode(7) + dzNode(3)) +! +! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(8)*dzNode(8) + uuNode(3)*dzNode(3))/(dzNode(8) + dzNode(3)) +! +! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! +! ! y-direction: +! If (vvNode(3)*dzNode(3) + vvNode(2)*dzNode(2)>= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(2)*dzNode(2))/(dzNode(3) + dzNode(2)) +! +! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),yyNode(3),yyNode(2),yyNode(1)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),yyNode(3),yyNode(2),yyNode(1)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(4)*dzNode(4) + vvNode(3)*dzNode(3))/(dzNode(4) + dzNode(3)) +! +! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),yyNode(5),yyNode(4),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),yyNode(4),yyNode(3),yyNode(2)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),yyNode(5),yyNode(4),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! EndIf +! EndDo +! +! ElseIf (iEdge==2) Then +! iEdgein = 4 +! n9 = 3 +! rElem = MeshParam%Right(MeshParam%Edge(1,l)) +! lElem = MeshParam%Right(MeshParam%Edge(3,l)) +! +! Courant = 0.5*(HydroParam%Theta*HydroParam%u(iLayer,iEdge)*+(1.-HydroParam%Theta)*HydroParam%ut(iLayer,iEdge))*dt/MeshParam%CirDistance(iEdge) +! +! ! In the case that Cell is Wet: +! Do iLayer = HydroParam%Smallm(Face), HydroParam%CapitalM(Face) +! +! psi(:,:) = 0.0d0 +! rj(:,:) = 0.0d0 +! NodeValues(iEdgein,iEdge,Face,rElem,lElem,n7,r,l,uuNode(:),vvNode(:),xxNode(:), yyNode(:), dzNode(:)) +! +! !x - direction: +! If ((uuNode(3) - uuNode(4))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then +! +! If (uuNode(3) + uuNode(4)>= 0) Then +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(4)) +! +! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(2) + uuNode(3)) +! +! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! ! y-direction: +! If (vvNode(3) + vvNode(7) >= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(7)) +! +! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),yyNode(3),yyNode(7),yyNode(6)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),yyNode(3),yyNode(7),yyNode(6)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(8) + vvNode(3)) +! +! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),yyNode(9),yyNode(8),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),yyNode(9),yyNode(8),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! Else +! ! x-direction: +! If (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3) >= 0 ) Then +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(3)) +! +! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(2)*dzNode(2) + uuNode(3)*dzNode(3))/(dzNode(2) + dzNode(3)) +! +! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! +! ! y-direction: +! If (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7)>= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(3) + dzNode(7)) +! +! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),yyNode(3),yyNode(7),yyNode(6)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),yyNode(3),yyNode(7),yyNode(6)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(8)*dzNode(8) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(3)) +! +! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),yyNode(9),yyNode(8),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),yyNode(8),yyNode(3),yyNode(7)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),yyNode(9),yyNode(8),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! EndIf +! EndDo +! +! ElseIf (iEdge==3) Then +! iEdgein = 1 +! n9 = 4 +! rElem = MeshParam%Right(MeshParam%Edge(2,l)) +! lElem = MeshParam%Right(MeshParam%Edge(4,l)) +! +! Courant = 0.5*(HydroParam%Theta*HydroParam%u(iLayer,iEdge)*+(1.-HydroParam%Theta)*HydroParam%ut(iLayer,iEdge))*dt/MeshParam%CirDistance(iEdge) +! +! ! In the case that Cell is Wet: +! Do iLayer = HydroParam%Smallm(Face), HydroParam%CapitalM(Face) +! +! psi(:,:) = 0.0d0 +! rj(:,:) = 0.0d0 +! NodeValues(iEdgein,iEdge,Face,rElem,lElem,n7,r,l,uuNode(:),vvNode(:),xxNode(:), yyNode(:), dzNode(:)) +! +! !x - direction: +! If ((uuNode(3) - uuNode(8))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then +! +! If (uuNode(3) + uuNode(8)>= 0) Then +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(8)) +! +! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(7) + uuNode(3)) +! +! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! ! y-direction: +! If (vvNode(3) + vvNode(4) >= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(4)) +! +! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),yyNode(3),yyNode(4),yyNode(5)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),yyNode(3),yyNode(4),yyNode(5)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(2) + vvNode(3)) +! +! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),yyNode(1),yyNode(2),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),yyNode(1),yyNode(2),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! Else +! ! x-direction: +! If (uuNode(3)*dzNode(3) + uuNode(8)*dzNode(8) >= 0 ) Then +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(8)*dzNode(8))/(dzNode(3) + dzNode(8)) +! +! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(7)*dzNode(7) + uuNode(3)*dzNode(3))/(dzNode(7) + dzNode(3)) +! +! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! +! ! y-direction: +! If (vvNode(3)*dzNode(3) + vvNode(4)*dzNode(4)>= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(4)*dzNode(4))/(dzNode(3) + dzNode(4)) +! +! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),yyNode(3),yyNode(4),yyNode(5)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),yyNode(3),yyNode(4),yyNode(5)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(2)*dzNode(2) + vvNode(3)*dzNode(3))/(dzNode(2) + dzNode(3)) +! +! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),yyNode(1),yyNode(2),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),yyNode(3),yyNode(4)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),yyNode(1),yyNode(2),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! EndIf +! EndDo +! +! ElseIf (iEdge==4) Then +! iEdgein = 2 +! n9 = 1 +! rElem = MeshParam%Right(MeshParam%Edge(3,l)) +! lElem = MeshParam%Right(MeshParam%Edge(1,l)) +! +! Courant = 0.5*(HydroParam%Theta*HydroParam%u(iLayer,iEdge)*+(1.-HydroParam%Theta)*HydroParam%ut(iLayer,iEdge))*dt/MeshParam%CirDistance(iEdge) +! +! ! In the case that Cell is Wet: +! Do iLayer = HydroParam%Smallm(Face), HydroParam%CapitalM(Face) +! +! psi(:,:) = 0.0d0 +! rj(:,:) = 0.0d0 +! NodeValues(iEdgein,iEdge,Face,rElem,lElem,n7,r,l,uuNode(:),vvNode(:),xxNode(:), yyNode(:), dzNode(:)) +! +! !x - direction: +! If ((uuNode(3) - uuNode(2))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then +! +! If (uuNode(3) + uuNode(2)>= 0) Then +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(2)) +! +! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(4) + uuNode(3)) +! +! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! ! y-direction: +! If (vvNode(3) + vvNode(8) >= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(8)) +! +! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),yyNode(3),yyNode(8),yyNode(9)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),yyNode(3),yyNode(8),yyNode(9)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(7) + vvNode(3)) +! +! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),yyNode(6),yyNode(7),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),yyNode(6),yyNode(7),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! Else +! ! x-direction: +! If (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2) >= 0 ) Then +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(3) + dzNode(2)) +! +! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! Else +! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(3)) +! +! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) +! +! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3)) +! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) +! +! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2)) +! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) +! +! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3)) +! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) +! EndIf +! +! ! y-direction: +! If (vvNode(3)*dzNode(3) + vvNode(8)*dzNode(8)>= 0) Then +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(8)*dzNode(8))/(dzNode(3) + dzNode(8)) +! +! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),yyNode(3),yyNode(8),yyNode(9)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),yyNode(3),yyNode(8),yyNode(9)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! Else +! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(7) + dzNode(3)) +! +! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) +! +! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),yyNode(6),yyNode(7),yyNode(3)) +! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) +! +! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),yyNode(7),yyNode(3),yyNode(8)) +! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) +! +! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),yyNode(6),yyNode(7),yyNode(3)) +! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) +! EndIf +! EndIf +! EndDo +! EndIf +! +! !HydroParam%uxyback(iLayer,1,iEdge) = HydroParam%uxyback(iLayer,1,iEdge) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2+psi(1,2))*uuNode(1,8) - (2 + psi(1,1) + psi(1,2))*uuNode(1,5) + psi(1,1)*uuNode(1,2))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2+psi(1,2))*uuNode(1,3) - (2 + psi(1,1) + psi(1,2))*uuNode(1,8) + psi(1,1)*uuNode(1,5))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2+psi(1,4))*uuNode(1,8) - (2 + psi(1,3) + psi(1,4))*uuNode(1,7) + psi(1,3)*uuNode(1,6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2+psi(1,4))*uuNode(1,9) - (2 + psi(1,3) + psi(1,4))*uuNode(1,8) + psi(1,3)*uuNode(1,7))/MeshParam%dy) +! !HydroParam%uxyback(iLayer,2,iEdge) = HydroParam%uxyback(iLayer,1,iEdge) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2+psi(2,2))*vvNode(1,8) - (2 + psi(2,1) + psi(2,2))*vvNode(1,5) + psi(2,1)*vvNode(1,2))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2+psi(2,2))*vvNode(1,3) - (2 + psi(2,1) + psi(2,2))*vvNode(1,8) + psi(2,1)*vvNode(1,5))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2+psi(2,4))*vvNode(1,8) - (2 + psi(2,3) + psi(2,4))*vvNode(1,7) + psi(2,3)*vvNode(1,1))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2+psi(2,4))*vvNode(1,9) - (2 + psi(2,3) + psi(2,4))*vvNode(1,8) + psi(2,3)*vvNode(1,7))/MeshParam%dy) +! ! +! EndDo +! EndDo +! +! !If (HydroParam%iNonHydro==0.and.MeshParam%Kmax>1) Then +! ! Call ComputeFW(MeshParam,HydroParam,dt) +! !EndIf +! +! Do iEdge=1,MeshParam%nEdge +! l = MeshParam%Left(iEdge) +! r = MeshParam%Right(iEdge) +! Do lEdge=1,4 +! If (MeshParam%Edge(lEdge,l)==iEdge) Then +! Exit +! EndIf +! EndDo +! !jump=0 +! !do Face = 1,4 +! ! If the face has a boundary condition: +! If (HydroParam%IndexInflowEdge(iEdge)>0.or.HydroParam%IndexWaterLevelEdge(iEdge)>0) then +! HydroParam%Fu(:,iEdge)=HydroParam%u(:,iEdge) +! cycle +! EndIf +! !enddo +! !if (jump==1) then +! ! cycle +! !endif +! +! !MeshParam%Neighbor(:,l) +! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) +! If (r==0) Then !Velocity in lateral boundaries is equal to cell center velocity +! HydroParam%Fu(iLayer,iEdge) = HydroParam%u(iLayer,iEdge) !Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%Fub(iLayer,1,l))*MeshParam%NormalVector(1,lEdge,l) + Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%Fub(iLayer,2,l))*MeshParam%NormalVector(2,lEdge,l) +! Else +! if (iLayer < HydroParam%ElSmallm(r)) Then +! HydroParam%Fu(iLayer,iEdge) = HydroParam%u(iLayer,iEdge) +! else +! HydroParam%Fu(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%NormalVector(1,lEdge,l) + Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%NormalVector(2,lEdge,l) +! !HydroParam%Fu(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%NormalVector(1,lEdge,l) + (Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%NormalVector(2,lEdge,l)*dt)*((HydroParam%uxyback(iLayer,2,iEdge-3)-2*HydroParam%uxyback(iLayer,2,iEdge)+HydroParam%uxyback(iLayer,2,iEdge+3))/MeshParam%EdgeLength(iEdge)) +! endif +! EndIf +! EndDo +! EndDo +! +! HydroParam%FuxyNode = 0. +! Do iNode = 1,MeshParam%nNode +! Do iLayer = 1,MeshParam%Kmax +! weit=0 +! icount=0 +! +! Do j = 1,MeshParam%nEgdesatNode(iNode) +! Face = MeshParam%EgdesatNode(j,iNode) +! l = MeshParam%Left(Face) +! r = MeshParam%Right(Face) +! If (r==0) Then +! fac=2 +! Else +! fac=1 +! EndIf +! If(iLayer>=HydroParam%Smallm(Face)) Then +! kin=min(iLayer,HydroParam%CapitalM(Face)) +! HydroParam%FuxyNode(kin,1,iNode)=HydroParam%FuxyNode(kin,1,iNode)+HydroParam%uxyback(kin,1,Face)/MeshParam%EdgeLength(Face)*fac +! HydroParam%FuxyNode(kin,2,iNode)=HydroParam%FuxyNode(kin,2,iNode)+HydroParam%uxyback(kin,2,Face)/MeshParam%EdgeLength(Face)*fac +! icount=icount+1 +! EndIf +! weit=weit+fac/MeshParam%EdgeLength(Face) +! EndDo +! If(icount.ne.0) Then +! HydroParam%FuxyNode(iLayer,1,iNode) = HydroParam%FuxyNode(iLayer,1,iNode)/weit +! HydroParam%FuxyNode(iLayer,2,iNode) = HydroParam%FuxyNode(iLayer,2,iNode)/weit +! EndIf +! +! EndDo +! EndDo +! +! Return +! End Subroutine ConservativeFuFv +! +! +! Function ru(u,ux1,ux2,x,x1,x2) +! ! Compute the Water Elevation +! ! Based on: +! ! [1] +! ! Input: +! ! u -> u velocity, eta or concentration +! ! ux1 -> u in position -1/2 +! ! ux2 -> u in position -3/2 +! ! x -> u position +! ! x1 -> u-1/2 position +! ! x2 -> u-3/2 position +! ! Output: +! ! r -> Ratio of consecutive gradients +! ! List of Modifications: +! ! -> 04.08.2020: Routine Implementation +! ! Programmer: +! +! Implicit None +! Real:: ru, u, ux1, ux2, x, x1, x2 +! +! If(ux1 - ux2 == 0.or.x - x1 == 0) Then +! ru = 0.d0 +! Else +! ru = (u - ux1)/(ux1-ux2)*abs(x1-x2)/abs(x-x1) +! EndIf +! +! End Function ru +! +! Subroutine NodeValues(iEdgein,iEdge,Face,rElem,lElem,n7,r,l,uuNode(:),vvNode(:),xxNode(:), yyNode(:), dzNode(:)) +! +! Use MeshVars +! Use Hydrodynamic +! +! Implicit None +! +! Real, intent(in) :: uuNode(9), vvNode(9), xxNode(9), yyNode(9), dzNode(9) +! Real, intent(out) :: uuNode(9), vvNode(9), xxNode(9), yyNode(9), dzNode(9), Nodes(9) +! Integer:: iEdgein,iEdge,Face,rElem,lElem,n7,r,l +! Integer:: n1,n2,n3,nu,nu1,nl,n7,n8,nr +! type(MeshGridParam) :: MeshParam +! type(HydrodynamicParam) :: HydroParam +! +! +! n1 = MeshParam%Edge(iEdgein,l) +! n2 = l +! n3 = Face +! n7 = MeshParam%Quadri(n7,l) + 1 +! n8 = MeshParam%Quadri(iEdge,l) + 1 +! +! Nodes(1:9)= (/n1, n2, n3, 0, 0, 0, n7, n8, 0 /) +! +! uuNode(1) = HydroParam%uxy(iLayer,1,Nodes(1)); vvNode(1) = HydroParam%uxy(iLayer,2,Nodes(1)); +! uuNode(2) = HydroParam%ub(iLayer,1,Nodes(2)); vvNode(2) = HydroParam%ub(iLayer,2,Nodes(2)); +! uuNode(8) = HydroParam%ubV(iLayer,1,Nodes(8)); vvNode(8) = HydroParam%ubV(iLayer,2,Nodes(8)); +! uuNode(3) = HydroParam%uxy(iLayer,1,Nodes(3)); vvNode(3) = HydroParam%uxy(iLayer,2,Nodes(3)); +! uuNode(7) = HydroParam%ubV(iLayer,1,Nodes(7)); vvNode(7) = HydroParam%ubV(iLayer,2,Nodes(7)); +! +! xxNode(1) = MeshParam%EdgeBary(Nodes(1)); yyNode(1) = MeshParam%EdgeBary(2,Nodes(1)); dzNode(1) = HydroParam%Z(iLayer+1,Nodes(1)) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) +! xxNode(2) = MeshParam%xb(Nodes(2)); yyNode(2) = MeshParam%yb(Nodes(2)); dzNode(2) = HydroParam%Ze(iLayer+1,l) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) +! xxNode(8) = MeshParam%xNode(Nodes(8)); yyNode(8) = MeshParam%yNode(Nodes(8)); dzNode(8) = HydroParam%Ze(iLayer+1,l) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) +! xxNode(3) = MeshParam%EdgeBary(Nodes(3)); yyNode(3) = MeshParam%EdgeBary(2,Nodes(3)); dzNode(3) = HydroParam%Z(iLayer+1,Nodes(3)) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) +! xxNode(7) = MeshParam%xNode(Nodes(7)); yyNode(7) = MeshParam%yNode(Nodes(7)); dzNode(7) = HydroParam%Ze(iLayer+1,l) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) +! +! ! Right neighbour element: +! !nr = n9, nu = n4, nu1 = n5, nl = n6 +! If (rElem==0) Then +! nr = n8 +! uuNode(9) = uuNode(8); vvNode(9) = vvNode(8); +! xxNode(9) = xxNode(8); yyNode(9) = yyNode(8); dzNode(9) = dzNode(8) +! ElseIf (ilayer 1) Then + Allocate(MeshParam%Si(MeshParam%Kmax,MeshParam%nElem))!CAYO + Allocate(HydroParam%SScalar(MeshParam%nElem*MeshParam%Kmax)) + Else + Allocate(MeshParam%Si(MeshParam%subfactor+1,MeshParam%nElem))!CAYO + Allocate(HydroParam%SScalarSaturation(MeshParam%nElem*(MeshParam%subfactor+1))) + EndIf + Allocate(HydroParam%us(MeshParam%Kmax,MeshParam%nEdge)) !CAYO Allocate(HydroParam%ust(MeshParam%Kmax,MeshParam%nEdge)) !CAYO + Allocate(HydroParam%ustang(MeshParam%Kmax,MeshParam%nEdge)) !CAYO Allocate(HydroParam%um(MeshParam%Kmax,MeshParam%nEdge))!CAYO Allocate(HydroParam%umt(MeshParam%Kmax,MeshParam%nEdge))!CAYO + Allocate(HydroParam%umtang(MeshParam%Kmax,MeshParam%nEdge))!CAYO + Allocate(HydroParam%wm(MeshParam%Kmax+1,MeshParam%nElem)) + Allocate(HydroParam%wmt(MeshParam%Kmax+1,MeshParam%nElem)) + + Allocate(HydroParam%uxysub(MeshParam%Kmax,2,MeshParam%nEdge)) + Allocate(HydroParam%ubsub(MeshParam%Kmax,3,MeshParam%nElem)) Allocate(HydroParam%DZsj(MeshParam%Kmax,MeshParam%nEdge)) !CAYO Allocate(HydroParam%DZsjt(MeshParam%Kmax,MeshParam%nEdge)) !CAYO Allocate(HydroParam%DZhj(MeshParam%Kmax,MeshParam%nEdge)) !CAYO Allocate(HydroParam%DZhjt(MeshParam%Kmax,MeshParam%nEdge)) !CAYO - Allocate(HydroParam%DZsi(MeshParam%Kmax,MeshParam%nEdge)) !CAYO - Allocate(HydroParam%DZsit(MeshParam%Kmax,MeshParam%nEdge)) !CAYO - Allocate(HydroParam%DZhi(MeshParam%Kmax,MeshParam%nEdge)) !CAYO - Allocate(HydroParam%DZhit(MeshParam%Kmax,MeshParam%nEdge)) !CAYO + Allocate(HydroParam%DZsi(MeshParam%Kmax,MeshParam%nElem)) !CAYO + Allocate(HydroParam%DZsit(MeshParam%Kmax,MeshParam%nElem)) !CAYO + Allocate(HydroParam%DZhi(MeshParam%Kmax,MeshParam%nElem)) !CAYO + Allocate(HydroParam%DZhit(MeshParam%Kmax,MeshParam%nElem)) !CAYO + Allocate(HydroParam%PsiCrit(MeshParam%nElem)) !CAYO Allocate(HydroParam%DZK(MeshParam%nEdge)) !Sediment Layer !CAYO + Allocate(HydroParam%Gusub(MeshParam%Kmax,MeshParam%nEdge)) + + Allocate(HydroParam%etak(MeshParam%nElem)) + Allocate(HydroParam%etam(MeshParam%nElem)) + Allocate(HydroParam%Qk(MeshParam%nElem)) + Allocate(HydroParam%Ci(MeshParam%nElem)) + Allocate(HydroParam%d(MeshParam%nElem)) + Allocate(HydroParam%Vol2(MeshParam%nElem)) + Allocate(HydroParam%Vol1(MeshParam%nElem)) + + Allocate(HydroParam%utangNodes(2,MeshParam%nEdge)) ! 3. Hydrodynamic output variables (VTK) Allocate(MeshParam%xPoint(MeshParam%nPoint*(MeshParam%Kmax+1))) @@ -152,5 +200,4 @@ Subroutine AllocateHydroVars(HydroParam,MeshParam) Allocate(HydroParam%IndexWaterLevelEdge(MeshParam%nEdge)) -End Subroutine AllocateHydroVars - \ No newline at end of file +End Subroutine AllocateHydroVars \ No newline at end of file diff --git a/CGOp.f90 b/CGOp.f90 index 8575be7..9279fcf 100644 --- a/CGOp.f90 +++ b/CGOp.f90 @@ -30,6 +30,7 @@ Subroutine CGOp(a,b,dt,HydroParam,MeshParam) N = MeshParam%nElem b = a ! Initial guess Call MatOp(b,Ab,dt,HydroParam,MeshParam) + ! b - Ab = %Deta - (P+T).eta(k,0) r = b - Ab pCG = r ! Steepest Descent Direction alpha = Dot_Product(r,r) ! Square of the norm of r @@ -41,6 +42,7 @@ Subroutine CGOp(a,b,dt,HydroParam,MeshParam) !Print*, 'The system has been solved with: ',k, 'CGOp iterations' Return EndIf + Call MatOp(pCG,v,dt,HydroParam,MeshParam) lambda = alpha/Dot_Product(pCG,v) @@ -49,6 +51,7 @@ Subroutine CGOp(a,b,dt,HydroParam,MeshParam) alphanew = Dot_Product(r,r) pCG = r + alphanew/alpha*pCG alpha = alphanew + EndDo Return diff --git a/CGOpSub.f90 b/CGOpSub.f90 new file mode 100644 index 0000000..629d768 --- /dev/null +++ b/CGOpSub.f90 @@ -0,0 +1,60 @@ +Subroutine CGOpSub(a,b,dt,HydroParam,MeshParam) + + ! Matrix Free Conjugate Gradient Method + ! Input: + ! a -> Input Matrix + ! Output: + ! b -> Solution + + ! List of Modifications: + ! -> 10.03.2014: Routine Implementation (Rafael Cavalcanti) + ! -> 10.03.2014: Fortran Sintax (Rafael Cavalcanti) + ! Programmer: Michael Dumbser + + Use MeshVars !, Only: nElem, Edge, Neighbor, EdgeLength, Cirdistance + Use Hydrodynamic + !Use SimulationModel, Only: dt,NearZero + Implicit None + Real:: alpha, tol, lambda, alphanew + Integer:: k, N + Integer:: iElem, iEdge, Pij, Face + Real:: Soma, Coef + Real:: NearZero = 1e-10 + Real:: dt + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + Real, intent(in) :: a(MeshParam%nElem) + Real, intent(out) :: b(MeshParam%nElem) + Real:: r(MeshParam%nElem), Ab(MeshParam%nElem), pCG(MeshParam%nElem), v(MeshParam%nElem) + + N = MeshParam%nElem + !%Deta = %F == residual k == V1(eta) + [T - Q(k-1)]eta - d(k-1) = Error in Water Volume + b = a ! Initial guess + !Ab == (P(k,l-1) + T - Q(k-1,l-1)).eta(k,l) + Call MatOp(HydroParam%eta,Ab,dt,HydroParam,MeshParam) + ! b - Ab = V1(eta) + [T - Q(k-1)]eta - d(k-1) + P(k,l-1).eta(k,l-1) + r = b - Ab + HydroParam%P*HydroParam%eta + pCG = r ! Steepest Descent Direction + alpha = Dot_Product(r,r) ! Square of the norm of r + tol = 1e-14 ! Tolerance + + Do k = 1,1000*N + If ( sqrt(alpha) < tol ) Then + ! System has been solved + !Print*, 'The system has been solved with: ',k, 'CGOp iterations' + Return + EndIf + + Call MatOp(pCG,v,dt,HydroParam,MeshParam) + + lambda = alpha/Dot_Product(pCG,v) + b = b + lambda*pCG + r = r - lambda*v + alphanew = Dot_Product(r,r) + pCG = r + alphanew/alpha*pCG + alpha = alphanew + + EndDo + + Return +End Subroutine CGOpSub \ No newline at end of file diff --git a/DestroyHydro.f90 b/DestroyHydro.f90 index d7b9400..bc58fb6 100644 --- a/DestroyHydro.f90 +++ b/DestroyHydro.f90 @@ -22,7 +22,22 @@ Subroutine DestroyHydro(HydroParam) Deallocate(HydroParam%ElSmallm) Deallocate(HydroParam%ElCapitalM) + Deallocate(HydroParam%psij) + Deallocate(HydroParam%rj) + + Deallocate(HydroParam%ubt) + Deallocate(HydroParam%uxyt) + Deallocate(HydroParam%uNodet) + Deallocate(HydroParam%ugt) + Deallocate(HydroParam%vgt) + Deallocate(HydroParam%wgt) + Deallocate(HydroParam%ubVt) + Deallocate(HydroParam%uxyLt) + Deallocate(HydroParam%wfct) + + Deallocate(HydroParam%etaInf) + Deallocate(HydroParam%etaInfn) Deallocate(HydroParam%etaplus) Deallocate(HydroParam%peta) Deallocate(HydroParam%petan) @@ -34,6 +49,7 @@ Subroutine DestroyHydro(HydroParam) Deallocate(HydroParam%u) Deallocate(HydroParam%ut) Deallocate(HydroParam%uxyback) + Deallocate(HydroParam%uArrow) Deallocate(HydroParam%uNode) Deallocate(HydroParam%uxy) Deallocate(HydroParam%Wu) @@ -93,6 +109,8 @@ Subroutine DestroyHydro(HydroParam) Deallocate(HydroParam%ElSmallms) Deallocate(HydroParam%ElCapitalMs) + Deallocate(HydroParam%etak) + Deallocate(HydroParam%etam) Deallocate(HydroParam%DZsj) !CAYO Deallocate(HydroParam%DZsjt)!CAYO @@ -104,11 +122,28 @@ Subroutine DestroyHydro(HydroParam) Deallocate(HydroParam%DZhit)!CAYO Deallocate(HydroParam%Vol)!CAYO Deallocate(HydroParam%DZK) !Sediment Layer + Deallocate(HydroParam%Gusub) !Sediment Layer + Deallocate(HydroParam%PsiCrit) !Sediment Layer + + Deallocate(HydroParam%etak) + Deallocate(HydroParam%Qk) + Deallocate(HydroParam%Ci) + Deallocate(HydroParam%d) + Deallocate(HydroParam%Vol2) + Deallocate(HydroParam%Vol1) Deallocate(HydroParam%us)!CAYO Deallocate(HydroParam%ust)!CAYO + Deallocate(HydroParam%ustang)!CAYO Deallocate(HydroParam%um)!CAYO Deallocate(HydroParam%umt)!CAYO + Deallocate(HydroParam%umtang)!CAYO + Deallocate(HydroParam%wm) + Deallocate(HydroParam%wmt) + Deallocate(HydroParam%uxysub) + Deallocate(HydroParam%ubsub) + + Deallocate(HydroParam%utangNodes) Return End Subroutine DestroyHydro diff --git a/ELM.f90 b/ELM.f90 index e35dc05..4cf9ddb 100644 --- a/ELM.f90 +++ b/ELM.f90 @@ -1,5 +1,9 @@ -!>\brief Routines related to the Eulerian-Lagragean Method (FU, FV and FW) of TRIM model - Casulli +!>\brief Routines related to the Eulerian-Lagragean Method (FU, FV and FW) of TRIM model - Casulli !>\details +! References: +! [1] +! [2] Cunha, A.H.F.; Fragoso, C.R.; Tavares, M.H.; Cavalcanti, J.R.; Bonnet, M.-P.; Motta-Marques, D. Combined Use of High-Resolution Numerical +! Schemes to Reduce Numerical Diffusion in Coupled Nonhydrostatic Hydrodynamic and Solute Transport Model. Water 2019, 11, 2288. !>\author Carlos Ruberto Fragoso and Rafael Cavalcanti Module ELM @@ -23,63 +27,82 @@ Subroutine FuFv(HydroParam,MeshParam,dt) !Use SimulationModel Implicit None - Integer:: iElem,iEdge,lEdge,iLayer,jlev,l,r,nnel,ndels,Sig,Face,n1,n2,n3,n4,iNode,icount,j,fac,kin,TrajectoryFlag,FuFw_flag,jump - Real::x0,y0,z0,xt,yt,zt,uuint,vvint,wwint,wdown,wup,vmag,dtb,aa(4),weit + Integer:: iElem,iEdge,lEdge,iLayer,jlev,l,r,nnel,ndels,Sig,Face,n1,n2,n3,n4,iNode,icount,j,fac,kin,TrajectoryFlag,FuFw_flag,jump, ntals, iEdge0 + Real::x0,y0,z0,xt,yt,zt,uuint,vvint,wwint,hhint,wdown,wup,vmag,dtb,aa(4),weit,sinal Real:: NearZero = 1e-10 - Real::dt + Real::dt, tal type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam - - ! Compute Fu + + ! 1.1 Find out uxy velocities components, that are equivalents to normal and tangencial velocities components in particle position after + ! the backtrack process: Do iEdge = 1,MeshParam%nEdge + !Get right/left iElements that share iEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) - If (HydroParam%H(iEdge)<=HydroParam%Pcri+NearZero) Then + + ! If is a dry cell, the backtrack velocities is equal to zero. + ! Note that in subsurface coupled case %H(iEdge) can takes into account the freatic water level in Cell. + ! DZsj represents the Edge freatic component thickness, thus H - DZsj is equivalent only surface water level + ! In Cell where no subsufarce layer exist or in only surface flow simulation DZsj is set equal 0.0d0 (ReadHydroIniCond Module) + If (HydroParam%H(iEdge) + HydroParam%sj(iEdge)-HydroParam%hj(iEdge)<=HydroParam%Pcri+NearZero) Then !CAYO Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) HydroParam%uxyback(iLayer,1:2,iEdge) = (/ 0., 0. /) EndDo Cycle EndIf - + + ! In the case that Cell is Wet: Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) - - nnel = l - jlev =iLayer + ! The particle is set in iEdge barycenter (x0,y0,z0) on Left side Element (nnel): + nnel = l + jlev = iLayer x0 = MeshParam%EdgeBary(1,iEdge) y0 = MeshParam%EdgeBary(2,iEdge) - z0 = 0.5d0*(HydroParam%Z(iLayer+1,iEdge)+HydroParam%Z(iLayer,iEdge)) + z0 = 0.5d0*(HydroParam%Z(iLayer+1,iEdge) + HydroParam%Z(iLayer,iEdge) + sum(HydroParam%DZsj(:,iEdge))) + ! Velocities in the initial position: uuint = HydroParam%uxy(iLayer,1,iEdge) vvint = HydroParam%uxy(iLayer,2,iEdge) wwint = HydroParam%wfc(iLayer,iEdge) - - vmag = dsqrt(uuint**2+vvint**2+wwint**2) - If(vmag.le.1.e-6) Then ! No activity - HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) - Else !do backtrack + hhint = HydroParam%H(iEdge)-HydroParam%hj(iEdge) + ! Velocity magnitude: + vmag = dsqrt(uuint**2+vvint**2+wwint**2) + + ! In cases that the velocity magnitude in layer is very low or the iEdge no has neighbour Element (r==0), the backtracking + ! velocity in layer is set equal the iEdge: + If(vmag.le.1.e-6) Then ! No activity or Water Level Condition + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) + Else + ! Else, the backtracking process is initialized: If (r==0) Then !.and.HydroParam%u(iLayer,iEdge)>0 - HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) Else - if (iLayer < Hydroparam%ElSmallm(r)) then + If (iLayer < Hydroparam%ElSmallm(r)) Then HydroParam%uxyback(iLayer,1,iEdge) = uuint HydroParam%uxyback(iLayer,2,iEdge) = vvint - else - TrajectoryFlag = 0 ! = 0 -> System Defined Intervals to Integrate Particle Trajectory; = 1 -> User Defined Intervals to Integrate Particle Trajectory - ! 3.5 Find the Local Time Step to Integrate Trajectory + Else + ! If TrajectoryFlag == 0 System Defined Intervals to Integrate Particle Trajectory, + ! else User Defined Intervals to Integrate Particle Trajectory. + TrajectoryFlag = 0 + ! Find the Local Time Step (dtb) to Integrate Trajectory: If ( TrajectoryFlag == 0 ) Then ! System Calculation - [7,8] dtb = MinVal(MeshParam%InCircle)/vmag ! ( InCircle(lElem)/Sqrt( Veloc(1)**2. + Veloc(2)**2. ), InCircle(r)/Sqrt( Veloc(1)**2. + Veloc(2)**2. ) ) ndels = Max(Floor(dt/dtb),HydroParam%NFUT) - dtb = dt/ndels !sub-step in backtracking - Else If ( TrajectoryFlag == 1 ) Then ! User Defined + dtb = dt/ndels + ElseIf ( TrajectoryFlag == 1 ) Then ndels = HydroParam%NFUT - dtb = dt/ndels !sub-step in backtracking + dtb = dt/ndels EndIf + FuFw_flag = 0 - Call btrack(ndels,dtb,uuint,vvint,wwint,& - &x0,y0,z0,xt,yt,zt,nnel,jlev,iEdge,HydroParam,MeshParam,FuFw_flag) - + iEdge0 = iEdge + Call btrack(ndels,dtb,dt,uuint,vvint,wwint,hhint,& + &x0,y0,z0,xt,yt,zt,nnel,jlev,iEdge0,HydroParam,MeshParam, FuFw_flag, iLayer, iEdge) + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) - endif + + EndIf EndIf Endif @@ -92,7 +115,7 @@ Subroutine FuFv(HydroParam,MeshParam,dt) EndIf !Explicit terms - + Do iEdge=1,MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) @@ -101,22 +124,49 @@ Subroutine FuFv(HydroParam,MeshParam,dt) Exit EndIf EndDo - !jump=0 - !do Face = 1,4 - if (HydroParam%IndexInflowEdge(iEdge)>0.or.HydroParam%IndexInflowEdge(iEdge)>0) then - HydroParam%Fu(:,iEdge)=HydroParam%u(:,iEdge) - cycle - endif - !enddo - !if (jump==1) then - ! cycle - !endif + + !If (lEdge == 1) Then + ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! HydroParam%Fv(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) + Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l) + ! EndDo + !ElseIf(lEdge == 2) Then + ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! HydroParam%Fv(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) - Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l) + ! EndDo + !Else ! For iEdge == 3 and 4 + ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! HydroParam%Fv(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) + HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l)) + ! EndDo + !EndIf + If (lEdge == 1) Then + Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + HydroParam%Fv(iLayer,iEdge) = HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) + HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l) + EndDo + ElseIf(lEdge == 2) Then + Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + HydroParam%Fv(iLayer,iEdge) = HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) - HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l) + EndDo + Else ! For iEdge == 3 and 4 + Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + HydroParam%Fv(iLayer,iEdge) = HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) + HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l) + EndDo + EndIf + ! + ! If the face has a boundary condition: + If (HydroParam%IndexInflowEdge(iEdge)>0.or.HydroParam%IndexWaterLevelEdge(iEdge)>0) then + HydroParam%Fu(:,iEdge) = HydroParam%u(:,iEdge) + HydroParam%Fv(:,iEdge) = HydroParam%utang(:,iEdge) + cycle + EndIf + !MeshParam%Neighbor(:,l) Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) - If (r==0) Then !Velocity in lateral boundries is equal to cell center velocity + If (r==0) Then !Velocity in lateral boundaries is equal to cell center velocity HydroParam%Fu(iLayer,iEdge) = HydroParam%u(iLayer,iEdge) !Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%Fub(iLayer,1,l))*MeshParam%NormalVector(1,lEdge,l) + Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%Fub(iLayer,2,l))*MeshParam%NormalVector(2,lEdge,l) Else + !sinal = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge)) + ! Do in the Edges - > sig func always return 1, because right and left elements in Edge doesn't change (l == left always) - > check if is necessary if (iLayer < HydroParam%ElSmallm(r)) Then HydroParam%Fu(iLayer,iEdge) = HydroParam%u(iLayer,iEdge) else @@ -124,7 +174,7 @@ Subroutine FuFv(HydroParam,MeshParam,dt) !HydroParam%Fu(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%NormalVector(1,lEdge,l) + (Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%NormalVector(2,lEdge,l)*dt)*((HydroParam%uxyback(iLayer,2,iEdge-3)-2*HydroParam%uxyback(iLayer,2,iEdge)+HydroParam%uxyback(iLayer,2,iEdge+3))/MeshParam%EdgeLength(iEdge)) endif EndIf - + HydroParam%Fv(iLayer,iEdge) = HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%TangentVector(1,lEdge,l) + HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%TangentVector(2,lEdge,l) EndDo EndDo @@ -184,37 +234,38 @@ Subroutine FuFv(HydroParam,MeshParam,dt) Return End Subroutine FuFv - !> Routine for backtracking. - !>\note Input: point P0(x0,y0,z0) and nnel that encloses it, and initial vel., - !> initial level (for quicksearch), and a flag indicating 1st or 2nd tracking.\n - !> Output: destination point Pt(xt,yt,zt), element nnel and level jlev, - !> and vel. there (uuint,vvint,wwint). - !>\param imode mode of backtracking (imode = 1: hydrodynamic) - !>\param ndelt number of sub step time (input) - !>\param dtb sub step time in seg (input) - !>\param uuint x velocity component in the center of the edge (input) - !>\param vvint y velocity component in the center of the edge (input) - !>\param wwint z velocity component in the center of the edge (input) - !>\param nnel number of the element that enclosed the point P0 (input) - !>\param jlev number of the layer that enclosed the point P0 (input) - !>\param x0 x initial position of the point P0 (input) - !>\param y0 y initial position of the point P0(input) - !>\param z0 z initial position of the point P0 (input) - !>\return xt: x final position of the point Pt (output) - !>\return yt: y final position of the point Pt (output) - !>\return zt: z final position of the point Pt (output) - !>\return uuint: x velocity component in the Edge (output) - !>\return vvint: y velocity component in the Edge (output) - !>\return wwint: z velocity component in the Edge (output) - !>\return nnel: number of the element that enclosed the point Pt (output) - !>\return jlev: number of the layer that enclosed the point Pt (output) - !>\author Carlos Ruberto Fragoso - !>\attention List of Modifications: \n - !> - 15.09.2015: Routine Implementation (Carlos Ruberto Fragoso) - - Subroutine btrack(ndelt,dtb,uuint,vvint,wwint,x0,y0,z0,& - &xt,yt,zt,nnel,jlev,id0,HydroParam,MeshParam,FuFw_flag) + + Subroutine btrack(ndelt,dtb,dt,uuint,vvint,wwint,hhint,x0,y0,z0,& + &xt, yt, zt, nnel, jlev, id0, HydroParam, MeshParam,FuFw_flag, iLayer, iEdge) + !> Routine for backtracking. + + !> Input: point P0(x0,y0,z0) and nnel that encloses it, and initial vel., + !> initial level (for quicksearch), and a flag indicating 1st or 2nd tracking.\n + !> Output: destination point Pt(xt,yt,zt), element nnel and level jlev, + !> and vel. there (uuint,vvint,wwint). + !>\param imode mode of backtracking (imode = 1: hydrodynamic) + !>\param ndelt number of sub step time (input) + !>\param dtb sub step time in seg (input) + !>\param uuint x velocity component in the center of the edge (input) + !>\param vvint y velocity component in the center of the edge (input) + !>\param wwint z velocity component in the center of the edge (input) + !>\param nnel number of the element that enclosed the point P0 (input) + !>\param jlev number of the layer that enclosed the point P0 (input) + !>\param x0 x initial position of the point P0 (input) + !>\param y0 y initial position of the point P0(input) + !>\param z0 z initial position of the point P0 (input) + !>\return xt: x final position of the point Pt (output) + !>\return yt: y final position of the point Pt (output) + !>\return zt: z final position of the point Pt (output) + !>\return uuint: x velocity component in the Edge (output) + !>\return vvint: y velocity component in the Edge (output) + !>\return wwint: z velocity component in the Edge (output) + !>\return nnel: number of the element that enclosed the point Pt (output) + !>\return jlev: number of the layer that enclosed the point Pt (output) + !>\author Carlos Ruberto Fragoso + !>\attention List of Modifications: \n + !> - 15.09.2015: Routine Implementation (Carlos Ruberto Fragoso) Use MeshVars !, Only: Quadri,EdgeDef,xNode,yNode,Area,Edge,EdgeNodes,EdgeBary,Left,Right Use Hydrodynamic !, Only: Smallm,ElSmallm,ElCapitalM,CapitalM,Z,DZj,Ze,DZi,uNode,uxy,Ze,DZi,w @@ -222,210 +273,273 @@ Subroutine btrack(ndelt,dtb,uuint,vvint,wwint,x0,y0,z0,& Implicit none Real, parameter :: small1=1e-6 - integer, intent(in) :: ndelt,id0,FuFw_flag - Real, intent(in) :: dtb - integer, intent(inout) :: nnel,jlev - Real, intent(inout) :: uuint,vvint,wwint,x0,y0,z0 + integer, intent(in) :: ndelt, FuFw_flag, iLayer + Real, intent(inout) :: dtb, dt + integer, intent(inout) :: nnel,jlev, id0 + Real, intent(inout) :: uuint,vvint,wwint,x0,y0,z0, hhint Real, intent(out) :: xt,yt,zt - Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), uuBtrack, vvBtrack, wwBtrack - Real :: xxNode(3,9), yyNode(3,9), zzNode(3,9) + Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), uuNodet(3,9), vvNodet(3,9), wwNodet(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9), hhNode(3,9) + Real :: uuBtrack, vvBtrack, wwBtrack, hhBTrack, uuBtrack2, vvBtrack2, wwBtrack2, theta, Umax, Umin Real :: staint(8),t_xi(4),s_xi(4),sig(4),subrat(4) - Integer:: nnelIni,idt,iflqs1,i,j,l,nd,nn,lev, jjlev,n1,n2,n3,n4, n5, n6, n7, n8, n9,iNode1,iNode2,iEdge,iNode, Nodes(9), addLayer, N, S, Face, r, ll - Real:: trat,zup,zrat,aa1,aa2,aa3,aa4,aa,csi,etta,wdown,wup,weit + Integer:: nnelIni,idt,iflqs1,i,j,l,nd,nn,lev, jjlev,n1,n2,n3,n4, n5, n6, n7, n8, n9,iNode1,iNode2,iEdge,iNode, Nodes(9), addLayer, N, S, Face, r, ll, nnel0,psi_flag,nel_j + Real:: trat,zup,zrat,aa1,aa2,aa3,aa4,aa,csi,etta,wdown,wup,weit, xtaux, ytaux, ztaux, dtaux Real:: NearZero = 1e-10 !< Small Number + Real:: talx, taly, talz, tal, timeAcum, dtin Integer:: i34 = 4 type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam Integer:: ELM_flag = 1 + Integer :: Interpolate_Flag = 1 + Integer :: BoundConditionFlag = 0 + Real:: xaux,yaux,zaux - jjlev=jlev - if (nnel==677.and.jlev==13)then + jjlev = jlev + nnelIni = nnel + nnel0 = nnel + + n1=MeshParam%Quadri(3,nnel) + 1 + n2=MeshParam%Edge(2,nnel) + n3=MeshParam%Quadri(2,nnel) + 1 + n4=MeshParam%Edge(3,nnel) + n5=nnel + n6=MeshParam%Edge(1,nnel) + n7=MeshParam%Quadri(4,nnel) + 1 + n8=MeshParam%Edge(4,nnel) + n9=MeshParam%Quadri(1,nnel) + 1 + Nodes(1:9)= (/n1, n2, n3, n4, n5, n6, n7, n8, n9 /) + + If (jlev==HydroParam%ElCapitalM(nnel)) Then + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + zzNode(1,1)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,1)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%peta(Nodes(1)))*0.5d0; zzNode(3,1)=HydroParam%peta(Nodes(1)) + zzNode(1,2)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,2)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%Z(jlev+1,Nodes(2)))*0.5d0; zzNode(3,2)=HydroParam%Z(jlev+1,Nodes(2)) + zzNode(1,3)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,3)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%peta(Nodes(3)))*0.5d0; zzNode(3,3)=HydroParam%peta(Nodes(3)) + + zzNode(1,4)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,4)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%Z(jlev+1,Nodes(4)))*0.5d0; zzNode(3,4)=HydroParam%Z(jlev+1,Nodes(4)) + zzNode(1,5)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,5)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%eta(Nodes(5)))*0.5d0; zzNode(3,5)=HydroParam%eta(Nodes(5)) + zzNode(1,6)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,6)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%Z(jlev+1,Nodes(6)))*0.5d0; zzNode(3,6)=HydroParam%Z(jlev+1,Nodes(6)) + + zzNode(1,7)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,7)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%peta(Nodes(7)))*0.5d0; zzNode(3,7)=HydroParam%peta(Nodes(7)) + zzNode(1,8)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,8)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%Z(jlev+1,Nodes(8)) )*0.5d0; zzNode(3,8)=HydroParam%Z(jlev+1,Nodes(8)) + zzNode(1,9)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,9)=(HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)) + HydroParam%peta(Nodes(9)))*0.5d0; zzNode(3,9)=HydroParam%peta(Nodes(9)) + + Else + zzNode(1,1)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,1)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,1)=HydroParam%Ze(jlev+1,nnel) + zzNode(1,2)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,2)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,2)=HydroParam%Ze(jlev+1,nnel) + zzNode(1,3)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,3)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,3)=HydroParam%Ze(jlev+1,nnel) + + zzNode(1,4)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,4)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,4)=HydroParam%Ze(jlev+1,nnel) + zzNode(1,5)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,5)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,5)=HydroParam%Ze(jlev+1,nnel) + zzNode(1,6)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,6)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,6)=HydroParam%Ze(jlev+1,nnel) + + zzNode(1,7)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,7)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,7)=HydroParam%Ze(jlev+1,nnel) + zzNode(1,8)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,8)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,8)=HydroParam%Ze(jlev+1,nnel) + zzNode(1,9)=HydroParam%Ze(jlev,nnel) + sum(HydroParam%DZsi(:,nnel)); zzNode(2,9)=HydroParam%Zb(jlev,nnel) + sum(HydroParam%DZsi(:,nnel))/2; zzNode(3,9)=HydroParam%Ze(jlev+1,nnel) + + EndIf + + dtb = dt + tal = min(MeshParam%dx/abs(uuint), MeshParam%dy/abs(vvint), (zzNode(3,5) - zzNode(1,5))/abs(wwint)) + if (tal > 0 ) then + dtb = min(tal,dt,dtb) + endif + dtaux = dtb + timeAcum = 0.d0 + if(iEdge ==529 ) Then continue endif - nnelIni=nnel - Do idt=1,ndelt - trat=dble(idt)/ndelt !Ponderador no tempo para interpolação a velocidade entre n e n+1 - !Posição da partícula no primeiro subpasso de tempo - xt=x0-dtb*uuint + + Do While (timeAcum < dt) + !Posição da partícula no primeiro subpasso de tempo + xt=x0-dtb*uuint yt=y0-dtb*vvint zt=z0-dtb*wwint - - Call quicksearch(1,nnel,jlev,dtb,x0,y0,z0,xt,yt,zt,iflqs1,idt,id0,i34,HydroParam,MeshParam) - - !Do iEdge = 1, 4 - ! Face = MeshParam%Edge(iEdge,nnel) - ! ll = MeshParam%Left(Face) - ! r = MeshParam%Right(Face) - ! if (r==0.or.ll==0) then - ! ELM_flag = 0 - ! continue - ! exit - ! else - ! If (jlev<=HydroParam%ElSmallm(ll).or.jlev<=HydroParam%ElSmallm(r)) Then - ! ELM_flag = 0 - ! continue - ! exit - ! endif - ! endif - !enddo - !Do iEdge = 1, 4 - ! Face = MeshParam%Edge(iEdge,nnel) - ! if (HydroParam%IndexInflowEdge(Face)) then - ! uuint = uuint - ! vvint = vvint - ! wwint = wwint - ! return - ! endif - !enddo - - !if (ELM_flag == 0) then - ! uuint = uuint - ! vvint = vvint - ! wwint = wwint - ! - ! return - !endif - - if (ELM_flag==0) then !iBilinear - if (FuFw_flag==0) then !grid for U velocitys - call FuVelocities2(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel,jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) - else !grid for W velocitys - call FwVelocities2(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel,jlev, jjlev, xt,yt,zt,x0,y0,z0, HydroParam,MeshParam) - endif - call iBilinear2 (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt, x0, y0, z0, id0, nnel, FuFw_flag, MeshParam) - endif + !Call RK4order(uuint, vvint, wwint, dtb, nnel, id0, jlev, xt, yt, zt, x0, y0, z0, dt, timeAcum + dtb, Interpolate_Flag, HydroParam, MeshParam) + dtin = dtb + Call quicksearch(1,nnel,jlev,dtb,dtin,x0,y0,z0,xt,yt,zt,iflqs1,idt,id0,i34,uuint,vvint,wwint,BoundConditionFlag,nel_j,HydroParam,MeshParam) + dtb = dtin - if (ELM_flag==1) then !iQuadratic + if(isnan(dtb)) Then + continue + endif + !xt=x0 + !yt=y0 + !zt=z0 + + If (ELM_flag==0) Then !iBilinear Interpolation + If (FuFw_flag==0) Then !grid for U velocitys + !Call FuVelocities2(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel,jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) + Call FuVelocities3(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) + Else !grid for W velocitys + Call FwVelocities2(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, jjlev, xt,yt,zt,x0,y0,z0, HydroParam,MeshParam) + EndIf + Call iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt, x0, y0, z0, id0, nnel, FuFw_flag, MeshParam) + timeAcum = timeAcum + dtb + ElseIf (ELM_flag==1) Then !iQuadratic Interpolation + ! Get nodals' velocities and positions: + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, HydroParam, MeshParam) + If (HydroParam%eta(nnel) - HydroParam%hb(nnel) < HydroParam%PCRI + NearZero) Then + zzNode(2,:) = zzNode(2,:) + 0.5*(HydroParam%Pcri + NearZero) + zzNode(3,:) = zzNode(3,:) + HydroParam%Pcri + NearZero + Endif + !a)ELM-Conservative + If (HydroParam%iConv == 4) Then + hhNode(1,1) = zzNode(3,1) - sum(HydroParam%DZsi(:,nnel)); hhNode(1,4) = zzNode(3,4) - sum(HydroParam%DZsi(:,nnel)); hhNode(1,7) = zzNode(3,7) - sum(HydroParam%DZsi(:,nnel)) + hhNode(2,1) = zzNode(3,1) - sum(HydroParam%DZsi(:,nnel)); hhNode(2,4) = zzNode(3,4) - sum(HydroParam%DZsi(:,nnel)); hhNode(2,7) = zzNode(3,7) - sum(HydroParam%DZsi(:,nnel)) + hhNode(3,1) = zzNode(3,1) - sum(HydroParam%DZsi(:,nnel)); hhNode(3,4) = zzNode(3,4) - sum(HydroParam%DZsi(:,nnel)); hhNode(3,7) = zzNode(3,7) - sum(HydroParam%DZsi(:,nnel)) + hhNode(1,2) = zzNode(3,2) - sum(HydroParam%DZsi(:,nnel)); hhNode(1,5) = zzNode(3,5) - sum(HydroParam%DZsi(:,nnel)); hhNode(1,8) = zzNode(3,8) - sum(HydroParam%DZsi(:,nnel)) + hhNode(2,2) = zzNode(3,2) - sum(HydroParam%DZsi(:,nnel)); hhNode(2,5) = zzNode(3,5) - sum(HydroParam%DZsi(:,nnel)); hhNode(2,8) = zzNode(3,8) - sum(HydroParam%DZsi(:,nnel)) + hhNode(3,2) = zzNode(3,2) - sum(HydroParam%DZsi(:,nnel)); hhNode(3,5) = zzNode(3,5) - sum(HydroParam%DZsi(:,nnel)); hhNode(3,8) = zzNode(3,8) - sum(HydroParam%DZsi(:,nnel)) + hhNode(1,3) = zzNode(3,3) - sum(HydroParam%DZsi(:,nnel)); hhNode(1,6) = zzNode(1,6) - sum(HydroParam%DZsi(:,nnel)); hhNode(1,9) = zzNode(3,9) - sum(HydroParam%DZsi(:,nnel)) + hhNode(2,3) = zzNode(3,3) - sum(HydroParam%DZsi(:,nnel)); hhNode(2,6) = zzNode(2,6) - sum(HydroParam%DZsi(:,nnel)); hhNode(2,9) = zzNode(3,9) - sum(HydroParam%DZsi(:,nnel)) + hhNode(3,3) = zzNode(3,3) - sum(HydroParam%DZsi(:,nnel)); hhNode(3,6) = zzNode(3,6) - sum(HydroParam%DZsi(:,nnel)); hhNode(3,9) = zzNode(3,9) - sum(HydroParam%DZsi(:,nnel)) - n1=MeshParam%Quadri(3,nnel) + 1 - n2=MeshParam%Edge(2,nnel) - n3=MeshParam%Quadri(2,nnel) + 1 - n4=MeshParam%Edge(3,nnel) - n5=nnel - n6=MeshParam%Edge(1,nnel) - n7=MeshParam%Quadri(4,nnel) + 1 - n8=MeshParam%Edge(4,nnel) - n9=MeshParam%Quadri(1,nnel) + 1 - Nodes(1:9)= (/n1, n2, n3, n4, n5, n6, n7, n8, n9 /) - - uuNode(1,1)=HydroParam%uNode(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uNode(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%uNode(jlev,3,Nodes(1)) - uuNode(1,2)=HydroParam%ug(Nodes(2),jlev); vvNode(1,2)=HydroParam%vg(Nodes(2),jlev); wwNode(1,2)=HydroParam%wg(Nodes(2),jlev) - uuNode(1,3)=HydroParam%uNode(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%uNode(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%uNode(jlev,3,Nodes(3)) - uuNode(2,1)=HydroParam%ubV(jlev,1,Nodes(1)); vvNode(2,1)=HydroParam%ubV(jlev,2,Nodes(1)); wwNode(2,1)=HydroParam%ubV(jlev,3,Nodes(1)) - uuNode(2,2)=HydroParam%uxy(jlev,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(jlev,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(jlev,Nodes(2)) - uuNode(2,3)=HydroParam%ubV(jlev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubV(jlev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubV(jlev,3,Nodes(3)) - uuNode(3,1)=HydroParam%uNode(jlev+1,1,Nodes(1)); vvNode(3,1)=HydroParam%uNode(jlev+1,2,Nodes(1)); wwNode(3,1)=HydroParam%uNode(jlev+1,3,Nodes(1)) - uuNode(3,2)=HydroParam%ug(Nodes(2),jlev+1); vvNode(3,2)=HydroParam%vg(Nodes(2),jlev+1); wwNode(3,2)=HydroParam%wg(Nodes(2),jlev+1) - uuNode(3,3)=HydroParam%uNode(jlev+1,1,Nodes(3)); vvNode(3,3)=HydroParam%uNode(jlev+1,2,Nodes(3)); wwNode(3,3)=HydroParam%uNode(jlev+1,3,Nodes(3)) - - uuNode(1,4)=HydroParam%ug(Nodes(4),jlev); vvNode(1,4)=HydroParam%vg(Nodes(4),jlev); wwNode(1,4)=HydroParam%wg(Nodes(4),jlev) - uuNode(1,5)=HydroParam%uxyL(jlev,1,Nodes(5)); vvNode(1,5)=HydroParam%uxyL(jlev,2,Nodes(5)); wwNode(1,5)=HydroParam%w(jlev,Nodes(5)) - uuNode(1,6)=HydroParam%ug(Nodes(6),jlev); vvNode(1,6)=HydroParam%vg(Nodes(6),jlev); wwNode(1,6)=HydroParam%wg(Nodes(6),jlev) - uuNode(2,4)=HydroParam%uxy(jlev,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(jlev,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(jlev,Nodes(4)) - uuNode(2,5)=HydroParam%ub(jlev,1,Nodes(5)); vvNode(2,5)=HydroParam%ub(jlev,2,Nodes(5)); wwNode(2,5)=HydroParam%ub(jlev,3,Nodes(5)) - uuNode(2,6)=HydroParam%uxy(jlev,1,Nodes(6)); vvNode(2,6)=HydroParam%uxy(jlev,2,Nodes(6)); wwNode(2,6)=HydroParam%wfc(jlev,Nodes(6)) - uuNode(3,4)=HydroParam%ug(Nodes(4),jlev+1); vvNode(3,4)=HydroParam%vg(Nodes(4),jlev+1); wwNode(3,4)=HydroParam%wg(Nodes(4),jlev+1) - uuNode(3,5)=HydroParam%uxyL(jlev+1,1,Nodes(5)); vvNode(3,5)=HydroParam%uxyL(jlev+1,2,Nodes(5)); wwNode(3,5)=HydroParam%w(jlev+1,Nodes(5)) - uuNode(3,6)=HydroParam%ug(Nodes(6),jlev+1); vvNode(3,6)=HydroParam%vg(Nodes(6),jlev+1); wwNode(3,6)=HydroParam%wg(Nodes(6),jlev+1) - - uuNode(1,7)=HydroParam%uNode(jlev,1,Nodes(7)); vvNode(1,7)=HydroParam%uNode(jlev,2,Nodes(7)); wwNode(1,7)=HydroParam%uNode(jlev,3,Nodes(7)) - uuNode(1,8)=HydroParam%ug(Nodes(8),jlev); vvNode(1,8)=HydroParam%vg(Nodes(8),jlev); wwNode(1,8)=HydroParam%wg(Nodes(8),jlev) - uuNode(1,9)=HydroParam%uNode(jlev,1,Nodes(9)); vvNode(1,9)=HydroParam%uNode(jlev,2,Nodes(9)); wwNode(1,9)=HydroParam%uNode(jlev,3,Nodes(9)) - uuNode(2,7)=HydroParam%ubV(jlev,1,Nodes(7)); vvNode(2,7)=HydroParam%ubV(jlev,2,Nodes(7)); wwNode(2,7)=HydroParam%ubV(jlev,3,Nodes(7)) - uuNode(2,8)=HydroParam%uxy(jlev,1,Nodes(8)); vvNode(2,8)=HydroParam%uxy(jlev,2,Nodes(8)); wwNode(2,8)=HydroParam%wfc(jlev,Nodes(8)) - uuNode(2,9)=HydroParam%ubV(jlev,1,Nodes(9)); vvNode(2,9)=HydroParam%ubV(jlev,2,Nodes(9)); wwNode(2,9)=HydroParam%ubV(jlev,3,Nodes(9)) - uuNode(3,7)=HydroParam%uNode(jlev+1,1,Nodes(7)); vvNode(3,7)=HydroParam%uNode(jlev+1,2,Nodes(7)); wwNode(3,7)=HydroParam%uNode(jlev+1,3,Nodes(7)) - uuNode(3,8)=HydroParam%ug(Nodes(8),jlev+1); vvNode(3,8)=HydroParam%vg(Nodes(8),jlev+1); wwNode(3,8)=HydroParam%wg(Nodes(8),jlev+1) - uuNode(3,9)=HydroParam%uNode(jlev+1,1,Nodes(9)); vvNode(3,9)=HydroParam%uNode(jlev+1,2,Nodes(9)); wwNode(3,9)=HydroParam%uNode(jlev+1,3,Nodes(9)) - - if (jlev==HydroParam%ElCapitalM(nnel)) then - xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(jlev,nnel) - xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(jlev,nnel) - xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(jlev,nnel) - xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(jlev,nnel)+HydroParam%peta(Nodes(1)))*0.5d0 - xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(jlev,nnel)+HydroParam%Z(jlev+1,Nodes(2)))*0.5d0 - xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(jlev,nnel)+HydroParam%peta(Nodes(3)))*0.5d0 - xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) - xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(jlev+1,Nodes(2)) - xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) - - xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(jlev,nnel) - xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(jlev,nnel) - xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(jlev,nnel) - xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(jlev,nnel)+HydroParam%Z(jlev+1,Nodes(4)))*0.5d0 - xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(jlev,nnel)+HydroParam%eta(Nodes(5)))*0.5d0 - xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(jlev,nnel)+HydroParam%Z(jlev+1,Nodes(6)))*0.5d0 - xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(jlev+1,Nodes(4)) - xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) - xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(jlev+1,Nodes(6)) - - xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(jlev,nnel) - xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(jlev,nnel) - xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(jlev,nnel) - xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(jlev,nnel)+HydroParam%peta(Nodes(7)))*0.5d0 - xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(jlev,nnel)+HydroParam%Z(jlev+1,Nodes(8)))*0.5d0 - xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(jlev,nnel)+HydroParam%peta(Nodes(9)))*0.5d0 - xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) - xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(jlev+1,Nodes(8)) - xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + uuNode = uuNode*hhNode; vvNode = vvNode*hhNode; wwNode = wwNode*hhNode + + Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, hhBTrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), hhNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) - else - xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(jlev,nnel) - xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(jlev,nnel) - xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(jlev,nnel) - xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(jlev,nnel) - xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(jlev,nnel) - xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(jlev,nnel) - xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(jlev+1,nnel) - xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(jlev+1,nnel) - xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(jlev+1,nnel) - - xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(jlev,nnel) - xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(jlev,nnel) - xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(jlev,nnel) - xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(jlev,nnel) - xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(jlev,nnel) - xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(jlev,nnel) - xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(jlev+1,nnel) - xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(jlev+1,nnel) - xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(jlev+1,nnel) - - xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(jlev,nnel) - xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(jlev,nnel) - xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(jlev,nnel) - xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(jlev,nnel) - xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(jlev,nnel) - xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(jlev,nnel) - xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(jlev+1,nnel) - xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(jlev+1,nnel) - xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(jlev+1,nnel) - endif - - if (nnel==10.or.nnel==50) then !.and.jlev==HydroParam%ElSmallm(nnel) - continue - endif - call iquadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt ) - Endif + !hhint = max(0.d0,HydroParam%H(iEdge) - sum(HydroParam%DZsj(:,iEdge))) + uuBtrack = uuBtrack/hhBTrack + vvBtrack = vvBtrack/hhBTrack + wwBtrack = wwBtrack/hhBTrack + hhint = hhBtrack + timeAcum = timeAcum + dtb + Else + !b)ELM Non Conservative: + If(BoundConditionFlag == 1) Then + !This condition takes the moment in the time (dtin) which the particle crosses a water level boundary condition and interpolate the velocities: + timeAcum = timeAcum + dtin + if (nel_j == 1) Then + uuNode(:,3) = (1 + timeAcum/dt)*uuNode(:,3) - (timeAcum/dt)*uuNodet(:,3); vvNode(:,3) = (1 + timeAcum/dt)*vvNode(:,3) - (timeAcum/dt)*vvNodet(:,3); wwNode(:,3) = (1 + timeAcum/dt)*wwNode(:,3) - (timeAcum/dt)*wwNodet(:,3) + uuNode(:,6) = (1 + timeAcum/dt)*uuNode(:,6) - (timeAcum/dt)*uuNodet(:,6); vvNode(:,6) = (1 + timeAcum/dt)*vvNode(:,6) - (timeAcum/dt)*vvNodet(:,6); wwNode(:,6) = (1 + timeAcum/dt)*wwNode(:,6) - (timeAcum/dt)*wwNodet(:,6) + uuNode(:,9) = (1 + timeAcum/dt)*uuNode(:,9) - (timeAcum/dt)*uuNodet(:,9); vvNode(:,9) = (1 + timeAcum/dt)*vvNode(:,9) - (timeAcum/dt)*vvNodet(:,9); wwNode(:,9) = (1 + timeAcum/dt)*wwNode(:,9) - (timeAcum/dt)*wwNodet(:,9) + Elseif(nel_j == 2) Then + uuNode(:,1) = (1 + timeAcum/dt)*uuNode(:,1) - (timeAcum/dt)*uuNodet(:,1); vvNode(:,1) = (1 + timeAcum/dt)*vvNode(:,1) - (timeAcum/dt)*vvNodet(:,1); wwNode(:,1) = (1 + timeAcum/dt)*wwNode(:,1) - (timeAcum/dt)*wwNodet(:,1) + uuNode(:,2) = (1 + timeAcum/dt)*uuNode(:,2) - (timeAcum/dt)*uuNodet(:,2); vvNode(:,2) = (1 + timeAcum/dt)*vvNode(:,2) - (timeAcum/dt)*vvNodet(:,2); wwNode(:,2) = (1 + timeAcum/dt)*wwNode(:,2) - (timeAcum/dt)*wwNodet(:,2) + uuNode(:,3) = (1 + timeAcum/dt)*uuNode(:,3) - (timeAcum/dt)*uuNodet(:,3); vvNode(:,3) = (1 + timeAcum/dt)*vvNode(:,3) - (timeAcum/dt)*vvNodet(:,3); wwNode(:,3) = (1 + timeAcum/dt)*wwNode(:,3) - (timeAcum/dt)*wwNodet(:,3) + ElseIf(nel_j == 3) Then + uuNode(:,1) = (1 + timeAcum/dt)*uuNode(:,1) - (timeAcum/dt)*uuNodet(:,1); vvNode(:,1) = (1 + timeAcum/dt)*vvNode(:,1) - (timeAcum/dt)*vvNodet(:,1); wwNode(:,1) = (1 + timeAcum/dt)*wwNode(:,1) - (timeAcum/dt)*wwNodet(:,1) + uuNode(:,4) = (1 + timeAcum/dt)*uuNode(:,4) - (timeAcum/dt)*uuNodet(:,4); vvNode(:,4) = (1 + timeAcum/dt)*vvNode(:,4) - (timeAcum/dt)*vvNodet(:,4); wwNode(:,4) = (1 + timeAcum/dt)*wwNode(:,4) - (timeAcum/dt)*wwNodet(:,4) + uuNode(:,7) = (1 + timeAcum/dt)*uuNode(:,7) - (timeAcum/dt)*uuNodet(:,7); vvNode(:,7) = (1 + timeAcum/dt)*vvNode(:,7) - (timeAcum/dt)*vvNodet(:,7); wwNode(:,7) = (1 + timeAcum/dt)*wwNode(:,7) - (timeAcum/dt)*wwNodet(:,7) + Else + uuNode(:,7) = (1 + timeAcum/dt)*uuNode(:,7) - (timeAcum/dt)*uuNodet(:,7); vvNode(:,7) = (1 + timeAcum/dt)*vvNode(:,7) - (timeAcum/dt)*vvNodet(:,7); wwNode(:,7) = (1 + timeAcum/dt)*wwNode(:,7) - (timeAcum/dt)*wwNodet(:,7) + uuNode(:,8) = (1 + timeAcum/dt)*uuNode(:,8) - (timeAcum/dt)*uuNodet(:,8); vvNode(:,8) = (1 + timeAcum/dt)*vvNode(:,8) - (timeAcum/dt)*vvNodet(:,8); wwNode(:,8) = (1 + timeAcum/dt)*wwNode(:,8) - (timeAcum/dt)*wwNodet(:,8) + uuNode(:,9) = (1 + timeAcum/dt)*uuNode(:,9) - (timeAcum/dt)*uuNodet(:,9); vvNode(:,9) = (1 + timeAcum/dt)*vvNode(:,9) - (timeAcum/dt)*vvNodet(:,9); wwNode(:,9) = (1 + timeAcum/dt)*wwNode(:,9) - (timeAcum/dt)*wwNodet(:,9) + EndIf + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) + !Call BoundaryConditionTracking(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Nodes(:), nnel, jlev, nel_j, xt, yt, zt, uuint, vvint, wwint, timeAcum, dtb, dt, HydroParam, MeshParam) + !uuBtrack=uuint; vvBtrack=vvint; wwBtrack = wwint + Else + timeAcum = timeAcum + dtb + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) + EndIf + EndIf + ElseIf(ELM_flag == 2) Then + timeAcum = timeAcum + dtb + Call ELMConservative4(uuBtrack, vvBtrack, wwBtrack, uuint, vvint, wwint, nnel, jlev, iLayer, iEdge, xt, yt, zt, dtb, psi_flag, HydroParam, MeshParam) + ElseIf (ELM_flag==3) Then + If(BoundConditionFlag == 1) Then + timeAcum = timeAcum + dtin + if (nel_j == 1) Then + uuNode(:,3) = (1 + timeAcum/dt)*uuNode(:,3) - (timeAcum/dt)*uuNodet(:,3); vvNode(:,3) = (1 + timeAcum/dt)*vvNode(:,3) - (timeAcum/dt)*vvNodet(:,3); wwNode(:,3) = (1 + timeAcum/dt)*wwNode(:,3) - (timeAcum/dt)*wwNodet(:,3) + uuNode(:,6) = (1 + timeAcum/dt)*uuNode(:,6) - (timeAcum/dt)*uuNodet(:,6); vvNode(:,6) = (1 + timeAcum/dt)*vvNode(:,6) - (timeAcum/dt)*vvNodet(:,6); wwNode(:,6) = (1 + timeAcum/dt)*wwNode(:,6) - (timeAcum/dt)*wwNodet(:,6) + uuNode(:,9) = (1 + timeAcum/dt)*uuNode(:,9) - (timeAcum/dt)*uuNodet(:,9); vvNode(:,9) = (1 + timeAcum/dt)*vvNode(:,9) - (timeAcum/dt)*vvNodet(:,9); wwNode(:,9) = (1 + timeAcum/dt)*wwNode(:,9) - (timeAcum/dt)*wwNodet(:,9) + Elseif(nel_j == 2) Then + uuNode(:,1) = (1 + timeAcum/dt)*uuNode(:,1) - (timeAcum/dt)*uuNodet(:,1); vvNode(:,1) = (1 + timeAcum/dt)*vvNode(:,1) - (timeAcum/dt)*vvNodet(:,1); wwNode(:,1) = (1 + timeAcum/dt)*wwNode(:,1) - (timeAcum/dt)*wwNodet(:,1) + uuNode(:,2) = (1 + timeAcum/dt)*uuNode(:,2) - (timeAcum/dt)*uuNodet(:,2); vvNode(:,2) = (1 + timeAcum/dt)*vvNode(:,2) - (timeAcum/dt)*vvNodet(:,2); wwNode(:,2) = (1 + timeAcum/dt)*wwNode(:,2) - (timeAcum/dt)*wwNodet(:,2) + uuNode(:,3) = (1 + timeAcum/dt)*uuNode(:,3) - (timeAcum/dt)*uuNodet(:,3); vvNode(:,3) = (1 + timeAcum/dt)*vvNode(:,3) - (timeAcum/dt)*vvNodet(:,3); wwNode(:,3) = (1 + timeAcum/dt)*wwNode(:,3) - (timeAcum/dt)*wwNodet(:,3) + ElseIf(nel_j == 3) Then + uuNode(:,1) = (1 + timeAcum/dt)*uuNode(:,1) - (timeAcum/dt)*uuNodet(:,1); vvNode(:,1) = (1 + timeAcum/dt)*vvNode(:,1) - (timeAcum/dt)*vvNodet(:,1); wwNode(:,1) = (1 + timeAcum/dt)*wwNode(:,1) - (timeAcum/dt)*wwNodet(:,1) + uuNode(:,4) = (1 + timeAcum/dt)*uuNode(:,4) - (timeAcum/dt)*uuNodet(:,4); vvNode(:,4) = (1 + timeAcum/dt)*vvNode(:,4) - (timeAcum/dt)*vvNodet(:,4); wwNode(:,4) = (1 + timeAcum/dt)*wwNode(:,4) - (timeAcum/dt)*wwNodet(:,4) + uuNode(:,7) = (1 + timeAcum/dt)*uuNode(:,7) - (timeAcum/dt)*uuNodet(:,7); vvNode(:,7) = (1 + timeAcum/dt)*vvNode(:,7) - (timeAcum/dt)*vvNodet(:,7); wwNode(:,7) = (1 + timeAcum/dt)*wwNode(:,7) - (timeAcum/dt)*wwNodet(:,7) + Else + uuNode(:,7) = (1 + timeAcum/dt)*uuNode(:,7) - (timeAcum/dt)*uuNodet(:,7); vvNode(:,7) = (1 + timeAcum/dt)*vvNode(:,7) - (timeAcum/dt)*vvNodet(:,7); wwNode(:,7) = (1 + timeAcum/dt)*wwNode(:,7) - (timeAcum/dt)*wwNodet(:,7) + uuNode(:,8) = (1 + timeAcum/dt)*uuNode(:,8) - (timeAcum/dt)*uuNodet(:,8); vvNode(:,8) = (1 + timeAcum/dt)*vvNode(:,8) - (timeAcum/dt)*vvNodet(:,8); wwNode(:,8) = (1 + timeAcum/dt)*wwNode(:,8) - (timeAcum/dt)*wwNodet(:,8) + uuNode(:,9) = (1 + timeAcum/dt)*uuNode(:,9) - (timeAcum/dt)*uuNodet(:,9); vvNode(:,9) = (1 + timeAcum/dt)*vvNode(:,9) - (timeAcum/dt)*vvNodet(:,9); wwNode(:,9) = (1 + timeAcum/dt)*wwNode(:,9) - (timeAcum/dt)*wwNodet(:,9) + EndIf + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) + + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, HydroParam, MeshParam) + !Call BoundaryConditionTracking(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Nodes(:), nnel, jlev, nel_j, xt, yt, zt, uuint, vvint, wwint, timeAcum, dtb, dt, HydroParam, MeshParam) + !uuBtrack=uuint; vvBtrack=vvint; wwBtrack = wwint + Else + !c) ELM + ENO: + timeAcum = timeAcum + dtb + !Bilinear Interpolation: + Call FuVelocities3(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel,jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) + Call iBilinear2 (uuBtrack2, vvBtrack2, wwBtrack2, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt, x0, y0, z0, id0, nnel, FuFw_flag, MeshParam) + + !iQuadratic Interpolation: + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, HydroParam, MeshParam) + Call iquadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) + + Umax = maxVal(uuNode) + Umin = minVal(uuNode) + If (uuBtrack2 - uuBtrack == 0) Then + theta = 1.0d0 + ElseIf(uuBtrack2 - uuBtrack > 0) Then + theta = min(1.0d0,(Umax-uuBtrack2)/(uuBtrack2 - uuBtrack)) + Else + theta = min(1.0d0,(Umin-uuBtrack2)/(uuBtrack2 - uuBtrack)) + EndIf + uuBtrack = uuBtrack2 - theta*(uuBtrack2 - uuBtrack) + + Umax = maxVal(vvNode) + Umin = minVal(vvNode) + If (vvBtrack2 - vvBtrack == 0) Then + theta = 1.0d0 + ElseIf(vvBtrack2 - vvBtrack > 0) Then + theta = min(1.0d0,(Umax-vvBtrack2)/(vvBtrack2 - vvBtrack)) + Else + theta = min(1.0d0,(Umin-vvBtrack2)/(vvBtrack2 - vvBtrack)) + EndIf + vvBtrack = vvBtrack2 - theta*(vvBtrack2 - vvBtrack) + Umax = maxVal(wwNode) + Umin = minVal(wwNode) + If (wwBtrack2 - wwBtrack == 0) Then + theta = 1.0d0 + ElseIf(wwBtrack2 - wwBtrack > 0) Then + theta = min(1.0d0,(Umax-wwBtrack2)/(wwBtrack2 - wwBtrack)) + Else + theta = min(1.0d0,(Umin-wwBtrack2)/(wwBtrack2 - wwBtrack)) + EndIf + wwBtrack = wwBtrack2 - theta*(wwBtrack2 - wwBtrack) + EndIf + + EndIf + uuint = uuBtrack vvint = vvBtrack - wwint = wwBtrack - + wwint = wwBtrack + If(iflqs1.eq.1) exit x0=xt y0=yt z0=zt + + !Adaptative sub-time step: + If (nnel /= nnel0) Then + dtb = dtaux + tal = min(MeshParam%dx/abs(uuint), MeshParam%dy/abs(vvint), (zzNode(3,5) - zzNode(1,5))/abs(wwint)) + if (tal > 0 ) then + dtb = min(tal,dt,dtb) + endif + nnel0 = nnel + If (timeAcum < dt .and. dtb + timeAcum > dt) Then + dtb = dt - timeAcum + EndIf + EndIf EndDo Return End Subroutine btrack - Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& - &xt,yt,zt,nfl,idt,id0,i34,HydroParam,MeshParam) + Subroutine quicksearch(iloc,nnel,jlev,dtb,dtin,x0,y0,z0,& + &xt,yt,zt,nfl,idt,id0,i34,uuint,vvint,wwint,BoundConditionFlag,nel_j,HydroParam,MeshParam) !> Straightline search algorithm. !>\note Initially nnel is an element that encompasses the point P0(x0,y0).\n @@ -454,24 +568,32 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& Implicit none Real, parameter :: small1=1e-5 - Integer, intent(in) :: iloc,idt,id0,i34 + Integer, intent(in) :: iloc,idt,i34 Real, intent(in) :: dtb,x0,y0,z0 Integer, intent(out) :: nfl - Integer, intent(inout) :: nnel,jlev + Integer, intent(inout) :: nnel,jlev,id0 Real:: xpoly(4),ypoly(4) Real, intent(inout) :: xt,yt,zt Real:: trm,aa,aa1,ae,xcg,ycg,pathl,xin,yin,zin,tt1,tt2,dist,xvel,yvel,zvel,hvel - Integer:: nel,i,j,k,n1,n2,nel_j,iflag,it,md1,md2,lit,k1,k2,jd1,jd2,r,isd,INOUT + Real:: uuint,vvint,wwint,dtin + Integer:: BoundConditionFlag + Integer:: nel,i,j,k,n1,n2,nel_j,iflag,it,md1,md2,lit,k1,k2,jd1,jd2,r,isd,nel0,INOUT Real:: NearZero = 1e-10 !< Small Number + Integer :: NWater type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam + BoundConditionFlag = 0 + nel0 = nnel nfl=0 trm=dtb !time remaining - - nel=nnel + nel_j = id0 + nel = nnel aa=0 aa1=0 + !The ideia is that any polygon area can be represents by sum of multiples triangules. + !Next are calculated the multiples triangules area formed by P0 and iEdges nodes points (acumulated in aa variable) + !and Pt and iEdges points (acumulated in aa1 variable). Do i=1,i34 !Get the nodes for each edge n1=MeshParam%Quadri(MeshParam%EdgeDef(1,i),nel) + 1 @@ -481,6 +603,8 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& aa1=aa1+dabs(signa(MeshParam%xNode(n1),MeshParam%xNode(n2),xt,MeshParam%yNode(n1),MeshParam%yNode(n2),yt)) EndDo !i + !If P0 is inside on the Element(nnel) iEdge barycenter, then the acumalated area calculate in previous step is equal to %Area(iElement). + !Check if P0(x0,y0,z0) is enclosed in nel: ae=dabs(aa-MeshParam%Area(nel))/MeshParam%Area(nel) If(ae.gt.small1) Then print*,'(x0,y0) not in nnel initially',ae,nnel,id0 @@ -488,6 +612,8 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& stop EndIf + !If PT is inside the Element(nnel), then the acumalated area calculate in previous step is lower than %Area(iElement). + !In this case, nnel was finded and need to find iLayer inside nnel (go to 400) ae=dabs(aa1-MeshParam%Area(nel))/MeshParam%Area(nel) if(ae.lt.small1) Then nnel=nel @@ -499,13 +625,13 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& If(iloc.eq.0) Then !xcg= MeshParam%EdgeBary(1,id0) !x0 !ycg= MeshParam%EdgeBary(2,id0) !y0 - xcg= x0 !MeshParam%EdgeBary(1,id0) !x0 - ycg= y0 !MeshParam%EdgeBary(2,id0) !y0 + xcg = x0 !MeshParam%EdgeBary(1,id0) !x0 + ycg = y0 !MeshParam%EdgeBary(2,id0) !y0 Elseif(iloc.eq.1) Then !xcg=(1-1.0d-4)*MeshParam%EdgeBary(1,id0)+1.0d-4*MeshParam%xb(nel) !ycg=(1-1.0d-4)*MeshParam%EdgeBary(2,id0)+1.0d-4*MeshParam%yb(nel) - xcg=(1-1.0d-4)*x0+1.0d-4*MeshParam%xb(nel) - ycg=(1-1.0d-4)*y0+1.0d-4*MeshParam%yb(nel) + xcg = (1-1.0d-4)*x0+1.0d-4*MeshParam%xb(nel) + ycg = (1-1.0d-4)*y0+1.0d-4*MeshParam%yb(nel) ! |x0-xcg|/|x0-xctr|=1.0d-3 endif @@ -516,18 +642,27 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& stop endif - !Starting edge nel_j + ! Check if the particle position crosses some Edge from Element(nel): + ! Starting edge nel_j Do i=1,i34 + !Get the nodes for each edge n1=MeshParam%Quadri(MeshParam%EdgeDef(1,i),nel) + 1 n2=MeshParam%Quadri(MeshParam%EdgeDef(2,i),nel) + 1 + !Check intersection between lines segments, one formed by nodes points (Edge) and another formed by Pt(xt,yt) and Pcg(xcg,ycg): call intersect2(xcg,xt,MeshParam%xNode(n1),MeshParam%xNode(n2),ycg,yt,MeshParam%yNode(n1),MeshParam%yNode(n2),iflag,xin,yin,tt1,tt2) + !If has a intersection point PI(xin, yin), the Edge i is crosses in particle trajectory: If(iflag.eq.1) Then nel_j=i + !Find the moment which the particle crosses the edge: + if(sqrt((x0-xin)**0.5+(y0-yin)**0.5)>small1 .and. abs(sqrt(uuint**0.5+vvint**0.5))>0 )then + dtin = sqrt((x0-xin)**0.5+(y0-yin)**0.5)/sqrt(uuint**0.5+vvint**0.5) + endif Go to 399 Endif Enddo !i=1,3 + !No one Edge in element (nel) was crossed by particle: If(iflag.eq.0) Then xt = x0 yt = y0 @@ -585,24 +720,45 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& !For horizontal exit and dry elements, compute tangential vel., !update target (xt,yt,zt) and continue. isd = MeshParam%Edge(nel_j,nel) + id0 = isd r = MeshParam%Right(isd) - If (r == 0 .or. HydroParam%H(isd) <= HydroParam%PCRI+NearZero) Then + + if (nel==179) then + continue + endif + + !bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,isd)<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,isd) >= 110 - NearZero) then + ! r = 0 + ! elseif(MeshParam%EdgeBary(2,isd) <= 90 + NearZero) then + ! r = 0 + ! endif + !endif + + !If particle cross iEdge from iElement(nel), so the new iElement is the neighbour Element which share iEdge(nel_j). + !However, it can a abnormal case which either iEdge(isd) no has neighbour (horizontal exit or wall) or is dry: + If (r == 0 .or. HydroParam%H(isd)-HydroParam%hj(isd)<=HydroParam%Pcri+NearZero) Then lit=1 - !Nudge intersect (xin,yin), and update starting pt xin=(1-1.0d-4)*xin+1.0d-4*MeshParam%xb(nel) yin=(1-1.0d-4)*yin+1.0d-4*MeshParam%yb(nel) xcg=xin ycg=yin + !Set tang. velocities: xvel= 0.!uxy(jlev,1,isd) yvel= 0.!uxy(jlev,2,isd) zvel=0.5*((HydroParam%uNode(jlev,3,md1)+HydroParam%uNode(jlev,3,md2))/2. + (HydroParam%uNode(jlev+1,3,md1)+HydroParam%uNode(jlev+1,3,md2))/2.) + + !Update Pt: xt=xin-xvel*trm yt=yin-yvel*trm zt=zin-zvel*trm + + !Horizontal velocity magnitude: hvel=dsqrt(xvel**2+yvel**2) - If(hvel.lt.1.e-4) Then + If(hvel.lt.1.e-4) Then !Checar essa condi��o, todos os casos entram aqui CAYO nfl=1 xt=xin yt=yin @@ -610,38 +766,91 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& nnel=nel exit loop4 EndIf - pathl=hvel*trm - Endif !abnormal cases + pathl=hvel*trm + + ElseIf (HydroParam%eta(MeshParam%Neighbor(nel_j,nnel)) - HydroParam%hb(MeshParam%Neighbor(nel_j,nnel)) <= HydroParam%PCRI + NearZero) Then !CAYO + lit=1 - !Search for nel's neighbor with edge nel_j, or in abnormal cases, the same - !nel + !Nudge intersect (xin,yin), and update starting pt + xin=(1-1.0d-4)*xin+1.0d-4*MeshParam%xb(nel) + yin=(1-1.0d-4)*yin+1.0d-4*MeshParam%yb(nel) + xcg=xin + ycg=yin + + !Set tang. velocities: + xvel = 0.!uxy(jlev,1,isd) + yvel = 0.!uxy(jlev,2,isd) + zvel = 0.5*((HydroParam%uNode(jlev,3,md1)+HydroParam%uNode(jlev,3,md2))/2. + (HydroParam%uNode(jlev+1,3,md1)+HydroParam%uNode(jlev+1,3,md2))/2.) + + !Update Pt: + xt=xin-xvel*trm + yt=yin-yvel*trm + zt=zin-zvel*trm + + !Horizontal velocity magnitude: + hvel=dsqrt(xvel**2+yvel**2) + If(hvel.lt.1.e-4) Then !Checar essa condi��o, todos os casos entram aqui CAYO + nfl=1 + xt=xin + yt=yin + zt=zin + nnel=nel + exit loop4 + EndIf + pathl=hvel*trm + ElseIf(dmax1(zt,HydroParam%hb(nel0)) < HydroParam%hb(MeshParam%Neighbor(nel_j,nnel)) ) Then + nnel = nel0 + xt=(1-1.0d-4)*MeshParam%EdgeBary(1,MeshParam%Edge(nel_j,nel0)) + 1.0d-4*MeshParam%xb(nel0) + yt=(1-1.0d-4)*MeshParam%EdgeBary(2,MeshParam%Edge(nel_j,nel0)) + 1.0d-4*MeshParam%yb(nel0) + nfl=1 + exit loop4 + EndIf + + !Else in normal cases, we need get the neighbour element which shares the iEdge(nel_j): If(lit.eq.0) Then !next front element nel = MeshParam%Neighbor(nel_j,nel) EndIf + !With the element updated, we check again if Pt(xt,yt) is inside the element: aa=0 Do i=1,i34 k1=MeshParam%Quadri(MeshParam%EdgeDef(1,i),nel) + 1 k2=MeshParam%Quadri(MeshParam%EdgeDef(2,i),nel) + 1 aa=aa+dabs(signa(MeshParam%xNode(k1),MeshParam%xNode(k2),xt,MeshParam%yNode(k1),MeshParam%yNode(k2),yt)) EndDo !i - ae=dabs(aa-MeshParam%Area(nel))/MeshParam%Area(nel) + + !If is inside, the acumulated area (aa) is lower than %Area(iElement): + ae = dabs(aa-MeshParam%Area(nel))/MeshParam%Area(nel) If(ae.lt.small1) Then nnel=nel + ! Element find, xt and yt position defined. Go to find zt positon (Go to 400). Exit loop4 EndIf - !Next intersecting edge + !The particle is out the element, find next intersecting edge: Do j=1,i34 + + !Get the nodes for each edge: jd1=MeshParam%Quadri(MeshParam%EdgeDef(1,j),nel) + 1 !nm(nel,nx(i34(nel),j,1)) jd2=MeshParam%Quadri(MeshParam%EdgeDef(2,j),nel) + 1 !nm(nel,nx(i34(nel),j,2)) - if(jd1.eq.md1.and.jd2.eq.md2.or.jd2.eq.md1.and.jd1.eq.md2) cycle + + if(jd1.eq.md1.and.jd2.eq.md2.or.jd2.eq.md1.and.jd1.eq.md2) cycle !iEdge shared with previous element that was checked, skip to next iEdge. + + !Check path intersection: call intersect2(xcg,xt,MeshParam%xNode(jd1),MeshParam%xNode(jd2),ycg,yt,MeshParam%yNode(jd1),MeshParam%yNode(jd2),iflag,xin,yin,tt1,tt2) + + !If has a intersection point PI(xin, yin), the Edge i is crosses in particle trajectory: if(iflag.eq.1) then - nel_j=j !next front edge + nel_j=j !next front edge + + if(sqrt((x0-xin)**0.5+(y0-yin)**0.5)>small1 .and. abs(sqrt(uuint**0.5+vvint**0.5))>0 )then + dtin = sqrt((x0-xin)**0.5+(y0-yin)**0.5)/sqrt(uuint**0.5+vvint**0.5) + endif + cycle loop4 endif + EndDo !j !print*,'Failed to find next edge',lit,xin,yin,xt,yt,nel,& !&md1,md2,idt @@ -654,8 +863,28 @@ Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& EndDo loop4 400 Continue - - zt = dmin1(dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel)),HydroParam%Ze(HydroParam%ElCapitalM(nnel)+1,nnel)) + !The element (nnel) was found, now we are looking for the iLayer (jlev) that contains Pt(xt,yt,zt). + !First zt is set as the maximum value between Ze (smallm)lower layer and zt, this ensure that the particle no set in position + !under the bounds of vertical grid discretization. In cases which the zt is set as Ze(smallm) layers, this implies that the + !particle reach to bottom. + !Next zt is set as the minimum between it and Ze(CapitalM+1) upper layer, this ensure that particle not set in a position + !above the bounds of vertical grid discretization. + !zt is set as the minimum value between max[zt calculed and Lower Layer Level in the Element (nnel)] and Upper Layer in Element(nnel) + !We want find the iLayer that includes this value, not specfic point. + + !If (nnel /= nel0) Then + ! !zt = dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nel0),nel0)+sum(HydroParam%DZsi(:,nel0))) + ! zt = dmax1(zt,HydroParam%hb(nel0)) + ! !If (zt < HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel) - HydroParam%hb(nnel) ) then + ! If (zt < HydroParam%hb(nnel) ) then + ! nnel = nel0 + ! xt = MeshParam%EdgeBary(1,MeshParam%Edge(nel_j,nel0)) + ! yt = MeshParam%EdgeBary(2,MeshParam%Edge(nel_j,nel0)) + ! EndIf + !EndIf + + !zt = dmin1(dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel)+sum(HydroParam%DZsi(:,nnel))),HydroParam%Ze(HydroParam%ElCapitalM(nnel)+1,nnel)) + zt = dmin1(dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel)+sum(HydroParam%DZsi(:,nnel))),HydroParam%eta(nnel)) Do k = HydroParam%ElSmallm(nnel), HydroParam%ElCapitalM(nnel) If (zt.gt.HydroParam%Ze(k,nnel).and.zt.le.HydroParam%Ze(k+1,nnel)) Then jlev = k @@ -673,7 +902,7 @@ Subroutine ComputeFW(MeshParam,HydroParam,dt) ! Based on: ! [1] Wang,B.; Zhao,G.; Fringer,O.B. Reconstruction of vector fields for semi-Lagrangian advection on unstructured, staggered grids. ! Ocean Modelling, 40, p. 52-71, 2011. - ! [2] Zhang, Y.; Baptista, A.M. SELFE: A semi-implicit Eulerian–Lagrangian finite-element model for cross-scale ocean circulation. + ! [2] Zhang, Y.; Baptista, A.M. SELFE: A semi-implicit Eulerian�Lagrangian finite-element model for cross-scale ocean circulation. ! Ocean Modelling, 21, p. 71-96, 2008. ! [3] Fringer, O.B.; Gerritsen, M.; Street, R.L. An unstructured-grid, finite-volume, nonhydrostatic, parallel coastal ocean simulator. ! Ocean Modelling, 14, p. 139-173, 2006. @@ -702,7 +931,7 @@ Subroutine ComputeFW(MeshParam,HydroParam,dt) !Use Param, Only: Pcri, dt, Theta Implicit None Integer:: iElem,iLayer,jlev, jjlev,l,r,nnel,iNode,j,f,FuFw_flag, TrajectoryFlag, ndels, iEdge, Face - Real::x0,y0,z0,xt,yt,zt,uuint,vvint,wwint,wdown,wup,vmag,dtb + Real:: x0,y0,z0,xt,yt,zt,uuint,vvint,wwint,hhint,wdown,wup,vmag,dtb Real:: NearZero = 1e-10 Real:: dt type(MeshGridParam) :: MeshParam @@ -760,13 +989,13 @@ Subroutine ComputeFW(MeshParam,HydroParam,dt) dtb = MinVal(MeshParam%InCircle)/vmag ! ( InCircle(lElem)/Sqrt( Veloc(1)**2. + Veloc(2)**2. ), InCircle(r)/Sqrt( Veloc(1)**2. + Veloc(2)**2. ) ) ndels = Max(Floor(dt/dtb),HydroParam%NFUT) dtb = dt/ndels !sub-step in backtracking - Else If ( TrajectoryFlag == 1 ) Then ! User Defined + Else If ( TrajectoryFlag == 1 ) Then ! User Defined sub-steps numbers ndels = HydroParam%NFUT dtb = dt/ndels !sub-step in backtracking EndIf FuFw_flag = 1 - Call btrack(ndels,dtb,uuint,vvint,wwint,& - &x0,y0,z0,xt,yt,zt,nnel,jlev,id0,HydroParam,MeshParam,FuFw_flag) + Call btrack(ndels,dtb,dt,uuint,vvint,wwint,hhint,& + &x0,y0,z0,xt,yt,zt,nnel,jlev,id0,HydroParam,MeshParam,FuFw_flag, iLayer, iEdge) HydroParam%Fw(iLayer,iElem) = wwint @@ -1105,7 +1334,10 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN if (yp>=y0) then !North side a = dx/abs(xxN(1,1)-xxN(1,2)) b = dy/abs(yyN(1,1)-yyN(1,4)) - d = dz/abs(zzN(1,1)-zzN(2,1)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) @@ -1113,6 +1345,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,4)) b = dy/abs(yyN(1,1)-yyN(1,2)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) @@ -1122,6 +1357,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,4)) b = dy/abs(yyN(1,1)-yyN(1,2)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) @@ -1129,6 +1367,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,2)) b = dy/abs(yyN(1,1)-yyN(1,4)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) @@ -1138,6 +1379,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,2)) b = dy/abs(yyN(1,1)-yyN(1,4)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) @@ -1145,6 +1389,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,4)) b = dy/abs(yyN(1,1)-yyN(1,2)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) @@ -1154,6 +1401,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,4)) b = dy/abs(yyN(1,1)-yyN(1,2)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) @@ -1161,6 +1411,9 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN a = dx/abs(xxN(1,1)-xxN(1,2)) b = dy/abs(yyN(1,1)-yyN(1,4)) d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) @@ -1168,33 +1421,45 @@ Subroutine iBilinear2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN endif else if (xp<=x0.and.yp=y0) then !left North side - a = dx/abs(xxN(1,1)-xxN(1,4)) - b = dy/abs(yyN(1,1)-yyN(1,2)) - d = dz/abs(zzN(1,1)-zzN(2,1)) - uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) - vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) - wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) + a = dx/abs(xxN(1,1)-xxN(1,4)) + b = dy/abs(yyN(1,1)-yyN(1,2)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) elseif (xp>x0.and.ypx0.and.yp>=y0) then !Right North side - a = dx/abs(xxN(1,1)-xxN(1,2)) - b = dy/abs(yyN(1,1)-yyN(1,4)) - d = dz/abs(zzN(1,1)-zzN(2,1)) - uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) - vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) - wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) + a = dx/abs(xxN(1,1)-xxN(1,2)) + b = dy/abs(yyN(1,1)-yyN(1,4)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + if(abs(zzN(1,1)-zzN(2,1)) == 0.d0) then + d = 0.d0 + endif + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) endif endif @@ -1214,7 +1479,8 @@ End Function signa !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - Subroutine FuVelocities2(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, nnel,jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) + + Subroutine FuVelocities3(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, nnel,jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) Use MeshVars !, Only: Quadri,EdgeDef,xNode,yNode,Area,Edge,EdgeNodes,EdgeBary,Left,Right Use Hydrodynamic !, Only: Smallm,ElSmallm,ElCapitalM,CapitalM,Z,DZj,Ze,DZi,uNode,uxy,Ze,DZi,w @@ -1299,7 +1565,7 @@ Subroutine FuVelocities2(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, nnel,jl Nodes(1:4)= (/ n1, n2, n3, n4 /) endif if (NodeFlag == 1) then !n1 and n2 = Face; n3 and n4 = Nodes; - If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then !2D/ 1 Layer lev=jlev uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) @@ -1320,15 +1586,15 @@ Subroutine FuVelocities2(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, nnel,jl uuNode(2,4)=HydroParam%uNode(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uNode(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%uNode(lev,3,Nodes(4)) lev=jlev endif - xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=HydroParam%Zb(jlev,nnel) - xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Zb(jlev,nnel) - xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Zb(jlev,nnel) - xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=HydroParam%Zb(jlev,nnel) + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=HydroParam%Zb(jlev,nnel) + HydroParam%hb(nnel)/2 + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Zb(jlev,nnel) + HydroParam%hb(nnel)/2 + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Zb(jlev,nnel) + HydroParam%hb(nnel)/2 + xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=HydroParam%Zb(jlev,nnel) + HydroParam%hb(nnel)/2 if (zt=z0) then !up - lev=jlev+1 - else !(zt=z0) then !up - uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) - uuNode(2,2)=HydroParam%ug(Nodes(2),lev); vvNode(2,2)=HydroParam%vg(Nodes(2),lev); wwNode(2,2)=HydroParam%wg(Nodes(2),lev) - uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) - uuNode(2,4)=HydroParam%uNode(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uNode(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%uNode(lev,3,Nodes(4)) - else !down - uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) - uuNode(2,2)=HydroParam%uxy(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(lev,Nodes(2)) - uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) - uuNode(2,4)=HydroParam%ubv(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%ubv(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%ubv(lev,3,Nodes(4)) - endif - xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) - xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%Z(jlev,Nodes(2))+HydroParam%Z(jlev+1,Nodes(2))) - xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) - xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%peta(Nodes(4))+HydroParam%Ze(jlev,nnel)) - if (zt>=z0) then !up - xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) - xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Z(lev,Nodes(2)) - xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) - xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%peta(Nodes(4)) - else !down - xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) - xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) - xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) - xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) - endif + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,2)=HydroParam%ug(Nodes(2),lev); vvNode(2,2)=HydroParam%vg(Nodes(2),lev); wwNode(2,2)=HydroParam%wg(Nodes(2),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,4)=HydroParam%uNode(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uNode(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%uNode(lev,3,Nodes(4)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,2)=HydroParam%uxy(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(lev,Nodes(2)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,4)=HydroParam%ubv(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%ubv(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%ubv(lev,3,Nodes(4)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1)) + HydroParam%hj(Nodes(1)) + HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%Z(jlev,Nodes(2)) + HydroParam%hj(Nodes(2)) + HydroParam%Z(jlev+1,Nodes(2))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%peta(Nodes(4)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Z(lev,Nodes(1)) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2) = HydroParam%Z(lev,Nodes(2)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%peta(Nodes(3)) + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4) = HydroParam%peta(Nodes(4)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + endif - elseif (jlev==HydroParam%ElSmallm(nnel)) then - if (zt>=z0) then !up - lev=jlev+1 - else !(zt=z0) Then !up + lev=jlev+1 + Else !(zt=z0) then !up - lev=jlev+1 - else !(zt=z0) Then !up + lev=jlev+1 + Else !(zt n1 and n4 = Face; n2 and n3 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then !2D Case/ 1 Layer + lev=jlev + + uuNode(1,1) = HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1) = HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1) = HydroParam%wfc(jlev,Nodes(1)) + uuNode(1,4) = HydroParam%uxy(jlev,1,Nodes(4)); vvNode(1,4) = HydroParam%uxy(jlev,2,Nodes(4)); wwNode(1,4) = HydroParam%wfc(jlev,Nodes(4)) + uuNode(1,3) = HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3) = HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3) = HydroParam%ubv(jlev,3,Nodes(3)) + uuNode(1,2) = HydroParam%ubv(jlev,1,Nodes(2)); vvNode(1,2) = HydroParam%ubv(jlev,2,Nodes(2)); wwNode(1,2) = HydroParam%ubv(jlev,3,Nodes(2)) + If (zt>=z0) Then !up + lev=jlev+1 + uuNode(2,1) = HydroParam%ug(Nodes(1),lev); vvNode(2,1) = HydroParam%vg(Nodes(1),lev); wwNode(2,1) = HydroParam%wg(Nodes(1),lev) + uuNode(2,4) = HydroParam%ug(Nodes(4),lev); vvNode(2,4) = HydroParam%vg(Nodes(4),lev); wwNode(2,4) = HydroParam%wg(Nodes(4),lev) + uuNode(2,3) = HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3) = HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3) = HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2) = HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2) = HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2) = HydroParam%uNode(lev,3,Nodes(2)) + lev=jlev + Else !down + lev=jlev + uuNode(2,1) = HydroParam%ug(Nodes(1),lev); vvNode(2,1) = HydroParam%vg(Nodes(1),lev); wwNode(2,1) = HydroParam%wg(Nodes(1),lev) + uuNode(2,4) = HydroParam%ug(Nodes(4),lev); vvNode(2,4) = HydroParam%vg(Nodes(4),lev); wwNode(2,4) = HydroParam%wg(Nodes(4),lev) + uuNode(2,3) = HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3) = HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3) = HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2) = HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2) = HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2) = HydroParam%uNode(lev,3,Nodes(2)) + EndIf + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1)) + HydroParam%hj(Nodes(1)) + HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4)) + HydroParam%hj(Nodes(4)) + HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + If (zt>=z0) then !up + lev=jlev+1 + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%peta(Nodes(2)) + lev=jlev + Else !down + lev=jlev + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + EndIf + Else + if (jlev==HydroParam%ElCapitalM(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,4)=HydroParam%uxy(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(lev,Nodes(4)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%ubv(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%ubv(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%ubv(lev,3,Nodes(2)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1) = 0.5d0*(HydroParam%Z(jlev,Nodes(1)) + HydroParam%hj(Nodes(1)) + HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4) = 0.5d0*(HydroParam%Z(jlev,Nodes(4)) + HydroParam%hj(Nodes(4)) + HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3) = 0.5d0*(HydroParam%peta(Nodes(3)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2) = 0.5d0*(HydroParam%peta(Nodes(2)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%peta(Nodes(2)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + endif + elseif (jlev==HydroParam%ElSmallm(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + lev=jlev+1 + else !(zt=x0) then !Right side + n1=F1 + n2=F3 + n3=MeshParam%Quadri(4,nnel) + 1 + n4=MeshParam%Quadri(1,nnel) + 1 + NodeFlag = 1 + else !left side + n1=F1 + n2=MeshParam%Quadri(2,nnel) + 1 + n3=MeshParam%Quadri(3,nnel) + 1 + n4=F3 + NodeFlag = 2 endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + elseif (id0==F2) then + if (yt>=y0) then !North side + n1=F2 + n2=F4 + n3=MeshParam%Quadri(1,nnel) + 1 + n4=MeshParam%Quadri(2,nnel) + 1 + NodeFlag = 1 + else !South side + n1=F2 + n2=MeshParam%Quadri(3,nnel) + 1 + n3=MeshParam%Quadri(4,nnel) + 1 + n4=F4 + NodeFlag = 2 endif - else !NodeFlag == 2 -> n1 and n4 = Face; n2 and n3 = Nodes; - If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then + Nodes(1:4)= (/ n1, n2, n3, n4 /) + elseif (id0==F3) then + if (xt>=x0) then !Right side + n1=F3 + n2=MeshParam%Quadri(4,nnel) + 1 + n3=MeshParam%Quadri(1,nnel) + 1 + n4=F1 + NodeFlag = 2 + else !left side + n1=F3 + n2=F1 + n3=MeshParam%Quadri(2,nnel) + 1 + n4=MeshParam%Quadri(3,nnel) + 1 + NodeFlag = 1 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + else !(id0==F4) + if (yt>=y0) then !North side + n1=F4 + n2=MeshParam%Quadri(1,nnel) + 1 + n3=MeshParam%Quadri(2,nnel) + 1 + n4=F2 + NodeFlag = 2 + else !South side + n1=F4 + n2=F2 + n3=MeshParam%Quadri(3,nnel) + 1 + n4=MeshParam%Quadri(4,nnel) + 1 + NodeFlag = 1 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + endif + if (NodeFlag == 1) then !n1 and n2 = Face; n3 and n4 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then lev=jlev - + uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) - uuNode(1,4)=HydroParam%uxy(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%uxy(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%wfc(jlev,Nodes(4)) + uuNode(1,2)=HydroParam%uxy(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%uxy(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%wfc(jlev,Nodes(2)) uuNode(1,3)=HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%ubv(jlev,3,Nodes(3)) - uuNode(1,2)=HydroParam%ubv(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%ubv(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%ubv(jlev,3,Nodes(2)) - if (zt>=z0) then !up + uuNode(1,4)=HydroParam%ubv(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%ubv(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%ubv(jlev,3,Nodes(4)) + if (zt=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Ze(lev,nnel) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Ze(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Ze(lev,nnel) + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%Ze(lev,nnel) + else !Up lev=jlev+1 xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) - xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Z(lev,Nodes(4)) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Z(lev,Nodes(2)) xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) - xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%peta(Nodes(2)) - lev=jlev - else !down + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%peta(Nodes(4)) lev=jlev - xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Ze(lev,nnel) - xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Ze(lev,nnel) - xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Ze(lev,nnel) - xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%Ze(lev,nnel) - endif + endif else - if (jlev==HydroParam%ElCapitalM(nnel)) then + if (zt>=z0) then !up lev=jlev+1 else !(zt=z0) then !up uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) - uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,2)=HydroParam%ug(Nodes(2),lev); vvNode(2,2)=HydroParam%vg(Nodes(2),lev); wwNode(2,2)=HydroParam%wg(Nodes(2),lev) uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) - uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + uuNode(2,4)=HydroParam%uNode(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uNode(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%uNode(lev,3,Nodes(4)) else !down uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) - uuNode(2,4)=HydroParam%uxy(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(lev,Nodes(4)) + uuNode(2,2)=HydroParam%uxy(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(lev,Nodes(2)) uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) - uuNode(2,2)=HydroParam%ubv(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%ubv(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%ubv(lev,3,Nodes(2)) + uuNode(2,4)=HydroParam%ubv(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%ubv(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%ubv(lev,3,Nodes(4)) endif xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) - xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4))+HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%Z(jlev,Nodes(2))+HydroParam%Z(jlev+1,Nodes(2))) xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) - xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2))+HydroParam%Ze(jlev,nnel)) + xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%peta(Nodes(4))+HydroParam%Ze(jlev,nnel)) if (zt>=z0) then !up xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) - xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Z(lev,Nodes(4)) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Z(lev,Nodes(2)) xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) - xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%peta(Nodes(2)) - else !down - xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) - xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) - xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) - xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) - endif + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%peta(Nodes(4)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) + endif + elseif (jlev==HydroParam%ElSmallm(nnel)) then if (zt>=z0) then !up lev=jlev+1 @@ -1540,57 +2052,213 @@ Subroutine FuVelocities2(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, nnel,jl lev=jlev endif uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) - uuNode(1,4)=HydroParam%uxy(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%uxy(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%wfc(jlev,Nodes(4)) + uuNode(1,2)=HydroParam%uxy(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%uxy(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%wfc(jlev,Nodes(2)) uuNode(1,3)=HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%ubv(jlev,3,Nodes(3)) - uuNode(1,2)=HydroParam%ubv(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%ubv(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%ubv(jlev,3,Nodes(2)) + uuNode(1,4)=HydroParam%ubv(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%ubv(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%ubv(jlev,3,Nodes(4)) if (zt=z0) then !up lev=jlev+1 else !(zt n1 and n4 = Face; n2 and n3 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then + lev=jlev + + uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) + uuNode(1,4)=HydroParam%uxy(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%uxy(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%wfc(jlev,Nodes(4)) + uuNode(1,3)=HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%ubv(jlev,3,Nodes(3)) + uuNode(1,2)=HydroParam%ubv(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%ubv(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%ubv(jlev,3,Nodes(2)) + if (zt>=z0) then !up + lev=jlev+1 + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + lev=jlev + else !down + lev=jlev + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4))+HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2))+HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + lev=jlev+1 + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%peta(Nodes(2)) + lev=jlev + else !down + lev=jlev + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Ze(lev,nnel) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Ze(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Ze(lev,nnel) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%Ze(lev,nnel) + endif + else + + if (jlev==HydroParam%ElCapitalM(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,4)=HydroParam%uxy(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(lev,Nodes(4)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%ubv(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%ubv(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%ubv(lev,3,Nodes(2)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4))+HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2))+HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%peta(Nodes(2)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) + endif + elseif (jlev==HydroParam%ElSmallm(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + lev=jlev+1 + else !(zt= Small ) Then + nElem = n1Elem + EndIf + + Return + End Subroutine pointInElem + + + Subroutine ELMConservative(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, uuint, vvint, wwint, xt, yt, zt, dt, HydroParam, MeshParam) + + Use MeshVars !, Only: + Use Hydrodynamic ! Only: + + Implicit none + + Real :: xt, yt, zt, dt + Real, intent(inout) :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + Real :: hNode(3,9), hhBtrack, uuBtrack, vvBtrack, wwBtrack + Real, intent(inout) :: uuint, vvint, wwint + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + !H(kLayer, iNode) in nodes: + hNode(:,1) = zzNode(3,1) - zzNode(1,1); hnode(:,4) = zzNode(3,4) - zzNode(1,4); hnode(:,7) = zzNode(3,7) - zzNode(1,7) + hnode(:,2) = zzNode(3,2) - zzNode(1,2); hnode(:,5) = zzNode(3,5) - zzNode(1,5); hnode(:,8) = zzNode(3,8) - zzNode(1,8) + hnode(:,3) = zzNode(3,3) - zzNode(1,3); hnode(:,6) = zzNode(3,6) - zzNode(1,6); hnode(:,9) = zzNode(3,9) - zzNode(1,9) + !hNode(:,1) = zzNode(3,1); hnode(:,4) = zzNode(3,4); hnode(:,7) = zzNode(3,7) + !hnode(:,2) = zzNode(3,2); hnode(:,5) = zzNode(3,5); hnode(:,8) = zzNode(3,8) + !hnode(:,3) = zzNode(3,3); hnode(:,6) = zzNode(3,6); hnode(:,9) = zzNode(3,9) + + uuNode = uuNode*hNode; vvNode = vvNode*hNode; wwNode = wwNode*hNode + ! Interpolate momentum in Pt: + Call iquadratic (uuint, vvint, wwint, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) + ! Interpolate H in Pt: + Call iquadratic (hhBtrack, hhBtrack, hhBtrack, hNode(:,:), hNode(:,:), hNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt, zt) + + uuint = uuint/hhBtrack + vvint = vvint/hhBtrack + wwint = wwint/hhBtrack + + return + End Subroutine ELMConservative + + Subroutine iQuadraticNodes(uuNode, vvNode, wwNode, uuNodet, vvNodet, wwNodet, xxNode, yyNode, zzNode, bbElem, bbLayer, HydroParam, MeshParam) + + Use MeshVars !, Only: + Use Hydrodynamic ! Only: + + Implicit none + + Integer, intent(in) :: bbElem, bbLayer + Real, intent(inout) :: uuNode(3,9), vvNode(3,9), wwNode(3,9), uuNodet(3,9), vvNodet(3,9), wwNodet(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + Integer :: Nodes(9) + Real:: NearZero = 1e-10 + Integer :: n1, n2, n3, n4, n5, n6, n7, n8, n9 + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + !iQuadratic Interpolation Nodes in bbLayer from bbElem + ! For nodes positions in the vector, the Standard is this: + ! n6 + ! n3 .--.--. n9 + ! | | + ! n2 . . . n8 + ! | n5 | + ! n1 .--.--. n7 + ! n4 + n1 = MeshParam%Quadri(3,bbElem) + 1 + n2 = MeshParam%Edge(2,bbElem) + n3 = MeshParam%Quadri(2,bbElem) + 1 + n4 = MeshParam%Edge(3,bbElem) + n5 = bbElem + n6 = MeshParam%Edge(1,bbElem) + n7 = MeshParam%Quadri(4,bbElem) + 1 + n8 = MeshParam%Edge(4,bbElem) + n9 = MeshParam%Quadri(1,bbElem) + 1 + Nodes(1:9)= (/n1, n2, n3, n4, n5, n6, n7, n8, n9 /) + ! Velocities by vertical section and by layers, in bottom to top (k-1/2 to k + 1/2). See Figure 3 in [2]): + ! Vertical 1 = West Edge + ! uuNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + uuNode(1,1)=HydroParam%uNode(bbLayer,1,Nodes(1)); vvNode(1,1)=HydroParam%uNode(bbLayer,2,Nodes(1)); wwNode(1,1)=HydroParam%uNode(bbLayer,3,Nodes(1)) + uuNode(1,2)=HydroParam%ug(Nodes(2),bbLayer); vvNode(1,2)=HydroParam%vg(Nodes(2),bbLayer); wwNode(1,2)=HydroParam%wg(Nodes(2),bbLayer) + uuNode(1,3)=HydroParam%uNode(bbLayer,1,Nodes(3)); vvNode(1,3)=HydroParam%uNode(bbLayer,2,Nodes(3)); wwNode(1,3)=HydroParam%uNode(bbLayer,3,Nodes(3)) + uuNode(2,1)=HydroParam%ubV(bbLayer,1,Nodes(1)); vvNode(2,1)=HydroParam%ubV(bbLayer,2,Nodes(1)); wwNode(2,1)=HydroParam%ubV(bbLayer,3,Nodes(1)) + uuNode(2,2)=HydroParam%uxy(bbLayer,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(bbLayer,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(bbLayer,Nodes(2)) + uuNode(2,3)=HydroParam%ubV(bbLayer,1,Nodes(3)); vvNode(2,3)=HydroParam%ubV(bbLayer,2,Nodes(3)); wwNode(2,3)=HydroParam%ubV(bbLayer,3,Nodes(3)) + uuNode(3,1)=HydroParam%uNode(bbLayer+1,1,Nodes(1)); vvNode(3,1)=HydroParam%uNode(bbLayer+1,2,Nodes(1)); wwNode(3,1)=HydroParam%uNode(bbLayer+1,3,Nodes(1)) + uuNode(3,2)=HydroParam%ug(Nodes(2),bbLayer+1); vvNode(3,2)=HydroParam%vg(Nodes(2),bbLayer+1); wwNode(3,2)=HydroParam%wg(Nodes(2),bbLayer+1) + uuNode(3,3)=HydroParam%uNode(bbLayer+1,1,Nodes(3)); vvNode(3,3)=HydroParam%uNode(bbLayer+1,2,Nodes(3)); wwNode(3,3)=HydroParam%uNode(bbLayer+1,3,Nodes(3)) + ! Vertical 2 = Cell Centered Section + uuNode(1,4)=HydroParam%ug(Nodes(4),bbLayer); vvNode(1,4)=HydroParam%vg(Nodes(4),bbLayer); wwNode(1,4)=HydroParam%wg(Nodes(4),bbLayer) + uuNode(1,5)=HydroParam%uxyL(bbLayer,1,Nodes(5)); vvNode(1,5)=HydroParam%uxyL(bbLayer,2,Nodes(5)); wwNode(1,5)=HydroParam%w(bbLayer,Nodes(5)) + uuNode(1,6)=HydroParam%ug(Nodes(6),bbLayer); vvNode(1,6)=HydroParam%vg(Nodes(6),bbLayer); wwNode(1,6)=HydroParam%wg(Nodes(6),bbLayer) + uuNode(2,4)=HydroParam%uxy(bbLayer,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(bbLayer,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(bbLayer,Nodes(4)) + uuNode(2,5)=HydroParam%ub(bbLayer,1,Nodes(5)); vvNode(2,5)=HydroParam%ub(bbLayer,2,Nodes(5)); wwNode(2,5)=HydroParam%ub(bbLayer,3,Nodes(5)) + uuNode(2,6)=HydroParam%uxy(bbLayer,1,Nodes(6)); vvNode(2,6)=HydroParam%uxy(bbLayer,2,Nodes(6)); wwNode(2,6)=HydroParam%wfc(bbLayer,Nodes(6)) + uuNode(3,4)=HydroParam%ug(Nodes(4),bbLayer+1); vvNode(3,4)=HydroParam%vg(Nodes(4),bbLayer+1); wwNode(3,4)=HydroParam%wg(Nodes(4),bbLayer+1) + uuNode(3,5)=HydroParam%uxyL(bbLayer+1,1,Nodes(5)); vvNode(3,5)=HydroParam%uxyL(bbLayer+1,2,Nodes(5)); wwNode(3,5)=HydroParam%w(bbLayer+1,Nodes(5)) + uuNode(3,6)=HydroParam%ug(Nodes(6),bbLayer+1); vvNode(3,6)=HydroParam%vg(Nodes(6),bbLayer+1); wwNode(3,6)=HydroParam%wg(Nodes(6),bbLayer+1) + ! Vertical 3 = East Edge + uuNode(1,7)=HydroParam%uNode(bbLayer,1,Nodes(7)); vvNode(1,7)=HydroParam%uNode(bbLayer,2,Nodes(7)); wwNode(1,7)=HydroParam%uNode(bbLayer,3,Nodes(7)) + uuNode(1,8)=HydroParam%ug(Nodes(8),bbLayer); vvNode(1,8)=HydroParam%vg(Nodes(8),bbLayer); wwNode(1,8)=HydroParam%wg(Nodes(8),bbLayer) + uuNode(1,9)=HydroParam%uNode(bbLayer,1,Nodes(9)); vvNode(1,9)=HydroParam%uNode(bbLayer,2,Nodes(9)); wwNode(1,9)=HydroParam%uNode(bbLayer,3,Nodes(9)) + uuNode(2,7)=HydroParam%ubV(bbLayer,1,Nodes(7)); vvNode(2,7)=HydroParam%ubV(bbLayer,2,Nodes(7)); wwNode(2,7)=HydroParam%ubV(bbLayer,3,Nodes(7)) + uuNode(2,8)=HydroParam%uxy(bbLayer,1,Nodes(8)); vvNode(2,8)=HydroParam%uxy(bbLayer,2,Nodes(8)); wwNode(2,8)=HydroParam%wfc(bbLayer,Nodes(8)) + uuNode(2,9)=HydroParam%ubV(bbLayer,1,Nodes(9)); vvNode(2,9)=HydroParam%ubV(bbLayer,2,Nodes(9)); wwNode(2,9)=HydroParam%ubV(bbLayer,3,Nodes(9)) + uuNode(3,7)=HydroParam%uNode(bbLayer+1,1,Nodes(7)); vvNode(3,7)=HydroParam%uNode(bbLayer+1,2,Nodes(7)); wwNode(3,7)=HydroParam%uNode(bbLayer+1,3,Nodes(7)) + uuNode(3,8)=HydroParam%ug(Nodes(8),bbLayer+1); vvNode(3,8)=HydroParam%vg(Nodes(8),bbLayer+1); wwNode(3,8)=HydroParam%wg(Nodes(8),bbLayer+1) + uuNode(3,9)=HydroParam%uNode(bbLayer+1,1,Nodes(9)); vvNode(3,9)=HydroParam%uNode(bbLayer+1,2,Nodes(9)); wwNode(3,9)=HydroParam%uNode(bbLayer+1,3,Nodes(9)) + + ! uuNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + uuNodet(1,1)=HydroParam%uNodet(bbLayer,1,Nodes(1)); vvNodet(1,1)=HydroParam%uNodet(bbLayer,2,Nodes(1)); wwNodet(1,1)=HydroParam%uNodet(bbLayer,3,Nodes(1)) + uuNodet(1,2)=HydroParam%ugt(Nodes(2),bbLayer); vvNodet(1,2)=HydroParam%vgt(Nodes(2),bbLayer); wwNodet(1,2)=HydroParam%wgt(Nodes(2),bbLayer) + uuNodet(1,3)=HydroParam%uNodet(bbLayer,1,Nodes(3)); vvNodet(1,3)=HydroParam%uNodet(bbLayer,2,Nodes(3)); wwNodet(1,3)=HydroParam%uNodet(bbLayer,3,Nodes(3)) + uuNodet(2,1)=HydroParam%ubVt(bbLayer,1,Nodes(1)); vvNodet(2,1)=HydroParam%ubVt(bbLayer,2,Nodes(1)); wwNodet(2,1)=HydroParam%ubVt(bbLayer,3,Nodes(1)) + uuNodet(2,2)=HydroParam%uxyt(bbLayer,1,Nodes(2)); vvNodet(2,2)=HydroParam%uxyt(bbLayer,2,Nodes(2)); wwNodet(2,2)=HydroParam%wfct(bbLayer,Nodes(2)) + uuNodet(2,3)=HydroParam%ubVt(bbLayer,1,Nodes(3)); vvNodet(2,3)=HydroParam%ubVt(bbLayer,2,Nodes(3)); wwNodet(2,3)=HydroParam%ubVt(bbLayer,3,Nodes(3)) + uuNodet(3,1)=HydroParam%uNodet(bbLayer+1,1,Nodes(1)); vvNodet(3,1)=HydroParam%uNodet(bbLayer+1,2,Nodes(1)); wwNodet(3,1)=HydroParam%uNodet(bbLayer+1,3,Nodes(1)) + uuNodet(3,2)=HydroParam%ugt(Nodes(2),bbLayer+1); vvNodet(3,2)=HydroParam%vgt(Nodes(2),bbLayer+1); wwNodet(3,2)=HydroParam%wgt(Nodes(2),bbLayer+1) + uuNodet(3,3)=HydroParam%uNodet(bbLayer+1,1,Nodes(3)); vvNodet(3,3)=HydroParam%uNodet(bbLayer+1,2,Nodes(3)); wwNodet(3,3)=HydroParam%uNodet(bbLayer+1,3,Nodes(3)) + ! Vertical 2 = Cell Centered Section + uuNodet(1,4)=HydroParam%ugt(Nodes(4),bbLayer); vvNodet(1,4)=HydroParam%vgt(Nodes(4),bbLayer); wwNodet(1,4)=HydroParam%wgt(Nodes(4),bbLayer) + uuNodet(1,5)=HydroParam%uxyLt(bbLayer,1,Nodes(5)); vvNodet(1,5)=HydroParam%uxyLt(bbLayer,2,Nodes(5)); wwNodet(1,5)=HydroParam%wt(bbLayer,Nodes(5)) + uuNodet(1,6)=HydroParam%ugt(Nodes(6),bbLayer); vvNodet(1,6)=HydroParam%vgt(Nodes(6),bbLayer); wwNodet(1,6)=HydroParam%wgt(Nodes(6),bbLayer) + uuNodet(2,4)=HydroParam%uxyt(bbLayer,1,Nodes(4)); vvNodet(2,4)=HydroParam%uxyt(bbLayer,2,Nodes(4)); wwNodet(2,4)=HydroParam%wfct(bbLayer,Nodes(4)) + uuNodet(2,5)=HydroParam%ubt(bbLayer,1,Nodes(5)); vvNodet(2,5)=HydroParam%ubt(bbLayer,2,Nodes(5)); wwNodet(2,5)=HydroParam%ubt(bbLayer,3,Nodes(5)) + uuNodet(2,6)=HydroParam%uxyt(bbLayer,1,Nodes(6)); vvNodet(2,6)=HydroParam%uxyt(bbLayer,2,Nodes(6)); wwNodet(2,6)=HydroParam%wfct(bbLayer,Nodes(6)) + uuNodet(3,4)=HydroParam%ugt(Nodes(4),bbLayer+1); vvNodet(3,4)=HydroParam%vgt(Nodes(4),bbLayer+1); wwNodet(3,4)=HydroParam%wgt(Nodes(4),bbLayer+1) + uuNodet(3,5)=HydroParam%uxyLt(bbLayer+1,1,Nodes(5)); vvNodet(3,5)=HydroParam%uxyLt(bbLayer+1,2,Nodes(5)); wwNodet(3,5)=HydroParam%wt(bbLayer+1,Nodes(5)) + uuNodet(3,6)=HydroParam%ugt(Nodes(6),bbLayer+1); vvNodet(3,6)=HydroParam%vgt(Nodes(6),bbLayer+1); wwNodet(3,6)=HydroParam%wgt(Nodes(6),bbLayer+1) + ! Vertical 3 = East Edge + uuNodet(1,7)=HydroParam%uNode(bbLayer,1,Nodes(7)); vvNodet(1,7)=HydroParam%uNodet(bbLayer,2,Nodes(7)); wwNodet(1,7)=HydroParam%uNodet(bbLayer,3,Nodes(7)) + uuNodet(1,8)=HydroParam%ug(Nodes(8),bbLayer); vvNodet(1,8)=HydroParam%vgt(Nodes(8),bbLayer); wwNodet(1,8)=HydroParam%wgt(Nodes(8),bbLayer) + uuNodet(1,9)=HydroParam%uNode(bbLayer,1,Nodes(9)); vvNodet(1,9)=HydroParam%uNodet(bbLayer,2,Nodes(9)); wwNodet(1,9)=HydroParam%uNodet(bbLayer,3,Nodes(9)) + uuNodet(2,7)=HydroParam%ubV(bbLayer,1,Nodes(7)); vvNodet(2,7)=HydroParam%ubVt(bbLayer,2,Nodes(7)); wwNodet(2,7)=HydroParam%ubVt(bbLayer,3,Nodes(7)) + uuNodet(2,8)=HydroParam%uxy(bbLayer,1,Nodes(8)); vvNodet(2,8)=HydroParam%uxyt(bbLayer,2,Nodes(8)); wwNodet(2,8)=HydroParam%wfct(bbLayer,Nodes(8)) + uuNodet(2,9)=HydroParam%ubV(bbLayer,1,Nodes(9)); vvNodet(2,9)=HydroParam%ubVt(bbLayer,2,Nodes(9)); wwNodet(2,9)=HydroParam%ubVt(bbLayer,3,Nodes(9)) + uuNodet(3,7)=HydroParam%uNode(bbLayer+1,1,Nodes(7)); vvNodet(3,7)=HydroParam%uNodet(bbLayer+1,2,Nodes(7)); wwNodet(3,7)=HydroParam%uNodet(bbLayer+1,3,Nodes(7)) + uuNodet(3,8)=HydroParam%ug(Nodes(8),bbLayer+1); vvNodet(3,8)=HydroParam%vgt(Nodes(8),bbLayer+1); wwNodet(3,8)=HydroParam%wgt(Nodes(8),bbLayer+1) + uuNodet(3,9)=HydroParam%uNode(bbLayer+1,1,Nodes(9)); vvNodet(3,9)=HydroParam%uNodet(bbLayer+1,2,Nodes(9)); wwNodet(3,9)=HydroParam%uNodet(bbLayer+1,3,Nodes(9)) + ! + !If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + ! !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(1)))*0.5d0 + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=Max((HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0,HydroParam%Ze(bbLayer,bbElem) + NearZero/2) + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(3)))*0.5d0 + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + ! !xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)= Max(HydroParam%Z(bbLayer+1,Nodes(2)),zzNode(2,2) + NearZero) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=Max((HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0, HydroParam%Ze(bbLayer,bbElem) + NearZero/2) + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%eta(Nodes(5)))*0.5d0 + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=Max((HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0, HydroParam%Ze(bbLayer,bbElem) + NearZero/2) + ! !xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=Max(HydroParam%Z(bbLayer+1,Nodes(4)),zzNode(2,4) + NearZero) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + ! !xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=Max(HydroParam%Z(bbLayer+1,Nodes(6)),zzNode(2,6) + NearZero) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(7)))*0.5d0 + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)= Max( (HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0, HydroParam%Ze(bbLayer,bbElem) + NearZero/2) + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(9)))*0.5d0 + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + ! !xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)= Max(HydroParam%Z(bbLayer+1,Nodes(8)),zzNode(2,8) + NearZero) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + !Else + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + !EndIf + ! + If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(1)))*0.5d0 + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=Max((HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0,HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + NearZero/2) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(3)))*0.5d0 + xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=Max(HydroParam%Z(bbLayer+1,Nodes(2)),zzNode(2,2) + NearZero) + xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=Max((HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0, HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + NearZero/2) + xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%eta(Nodes(5)))*0.5d0 + xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=Max((HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0, HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + NearZero/2) + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=Max(HydroParam%Z(bbLayer+1,Nodes(4)),zzNode(2,4) + NearZero) + xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=Max(HydroParam%Z(bbLayer+1,Nodes(6)),zzNode(2,6) + NearZero) + + xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(7)))*0.5d0 + xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=Max((HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0, HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + NearZero/2) + xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(9)))*0.5d0 + xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=Max(HydroParam%Z(bbLayer+1,Nodes(8)),zzNode(2,8) + NearZero) + xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + Else + xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + + xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + EndIf + + return + End Subroutine iQuadraticNodes + + Subroutine iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, hhBtrack, uuN, vvN, wwN, hhN, xxN, yyN, zzN, xp, yp, zp ) + !( uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) ) + + Implicit None + + Real, intent(in) :: uuN(3,9), vvN(3,9), wwN(3,9), hhN(3,9), xxN(3,9), yyN(3,9), zzN(3,9), xp, yp, zp + Real, intent(out) :: uuBtrack, vvBtrack, wwBtrack, hhBtrack + Real:: LZ(3,9), LY(3,3), LX(3), Zuu(9), Zvv(9), Zww(9), Zhh(9), Yuu(3), Yvv(3), Yww(3), Yhh(3), Xuu, Xvv, Xww, Xhh, P1, P2, resto, Uresto, Vresto, Wresto, soma + Integer:: m, iNode, iTimes, cont + + !1. Interpolatting in Z direction 9 times, one for each node. (e.g. Hodges, 2000) + !1.1. - find the Lagrange coefficient formula + !for vertical interpolations + + + Do iNode=1,9 + Do m=1,3 + if (m==1) then + P1 = ((zp-zzN(2,iNode))/(zzN(1,iNode)-zzN(2,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(1,iNode)-zzN(3,iNode))) + elseif (m==2) then + P1 = ((zp-zzN(1,iNode))/(zzN(2,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(2,iNode)-zzN(3,iNode))) + else + P1 = ((zp-zzN(1,iNode))/(zzN(m,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(2,iNode))/(zzN(m,iNode)-zzN(2,iNode))) + Endif + LZ(m,iNode)=P1*P2 + EndDo + soma = LZ(1,iNode)+LZ(2,iNode)+LZ(3,iNode) + if (isnan(P1).or.isnan(P2)) then + continue + endif + + EndDo + !1.2. - Interpolating velocties (u, v, w) to the btrack particle cota + Do iNode=1,9 + Zuu(iNode) = LZ(1,iNode)*uuN(1,iNode)+LZ(2,iNode)*uuN(2,iNode)+LZ(3,iNode)*uuN(3,iNode) + Zvv(iNode) = LZ(1,iNode)*vvN(1,iNode)+LZ(2,iNode)*vvN(2,iNode)+LZ(3,iNode)*vvN(3,iNode) + Zww(iNode) = LZ(1,iNode)*wwN(1,iNode)+LZ(2,iNode)*wwN(2,iNode)+LZ(3,iNode)*wwN(3,iNode) + Zhh(iNode) = LZ(1,iNode)*hhN(1,iNode)+LZ(2,iNode)*hhN(2,iNode)+LZ(3,iNode)*hhN(3,iNode) + EndDo + !2. Interpolate in Y direction 3 times + !2.1. - find the Lagrange coefficient formula + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Do m=1,3 + if (m==1) then + P1 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode)-yyN(1,iNode+1))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode)-yyN(1,iNode+2))) + elseif (m==2) then + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+1)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode+1)-yyN(1,iNode+2))) + else + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+2)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode+2)-yyN(1,iNode+1))) + Endif + LY(m,cont)=P1*P2 + EndDo + soma = LY(1,cont)+LY(2,cont)+LY(3,cont) + if (isnan(P1).or.isnan(P2)) then + continue + endif + EndDo + !2.2. - Interpolating velocties (u, v, w) to the btrack particle yt + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Yuu(cont) = LY(1,cont)*Zuu(iNode)+LY(2,cont)*Zuu(iNode+1)+LY(3,cont)*Zuu(iNode+2) + Yvv(cont) = LY(1,cont)*Zvv(iNode)+LY(2,cont)*Zvv(iNode+1)+LY(3,cont)*Zvv(iNode+2) + Yww(cont) = LY(1,cont)*Zww(iNode)+LY(2,cont)*Zww(iNode+1)+LY(3,cont)*Zww(iNode+2) + Yhh(cont) = LY(1,cont)*Zhh(iNode)+LY(2,cont)*Zhh(iNode+1)+LY(3,cont)*Zhh(iNode+2) + EndDo + !3. Interpolate in X direction one times + !3.1. - find the Lagrange coefficient formula + Do m=1,3 + if (m==1) then + P1 = ((xp-xxN(1,4))/(xxN(1,1)-xxN(1,4))) + P2 = ((xp-xxN(1,7))/(xxN(1,1)-xxN(1,7))) + elseif (m==2) then + P1 = ((xp-xxN(1,1))/(xxN(1,4)-xxN(1,1))) + P2 = ((xp-xxN(1,7))/(xxN(1,4)-xxN(1,7))) + else + P1 = ((xp-xxN(1,1))/(xxN(1,7)-xxN(1,1))) + P2 = ((xp-xxN(1,4))/(xxN(1,7)-xxN(1,4))) + Endif + LX(m) = P1*P2 + EndDo + soma = LX(1)+LX(2)+LX(3) + if (isnan(P1).or.isnan(P2)) then + continue + endif + !3.2. - Interpolating velocties (u, v, w) to the btrack particle xt + Xuu = Lx(1)*Yuu(1)+Lx(2)*Yuu(2)+Lx(3)*Yuu(3) + Xvv = Lx(1)*Yvv(1)+Lx(2)*Yvv(2)+Lx(3)*Yvv(3) + Xww = Lx(1)*Yww(1)+Lx(2)*Yww(2)+Lx(3)*Yww(3) + Xhh = Lx(1)*Yhh(1)+Lx(2)*Yhh(2)+Lx(3)*Yhh(3) + + !4. Setting the Btrack velocities + uuBtrack = Xuu + vvBtrack = Xvv + wwBtrack = Xww + hhBtrack = Xhh + + return + End Subroutine iQuadraticCons + + + Subroutine ELMConservative4(uuBtrack, vvBtrack, wwBtrack, uuint, vvint, wwint, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + + Use MeshVars !, Only: + Use Hydrodynamic ! Only: + + Implicit none + + Real :: xt, yt, zt, dt + Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack, uuint, vvint, wwint + Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), uuNodet(3,9), vvNodet(3,9), wwNodet(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + Integer :: rElem, uElem, dElem, lElem, nElem, ElFlag + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + Real :: fi_small = 0.0d0 + Real :: epsGrad = 10 !CAYO + Real :: rj(2,4), psi(2,4), ru, soma + Real :: Courant + + psi(:,:) = 0.0d0 + rj(:,:) = 0.0d0 + HydroParam%uArrow(iLayer,:,iEdge) = 0.d0 + Courant = 0.d0 !7 - Super-C/ 8 - Ultimate-Quickest/ 9 - Hyper-C + + If(IEdge==568) Then + continue + EndIf + + ! For nodes positions in the vector, the Standard is this: + ! + ! .----.----. + ! | n9 | + ! | x | + ! | | | + ! | n8| | + ! .----.----.----.--x-.----.----. + ! | | | | | + ! | n2| n3 | |n4 | + ! | n1 x----x-------x-x----x n5 | + ! | | | | | + ! .----.----.----.--x-.----.----. + ! | n7| | + ! | | | + ! | x | + ! | n6 | + ! .----.----. + + ! 1 - Neighbour Elements: + uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + + ! 2 - Nodes Velocities: + ! 2.1 - Velocities for node n3: + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadraticCons2(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + + uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + + + If(wwNode(2,5) + wwNode(1,5) >= 0.d0) Then + HydroParam%uArrow(iLayer,3,iEdge) = 0.5*(wwBtrack + wwNode(1,5)) + Else + HydroParam%uArrow(iLayer,3,iEdge) = 0.5*(wwBtrack + wwNode(3,5)) + EndIf + + !2.2 - Velocities for node n2: + nElem = bbElem + Call pointInElem(nElem, lElem, xt - MeshParam%dx/2, yt, MeshParam) + ! If nElem =/ lElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + If (nElem == lElem) Then + If (bbLayer > HydroParam%ElSmallms(lElem)) Then + !u(2) == u(iEdge==2,bbElem) + nElem = bbElem + uuNodeBT(2) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(2,bbElem)); vvNodeBT(2) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(2,bbElem)); wwNodeBT(2) = HydroParam%wfc(bbLayer,MeshParam%Edge(2,bbElem)); xxNodeBT(2) = xxNodeBT(3) - MeshParam%dx/2; yyNodeBT(2) = yyNodeBT(3); zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%H(MeshParam%Edge(2,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(2,bbElem))),0.d0) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !2.3 - Velocities for node n1: + If (nElem == lElem) Then + lElem = MeshParam%Right(MeshParam%Edge(2,lElem)) + Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + Else + Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + EndIf + + If (nElem == lElem) Then + If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! n1 == n2: + uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2) - MeshParam%dx/2; yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !2.4 - Velocities for node n4: + nElem = bbElem + Call pointInElem(nElem, rElem, xt + MeshParam%dx/2, yt, MeshParam) + ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + If (nElem == rElem) Then + If (bbLayer > HydroParam%ElSmallms(rElem)) Then + !u(4) == u(iEdge==4,bbElem) + nElem = bbElem + uuNodeBT(4) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(4,bbElem)); vvNodeBT(4) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(4,bbElem)); wwNodeBT(4) = HydroParam%wfc(bbLayer,MeshParam%Edge(4,bbElem)); xxNodeBT(4) = xxNodeBT(3) + MeshParam%dx/2; yyNodeBT(4) = yyNodeBT(3); zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%H(MeshParam%Edge(4,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(4,bbElem))),0.d0) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !Energy conservation x - direction: + If ((uuNodeBT(3) - uuNodeBT(1))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + If (uuNodeBT(3) + uuNodeBT(1) >= 0) Then + HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNodeBT(3) + uuNodeBT(1)) + + !rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + !Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + !rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + !rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + !Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + !rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + Else + + !2.5 - Velocities for node n5: + If (nElem == rElem) Then + rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + Else + Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + EndIf + + ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + If (nElem == rElem) Then + If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! n5 == n4: + uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNodeBT(3) + uuNodeBT(5)) + + !rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + !rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + !Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + !rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + !rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + !Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + EndIf + Else + ! Momentum Conservation x - direction: + If (uuNodeBT(3)*0.5*(zzNodeBT(2) + zzNodeBT(4)) + uuNodeBT(1)*zzNodeBT(1) >= 0 ) Then + !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + HydroParam%uArrow(iLayer,1,iEdge) = (uuNodeBT(3)*0.5*(zzNodeBT(2) + zzNodeBT(4)) + uuNodeBT(1)*zzNodeBT(1))/(zzNodeBT(4) + zzNodeBT(2)) + + !rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + !Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + !rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + !rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + !Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + !rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + Else + !2.5 - Velocities for node n5: + If (nElem == rElem) Then + rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + Else + Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + EndIf + + ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + If (nElem == rElem) Then + If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! n5 == n4: + uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(2)) + HydroParam%uArrow(iLayer,1,iEdge) = (uuNodeBT(3)*0.5*(zzNodeBT(2) + zzNodeBT(4)) + uuNodeBT(5)*zzNodeBT(5))/(zzNodeBT(4) + zzNodeBT(2)) + ! + !rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + !rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + !Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + !rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + !Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + !rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + !Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + EndIf + + EndIf + + + ! 2.6 - Velocities for node n7: + nElem = bbElem + Call pointInElem(nElem, dElem, xt, yt - MeshParam%dy/2, MeshParam) + + If (nElem == dElem) Then + If (bbLayer > HydroParam%ElSmallms(dElem)) Then + !u(7) == u(iEdge == 3, bbElem) + nElem = bbElem + uuNodeBT(7) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(3,bbElem)); vvNodeBT(7) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(3,bbElem)); wwNodeBT(7) = HydroParam%wfc(bbLayer,MeshParam%Edge(3,bbElem)); xxNodeBT(7) = xxNodeBT(3); yyNodeBT(7) = yyNodeBT(3) - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%H(MeshParam%Edge(3,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(3,bbElem))),0.d0) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !2.7 - Velocities for node n6: + If (nElem == dElem) Then + dElem = MeshParam%Right(MeshParam%Edge(3,dElem)) + Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + Else + Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + EndIf + + ! If nElem == dElem, this implies that dElem =/ 0 (condition checked in function pointInElem) + If (nElem == dElem) Then + If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! n6 == n7: + uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7) - MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + ! 2.8 - Velocities for node n8: + nElem = bbElem + Call pointInElem(nElem, uElem, xt, yt + MeshParam%dy/2, MeshParam) + ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + If (nElem == uElem) Then + If (bbLayer > HydroParam%ElSmallms(uElem)) Then + !u(8) == u(iEdge == 1, bbElem) + nElem = bbElem + uuNodeBT(8) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(1,bbElem)); vvNodeBT(8) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(1,bbElem)); wwNodeBT(8) = HydroParam%wfc(bbLayer,MeshParam%Edge(1,bbElem)); xxNodeBT(8) = xxNodeBT(3); yyNodeBT(8) = yyNodeBT(3) + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%H(MeshParam%Edge(1,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(1,bbElem))),0.d0) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !Energy conservation y-direction: + If ((vvNodeBT(3) - vvNodeBT(6))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + + If (vvNodeBT(3) + vvNodeBT(6) >= 0) Then + HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNodeBT(3) + vvNodeBT(6)) + ! + !rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + !Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + !rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + !rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + !Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + !rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + Else + + !2.9 - Velocities for node n9: + If (nElem == uElem) Then + uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + Else + Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + EndIf + + ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + If (nElem == uElem) Then + If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! n9 == n8: + uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNodeBT(3) + vvNodeBT(9)) + ! + !rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + !rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + !Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + !rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + !rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + !Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + EndIf + Else + ! Momentum Conservation y - direction: + If (vvNodeBT(3)*0.5*(zzNodeBT(8) + zzNodeBT(7)) + vvNodeBT(6)*zzNodeBT(6)>= 0) Then + !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(8) + dzNode(7)) + HydroParam%uArrow(iLayer,2,iEdge) = (vvNodeBT(3)*0.5*(zzNodeBT(8) + zzNodeBT(7)) + vvNodeBT(6)*zzNodeBT(6))/(zzNodeBT(8) + zzNodeBT(7)) + + !rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + !Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + !rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + !rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + !Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + !rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + Else + !2.9 - Velocities for node n9: + If (nElem == uElem) Then + uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + Else + Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + EndIf + + ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + If (nElem == uElem) Then + If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! n9 == n8: + uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + EndIf + + !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(7)) + HydroParam%uArrow(iLayer,2,iEdge) = (vvNodeBT(3)*0.5*(zzNodeBT(8) + zzNodeBT(7)) + vvNodeBT(9)*zzNodeBT(9))/(zzNodeBT(8) + zzNodeBT(7)) + + !rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + !rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + !Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + !rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + !Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + !rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + !Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + EndIf + EndIf + + uuint = uuNodeBT(3); vvint = vvNodeBT(3); wwint = wwNodeBT(3); + + uuBtrack = HydroParam%uArrow(iLayer,1,iEdge) + vvBtrack = HydroParam%uArrow(iLayer,2,iEdge) + wwBtrack = HydroParam%uArrow(iLayer,3,iEdge) + + return + End Subroutine ELMConservative4 + + + Subroutine iQuadraticCons2(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN, Xuu, Xvv, Xww, Yuu, Yvv, Yww, xp, yp, zp ) + !( uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) ) + + Implicit None + + Real, intent(in) :: uuN(3,9), vvN(3,9), wwN(3,9), xxN(3,9), yyN(3,9), zzN(3,9), xp, yp, zp + Real, intent(inout) :: uuBtrack, vvBtrack, wwBtrack, Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + Real :: LZ(3,9), LY(3,3), LX(3,3), bLX(3), Zuu(9), Zvv(9), Zww(9), bXuu, bXvv, bXww, P1, P2, soma + Integer:: m, iNode, iTimes, cont,idelta + + + !1. Interpolatting in Z direction 9 times, one for each node. (e.g. Hodges, 2000) + !1.1. - find the Lagrange coefficient formula + !for vertical interpolations + Do iNode=1,9 + Do m=1,3 + if (m==1) then + P1 = ((zp-zzN(2,iNode))/(zzN(1,iNode)-zzN(2,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(1,iNode)-zzN(3,iNode))) + elseif (m==2) then + P1 = ((zp-zzN(1,iNode))/(zzN(2,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(2,iNode)-zzN(3,iNode))) + else + P1 = ((zp-zzN(1,iNode))/(zzN(m,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(2,iNode))/(zzN(m,iNode)-zzN(2,iNode))) + Endif + LZ(m,iNode)=P1*P2 + EndDo + soma = LZ(1,iNode)+LZ(2,iNode)+LZ(3,iNode) + if (isnan(P1).or.isnan(P2)) then + continue + endif + + EndDo + !1.2. - Interpolating velocties (u, v, w) to the btrack particle cota + Do iNode=1,9 + Zuu(iNode) = LZ(1,iNode)*uuN(1,iNode)+LZ(2,iNode)*uuN(2,iNode)+LZ(3,iNode)*uuN(3,iNode) + Zvv(iNode) = LZ(1,iNode)*vvN(1,iNode)+LZ(2,iNode)*vvN(2,iNode)+LZ(3,iNode)*vvN(3,iNode) + Zww(iNode) = LZ(1,iNode)*wwN(1,iNode)+LZ(2,iNode)*wwN(2,iNode)+LZ(3,iNode)*wwN(3,iNode) + EndDo + !2. Interpolate in Y direction 3 times + !2.1. - find the Lagrange coefficient formula + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Do m=1,3 + if (m==1) then + P1 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode)-yyN(1,iNode+1))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode)-yyN(1,iNode+2))) + elseif (m==2) then + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+1)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode+1)-yyN(1,iNode+2))) + else + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+2)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode+2)-yyN(1,iNode+1))) + Endif + LY(m,cont)=P1*P2 + EndDo + soma = LY(1,cont)+LY(2,cont)+LY(3,cont) + if (isnan(P1).or.isnan(P2)) then + continue + endif + EndDo + !2.2. - Interpolating velocties (u, v, w) to the btrack particle yt + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Yuu(cont) = LY(1,cont)*Zuu(iNode)+LY(2,cont)*Zuu(iNode+1)+LY(3,cont)*Zuu(iNode+2) + Yvv(cont) = LY(1,cont)*Zvv(iNode)+LY(2,cont)*Zvv(iNode+1)+LY(3,cont)*Zvv(iNode+2) + Yww(cont) = LY(1,cont)*Zww(iNode)+LY(2,cont)*Zww(iNode+1)+LY(3,cont)*Zww(iNode+2) + EndDo + + !3 - Interpolating in x-direction 3 times: + !3.1 - Find Lagrange Coefficients: + idelta = 3 + cont = 0 + Do iNode=1,3 + cont=cont+1 + LX(1,cont) = (xp - xxN(1,iNode + idelta))/(xxN(1,iNode) - xxN(1,iNode + idelta))*(xp - xxN(1,iNode + 2*idelta))/( xxN(1,iNode) - xxN(1,iNode + 2*idelta)) + LX(2,cont) = (xp - xxN(1,iNode))/(xxN(1,iNode + idelta) - xxN(1,iNode))*(xp - xxN(1,iNode + 2*idelta))/(xxN(1,iNode + idelta) - xxN(1,iNode + 2*idelta)) + LX(3,cont) = (xp - xxN(1,iNode))/(xxN(1,iNode + 2*idelta) - xxN(1,iNode))*(xp - xxN(1,iNode + idelta))/(xxN(1,iNode + 2*idelta) - xxN(1,iNode + idelta)) + soma = LX(1,cont)+LX(2,cont)+LX(3,cont) + If (isnan(LX(1,cont)).or.isnan(LX(2,cont)).or.isnan(LX(2,cont))) Then + continue + EndIf + EndDo + !3.2. - Interpolating velocties (u, v, w) to the btrack particle xt + cont=0 + Do iNode=1,3 + cont=cont+1 + Xuu(cont) = LX(1,cont)*Zuu(iNode)+LX(2,cont)*Zuu(iNode+idelta)+LX(3,cont)*Zuu(iNode+2*idelta) + Xvv(cont) = LX(1,cont)*Zvv(iNode)+LX(2,cont)*Zvv(iNode+idelta)+LX(3,cont)*Zvv(iNode+2*idelta) + Xww(cont) = LX(1,cont)*Zww(iNode)+LX(2,cont)*Zww(iNode+idelta)+LX(3,cont)*Zww(iNode+2*idelta) + EndDo + + !4. Interpolate in X direction one times + !4.1. - find the Lagrange coefficient formula + Do m=1,3 + if (m==1) then + P1 = ((xp-xxN(1,4))/(xxN(1,1)-xxN(1,4))) + P2 = ((xp-xxN(1,7))/(xxN(1,1)-xxN(1,7))) + elseif (m==2) then + P1 = ((xp-xxN(1,1))/(xxN(1,4)-xxN(1,1))) + P2 = ((xp-xxN(1,7))/(xxN(1,4)-xxN(1,7))) + else + P1 = ((xp-xxN(1,1))/(xxN(1,7)-xxN(1,1))) + P2 = ((xp-xxN(1,4))/(xxN(1,7)-xxN(1,4))) + Endif + bLX(m) = P1*P2 + EndDo + soma = bLX(1)+bLX(2)+bLX(3) + if (isnan(P1).or.isnan(P2)) then + continue + endif + !4.2. - Interpolating velocties (u, v, w) to the btrack particle xt + bXuu = bLx(1)*Yuu(1)+bLx(2)*Yuu(2)+bLx(3)*Yuu(3) + bXvv = bLx(1)*Yvv(1)+bLx(2)*Yvv(2)+bLx(3)*Yvv(3) + bXww = bLx(1)*Yww(1)+bLx(2)*Yww(2)+bLx(3)*Yww(3) + + !5. Setting the Btrack velocities + uuBtrack = bXuu + vvBtrack = bXvv + wwBtrack = bXww + + Return + End Subroutine iQuadraticCons2 + + Subroutine RK4order(uuint, vvint, wwint, dtb, nnel, id0, jlev, xt, yt, zt, x0, y0, z0, dt, timeAcum, Interpolate_Flag, HydroParam, MeshParam) + + Use MeshVars + Use Hydrodynamic + + Implicit none + + Real :: uuint, vvint, wwint, xt, yt, zt, x0, y0, z0, dtb, timeAcum, dt + Integer :: nnel, jlev, id0, FuFw_flag, Interpolate_Flag, i + Real :: kx, ky, kz, xaux, yaux, zaux, rkuuint, rkvvint, rkwwint, rkuuintt, rkvvintt, rkwwintt + Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), uuNodet(3,9), vvNodet(3,9), wwNodet(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9), Weights(3) + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + FuFw_flag = 0 + Weights = (/2, 2, 1/) + + !X = X0 + dtb/6*(K1 + 2*K2 + 2*K3 + K4) + + !K1: + kx = uuint + ky = vvint + kz = wwint + + !Velocities at K1: + rkuuint = uuint + rkvvint = vvint + rkwwint = wwint + + !Kn, n = 2,3,4 : + Do i = 1,3 + !Position with Kn-1 velocity: + xaux = x0-dtb*rkuuint/Weights(i) + yaux = y0-dtb*rkvvint/Weights(i) + zaux = z0-dtb*rkwwint/Weights(i) + + !Velocity in new position: + If(Interpolate_Flag == 0) Then + Call FuVelocities3(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, xaux, yaux, zaux, x0, y0, z0, id0, HydroParam, MeshParam) + Call iBilinear2 (rkuuint, rkvvint, rkwwint, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:),xaux, yaux, zaux, x0, y0, z0, id0, nnel, FuFw_flag, MeshParam) + Call iBilinear2 (rkuuintt, rkvvintt, rkwwintt, uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:),xaux, yaux, zaux, x0, y0, z0, id0, nnel, FuFw_flag, MeshParam) + Else + Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nnel, jlev, HydroParam, MeshParam) + Call iQuadratic(rkuuint, rkvvint, rkwwint, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:),xaux, yaux, zaux) + Call iQuadratic(rkuuintt, rkvvintt, rkwwintt, uuNodet(:,:), vvNodet(:,:), wwNodet(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:),xaux, yaux, zaux) + EndIf + + !Kn: + kx = kx + Weights(i)*((1 + timeAcum/dt)*rkuuint - timeAcum/dt*rkuuintt) + ky = ky + Weights(i)*((1 + timeAcum/dt)*rkvvint - timeAcum/dt*rkvvintt) + kz = kz + Weights(i)*((1 + timeAcum/dt)*rkwwint - timeAcum/dt*rkwwintt) + + EndDo + + xt = x0 - dtb/6*kx + yt = y0 - dtb/6*ky + zt = z0 - dtb/6*kz + + return + + End Subroutine RK4order + + + Subroutine BoundaryConditionTracking(uuNode, vvNode, wwNode, uuNodet, vvNodet, wwNodet, xxNode, yyNode, zzNode, Nodes, nElem, jlev0, nel_j0, xt, yt, zt, uuint, vvint, wwint, timeAcum, dtb, dt, HydroParam, MeshParam) + + !This subroutine uses the Boundary Condition information in a Edge to extrapolate the velocities in a buffer zone (ghost element) to + !possibilite lagragian tracking through this faces. + Use MeshVars + Use Hydrodynamic + + Implicit none + + Real :: Small = 1e-5, Big = 1e9 + Integer :: firstFlag = 1, iFlag = 0 + Integer, intent(inout) :: nElem, jlev0, nel_j0, Nodes(9) + Integer :: jlev, i, nel_j, k + Real, intent(inout) :: dt, dtb, timeAcum, uuint, vvint, wwint + Real :: xt, yt, zt, xcg, ycg, xin, yin, tt1, tt2, delX, delY, tal + Real :: acumulatedArea, areaError, dxdt, dydt, x0, y0, z0 + Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), uuNodet(3,9), vvNodet(3,9), wwNodet(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + Real :: uuNodeBC(3,9), vvNodeBC(3,9), wwNodeBC(3,9), xxNodeBC(3,9), yyNodeBC(3,9), zzNodeBC(3,9) + Real :: nGhost + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + x0 = xt + y0 = yt + z0 = zt + firstFlag = 1 + nGhost = 1 + nel_j = nel_j0 + jlev = jlev0 + + Do While (timeAcum < dt) + + timeAcum = timeAcum + dtb + if (abs(uuint) <= Small) Then + uuint = Big + EndIf + + if (abs(vvint) <= Small) Then + vvint = Big + EndIf + + if (abs(wwint) <= Small) Then + wwint = Big + EndIf + + If(firstFlag == 1)Then + !If is first sub-time step in ghost element, it is necessary to create a topology of this element: + go to 700 + EndIf + + !Check if the particle keep inside previous ghost element: + acumulatedArea = dabs(signa(xxNodeBC(1,9),xxNodeBC(1,3),xt,yyNodeBC(1,9),yyNodeBC(1,3),yt)) + dabs(signa(xxNodeBC(1,3),xxNodeBC(1,1),xt,yyNodeBC(1,3),yyNodeBC(1,1),yt)) + dabs(signa(xxNodeBC(1,1),xxNodeBC(1,7),xt,yyNodeBC(1,1),yyNodeBC(1,7),yt)) + dabs(signa(xxNodeBC(1,7),xxNodeBC(1,9),xt,yyNodeBC(1,7),yyNodeBC(1,9),yt)) + areaError = dabs(acumulatedArea-MeshParam%Area(nElem))/MeshParam%Area(nElem) + If(areaError >= Small) Then + !Inside same ghost element, go to interpolation: + Go to 600 + EndIf + + !Finding side which is crossed by particle: + xcg = x0 + ycg = y0 + + i = 1 + call intersect2(xcg,xt,xxNodeBC(1,9),xxNodeBC(1,3),ycg,yt,yyNodeBC(1,9),yyNodeBC(1,3),iflag,xin,yin,tt1,tt2) + If(iflag.eq.1) Then + nel_j=i + nGhost = nGhost + 1 + Go to 600 + EndIf + + i = i+1 + call intersect2(xcg,xt,xxNodeBC(1,3),xxNodeBC(1,1),ycg,yt,yyNodeBC(1,3),yyNodeBC(1,1),iflag,xin,yin,tt1,tt2) + If(iflag.eq.1) Then + nel_j=i + nGhost = nGhost + 1 + Go to 600 + EndIf + + i = i+1 + call intersect2(xcg,xt,xxNodeBC(1,1),xxNodeBC(1,7),ycg,yt,yyNodeBC(1,1),yyNodeBC(1,7),iflag,xin,yin,tt1,tt2) + If(iflag.eq.1) Then + nel_j=i + nGhost = nGhost + 1 + Go to 600 + EndIf + + i = i+1 + call intersect2(xcg,xt,xxNodeBC(1,7),xxNodeBC(1,9),ycg,yt,yyNodeBC(1,7),yyNodeBC(1,9),iflag,xin,yin,tt1,tt2) + If(iflag.eq.1) Then + nel_j = i + nGhost = nGhost + 1 + Go to 600 + EndIf + +600 zt = dmin1(dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nElem),nElem)+HydroParam%hb(nElem)),HydroParam%Ze(HydroParam%ElCapitalM(nElem)+1,nElem)) + Do k = HydroParam%ElSmallm(nElem), HydroParam%ElCapitalM(nElem) + If (zt.gt.HydroParam%Ze(k,nElem).and.zt.le.HydroParam%Ze(k+1,nElem)) Then + jlev = k + EndIf + EndDo + + If (jlev /= jlev0) Then + jlev0 = jlev + If (jlev==HydroParam%ElCapitalM(nElem)) Then + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + zzNode(1,1)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,1)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%peta(Nodes(1)))*0.5d0; zzNode(3,1)=HydroParam%peta(Nodes(1)) + zzNode(1,2)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,2)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%Z(jlev+1,Nodes(2)))*0.5d0; zzNode(3,2)=HydroParam%Z(jlev+1,Nodes(2)) + zzNode(1,3)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,3)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%peta(Nodes(3)))*0.5d0; zzNode(3,3)=HydroParam%peta(Nodes(3)) + + zzNode(1,4)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,4)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%Z(jlev+1,Nodes(4)))*0.5d0; zzNode(3,4)=HydroParam%Z(jlev+1,Nodes(4)) + zzNode(1,5)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,5)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%eta(Nodes(5)))*0.5d0; zzNode(3,5)=HydroParam%eta(Nodes(5)) + zzNode(1,6)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,6)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%Z(jlev+1,Nodes(6)))*0.5d0; zzNode(3,6)=HydroParam%Z(jlev+1,Nodes(6)) + + zzNode(1,7)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,7)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%peta(Nodes(7)))*0.5d0; zzNode(3,7)=HydroParam%peta(Nodes(7)) + zzNode(1,8)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,8)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%Z(jlev+1,Nodes(8)) )*0.5d0; zzNode(3,8)=HydroParam%Z(jlev+1,Nodes(8)) + zzNode(1,9)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,9)=(HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)) + HydroParam%peta(Nodes(9)))*0.5d0; zzNode(3,9)=HydroParam%peta(Nodes(9)) + + Else + zzNode(1,1)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,1)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,1)=HydroParam%Ze(jlev+1,nElem) + zzNode(1,2)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,2)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,2)=HydroParam%Ze(jlev+1,nElem) + zzNode(1,3)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,3)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,3)=HydroParam%Ze(jlev+1,nElem) + + zzNode(1,4)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,4)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,4)=HydroParam%Ze(jlev+1,nElem) + zzNode(1,5)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,5)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,5)=HydroParam%Ze(jlev+1,nElem) + zzNode(1,6)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,6)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,6)=HydroParam%Ze(jlev+1,nElem) + + zzNode(1,7)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,7)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,7)=HydroParam%Ze(jlev+1,nElem) + zzNode(1,8)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,8)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,8)=HydroParam%Ze(jlev+1,nElem) + zzNode(1,9)=HydroParam%Ze(jlev,nElem) + sum(HydroParam%DZsi(:,nElem)); zzNode(2,9)=HydroParam%Zb(jlev,nElem) + sum(HydroParam%DZsi(:,nElem))/2; zzNode(3,9)=HydroParam%Ze(jlev+1,nElem) + + EndIf + + EndIf + +700 if (nel_j == 1) Then + delX = MeshParam%dx + delY = MeshParam%dy*nGhost + + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + xxNodeBC(1,1) = xxNode(1,3) + delX/2*(nGhost-1); yyNodeBC(1,1) = yyNode(1,3); zzNodeBC(1,1) = zzNode(1,3) + xxNodeBC(1,2) = xxNodeBC(1,1); yyNodeBC(1,2) = yyNodeBC(1,1) + delY/2; zzNodeBC(1,2) = zzNodeBC(1,1) + xxNodeBC(1,3) = xxNodeBC(1,1); yyNodeBC(1,3) = yyNodeBC(1,1) + delY; zzNodeBC(1,3) = zzNodeBC(1,1) + xxNodeBC(2,1) = xxNodeBC(1,1); yyNodeBC(2,1) = yyNodeBC(1,1); zzNodeBC(2,1) = zzNode(2,3) + xxNodeBC(2,2) = xxNodeBC(1,1); yyNodeBC(2,2) = yyNodeBC(1,1) + delY/2; zzNodeBC(2,2) = zzNodeBC(2,1) + xxNodeBC(2,3) = xxNodeBC(1,1); yyNodeBC(2,3) = yyNodeBC(1,1) + delY; zzNodeBC(2,3) = zzNodeBC(2,1) + xxNodeBC(3,1) = xxNodeBC(1,1); yyNodeBC(3,1) = yyNodeBC(1,1); zzNodeBC(3,1) = zzNode(3,3) + xxNodeBC(3,2) = xxNodeBC(1,1); yyNodeBC(3,2) = yyNodeBC(1,1) + delY/2; zzNodeBC(3,2) = zzNodeBC(3,1) + xxNodeBC(3,3) = xxNodeBC(1,1); yyNodeBC(3,3) = yyNodeBC(1,1) + delY; zzNodeBC(3,3) = zzNodeBC(3,1) + + xxNodeBC(1,4) = xxNode(1,6); yyNodeBC(1,4) = yyNode(1,6); zzNodeBC(1,4) = zzNode(1,6) + xxNodeBC(1,5) = xxNodeBC(1,4); yyNodeBC(1,5) = yyNodeBC(1,4) + delY/2; zzNodeBC(1,5) = zzNodeBC(1,4) + xxNodeBC(1,6) = xxNodeBC(1,4); yyNodeBC(1,6) = yyNodeBC(1,4) + delY; zzNodeBC(1,6) = zzNodeBC(1,4) + xxNodeBC(2,4) = xxNodeBC(1,4); yyNodeBC(2,4) = yyNodeBC(1,4); zzNodeBC(2,4) = zzNode(2,6) + xxNodeBC(2,5) = xxNodeBC(1,4); yyNodeBC(2,5) = yyNodeBC(1,4) + delY/2; zzNodeBC(2,5) = zzNodeBC(2,4) + xxNodeBC(2,6) = xxNodeBC(1,4); yyNodeBC(2,6) = yyNodeBC(1,4) + delY; zzNodeBC(2,6) = zzNodeBC(2,4) + xxNodeBC(3,4) = xxNodeBC(1,4); yyNodeBC(3,4) = yyNodeBC(1,4); zzNodeBC(3,4) = zzNode(3,6) + xxNodeBC(3,5) = xxNodeBC(1,4); yyNodeBC(3,5) = yyNodeBC(1,4) + delY/2; zzNodeBC(3,5) = zzNodeBC(3,4) + xxNodeBC(3,6) = xxNodeBC(1,4); yyNodeBC(3,6) = yyNodeBC(1,4) + delY; zzNodeBC(3,6) = zzNodeBC(3,4) + + xxNodeBC(1,7) = xxNode(1,9) + delX/2*(nGhost-1); yyNodeBC(1,7) = yyNode(1,9); zzNodeBC(1,7) = zzNode(1,9) + xxNodeBC(1,8) = xxNodeBC(1,7); yyNodeBC(1,8) = yyNodeBC(1,7) + delY/2; zzNodeBC(1,8) = zzNodeBC(1,7) + xxNodeBC(1,9) = xxNodeBC(1,7); yyNodeBC(1,9) = yyNodeBC(1,7) + delY; zzNodeBC(1,9) = zzNodeBC(1,7) + xxNodeBC(2,7) = xxNodeBC(1,7); yyNodeBC(2,7) = yyNodeBC(1,7); zzNodeBC(2,7) = zzNode(2,9) + xxNodeBC(2,8) = xxNodeBC(1,7); yyNodeBC(2,8) = yyNodeBC(1,7) + delY/2; zzNodeBC(2,8) = zzNodeBC(2,7) + xxNodeBC(2,9) = xxNodeBC(1,7); yyNodeBC(2,9) = yyNodeBC(1,7) + delY; zzNodeBC(2,9) = zzNodeBC(2,7) + xxNodeBC(3,7) = xxNodeBC(1,7); yyNodeBC(3,7) = yyNodeBC(1,7); zzNodeBC(3,7) = zzNode(3,9) + xxNodeBC(3,8) = xxNodeBC(1,7); yyNodeBC(3,8) = yyNodeBC(1,7) + delY/2; zzNodeBC(3,8) = zzNodeBC(3,7) + xxNodeBC(3,9) = xxNodeBC(1,7); yyNodeBC(3,9) = yyNodeBC(1,7) + delY; zzNodeBC(3,9) = zzNodeBC(3,7) + + dxdt = abs(xxNodeBC(1,1) - xxNode(1,3))/dt + uuNodeBC(1,1) = uuNode(1,3)-dxdt/uuint*(uuNode(1,3)-uuNodet(1,3)); vvNodeBC(1,1) = vvNode(1,3)-dxdt/vvint*(vvNode(1,3)-vvNodet(1,3)); wwNodeBC(1,1) = wwNode(1,3)-dxdt/wwint*(wwNode(1,3)-wwNodet(1,3)) + uuNodeBC(2,1) = uuNode(2,3)-dxdt/uuint*(uuNode(2,3)-uuNodet(2,3)); vvNodeBC(2,1) = vvNode(2,3)-dxdt/vvint*(vvNode(2,3)-vvNodet(2,3)); wwNodeBC(2,1) = wwNode(2,3)-dxdt/wwint*(wwNode(2,3)-wwNodet(2,3)) + uuNodeBC(3,1) = uuNode(3,3)-dxdt/uuint*(uuNode(3,3)-uuNodet(3,3)); vvNodeBC(3,1) = vvNode(3,3)-dxdt/vvint*(vvNode(3,3)-vvNodet(3,3)); wwNodeBC(3,1) = wwNode(3,3)-dxdt/wwint*(wwNode(2,3)-wwNodet(2,3)) + + dydt = abs(yyNodeBC(1,2) - yyNode(1,3))/dt + uuNodeBC(1,2) = uuNode(1,3)-dydt/uuint*(uuNode(1,3)-uuNodet(1,3)); vvNodeBC(1,1) = vvNode(1,3) - dydt/vvint*(vvNode(1,3)-vvNodet(1,3)); wwNodeBC(1,1) = wwNode(1,3) - dydt/wwint*(wwNode(1,3)-wwNodet(1,3)) + uuNodeBC(2,2) = uuNode(2,3)-dydt/uuint*(uuNode(2,3)-uuNodet(2,3)); vvNodeBC(2,1) = vvNode(2,3) - dydt/vvint*(vvNode(2,3)-vvNodet(2,3)); wwNodeBC(2,1) = wwNode(2,3) - dydt/wwint*(wwNode(2,3)-wwNodet(2,3)) + uuNodeBC(3,2) = uuNode(3,3)-dydt/uuint*(uuNode(3,3)-uuNodet(3,3)); vvNodeBC(3,1) = vvNode(3,3) - dydt/vvint*(vvNode(3,3)-vvNodet(3,3)); wwNodeBC(3,1) = wwNode(3,3) - dydt/wwint*(wwNode(3,3)-wwNodet(3,3)) + + dydt = abs(yyNodeBC(1,3) - yyNode(1,3))/dt + uuNodeBC(1,3) = uuNode(1,3)-dydt/uuint*(uuNode(1,3)-uuNodet(1,3)); vvNodeBC(1,1) = vvNode(1,3) - dydt/vvint*(vvNode(1,3)-vvNodet(1,3)); wwNodeBC(1,1) = wwNode(1,3) - dydt/wwint*(wwNode(1,3)-wwNodet(1,3)) + uuNodeBC(2,3) = uuNode(2,3)-dydt/uuint*(uuNode(2,3)-uuNodet(2,3)); vvNodeBC(2,1) = vvNode(2,3) - dydt/vvint*(vvNode(2,3)-vvNodet(2,3)); wwNodeBC(2,1) = wwNode(2,3) - dydt/wwint*(wwNode(2,3)-wwNodet(2,3)) + uuNodeBC(3,3) = uuNode(3,3)-dydt/uuint*(uuNode(3,3)-uuNodet(3,3)); vvNodeBC(3,1) = vvNode(3,3) - dydt/vvint*(vvNode(3,3)-vvNodet(3,3)); wwNodeBC(3,1) = wwNode(3,3) - dydt/wwint*(wwNode(3,3)-wwNodet(3,3)) + + dxdt = abs(xxNodeBC(1,4) - xxNode(1,6))/dt + uuNodeBC(1,4) = uuNode(1,6)-dxdt/uuint*(uuNode(1,6)-uuNodet(1,6)); vvNodeBC(1,4) = vvNode(1,6)-dxdt/vvint*(vvNode(1,6)-vvNodet(1,6)); wwNodeBC(1,4) = wwNode(1,6)-dxdt/wwint*(wwNode(1,6)-wwNodet(1,6)) + uuNodeBC(2,4) = uuNode(2,6)-dxdt/uuint*(uuNode(2,6)-uuNodet(2,6)); vvNodeBC(2,4) = vvNode(2,6)-dxdt/vvint*(vvNode(2,6)-vvNodet(2,6)); wwNodeBC(2,4) = wwNode(2,6)-dxdt/wwint*(wwNode(2,6)-wwNodet(2,6)) + uuNodeBC(3,4) = uuNode(3,6)-dxdt/uuint*(uuNode(3,6)-uuNodet(3,6)); vvNodeBC(3,4) = vvNode(3,6)-dxdt/vvint*(vvNode(3,6)-vvNodet(3,6)); wwNodeBC(3,4) = wwNode(3,6)-dxdt/wwint*(wwNode(3,6)-wwNodet(3,6)) + + dydt = abs(yyNodeBC(1,5) - yyNode(1,6))/dt + uuNodeBC(1,5) = uuNode(1,6)-dydt/uuint*(uuNode(1,6)-uuNodet(1,6)); vvNodeBC(1,5) = vvNode(1,6) - dydt/vvint*(vvNode(1,6)-vvNodet(1,6)); wwNodeBC(1,5) = wwNode(1,6) - dydt/wwint*(wwNode(1,6)-wwNodet(1,6)) + uuNodeBC(2,5) = uuNode(2,6)-dydt/uuint*(uuNode(2,6)-uuNodet(2,6)); vvNodeBC(2,5) = vvNode(2,6) - dydt/vvint*(vvNode(2,6)-vvNodet(2,6)); wwNodeBC(2,5) = wwNode(2,6) - dydt/wwint*(wwNode(2,6)-wwNodet(2,6)) + uuNodeBC(3,5) = uuNode(3,6)-dydt/uuint*(uuNode(3,6)-uuNodet(3,6)); vvNodeBC(3,5) = vvNode(3,6) - dydt/vvint*(vvNode(3,6)-vvNodet(3,6)); wwNodeBC(3,5) = wwNode(3,6) - dydt/wwint*(wwNode(3,6)-wwNodet(3,6)) + + dydt = abs(yyNodeBC(1,6) - yyNode(1,6))/dt + uuNodeBC(1,6) = uuNode(1,6)-dydt/uuint*(uuNode(1,6)-uuNodet(1,6)); vvNodeBC(1,6) = vvNode(1,6) - dydt/vvint*(vvNode(1,6)-vvNodet(1,6)); wwNodeBC(1,6) = wwNode(1,6) - dydt/wwint*(wwNode(1,6)-wwNodet(1,6)) + uuNodeBC(2,6) = uuNode(2,6)-dydt/uuint*(uuNode(2,6)-uuNodet(2,6)); vvNodeBC(2,6) = vvNode(2,6) - dydt/vvint*(vvNode(2,6)-vvNodet(2,6)); wwNodeBC(2,6) = wwNode(2,6) - dydt/wwint*(wwNode(2,6)-wwNodet(2,6)) + uuNodeBC(3,6) = uuNode(3,6)-dydt/uuint*(uuNode(3,6)-uuNodet(3,6)); vvNodeBC(3,6) = vvNode(3,6) - dydt/vvint*(vvNode(3,6)-vvNodet(3,6)); wwNodeBC(3,6) = wwNode(3,6) - dydt/wwint*(wwNode(3,6)-wwNodet(3,6)) + + dxdt = abs(xxNodeBC(1,7) - xxNode(1,9))/dt + uuNodeBC(1,7) = uuNode(1,9)-dxdt/uuint*(uuNode(1,9)-uuNodet(1,9)); vvNodeBC(1,7) = vvNode(1,9)-dxdt/vvint*(vvNode(1,9)-vvNodet(1,9)); wwNodeBC(1,7) = wwNode(1,9)-dxdt/wwint*(wwNode(1,9)-wwNodet(1,9)) + uuNodeBC(2,7) = uuNode(2,9)-dxdt/uuint*(uuNode(2,9)-uuNodet(2,9)); vvNodeBC(2,7) = vvNode(2,9)-dxdt/vvint*(vvNode(2,9)-vvNodet(2,9)); wwNodeBC(2,7) = wwNode(2,9)-dxdt/wwint*(wwNode(2,9)-wwNodet(2,9)) + uuNodeBC(3,7) = uuNode(3,9)-dxdt/uuint*(uuNode(3,9)-uuNodet(3,9)); vvNodeBC(3,7) = vvNode(3,9)-dxdt/vvint*(vvNode(3,9)-vvNodet(3,9)); wwNodeBC(3,7) = wwNode(3,9)-dxdt/wwint*(wwNode(3,9)-wwNodet(3,9)) + + dydt = abs(yyNodeBC(1,8) - yyNode(1,9))/dt + uuNodeBC(1,8) = uuNode(1,9)-dydt/uuint*(uuNode(1,9)-uuNodet(1,9)); vvNodeBC(1,8) = vvNode(1,9) - dydt/vvint*(vvNode(1,9)-vvNodet(1,9)); wwNodeBC(1,8) = wwNode(1,9) - dydt/wwint*(wwNode(1,9)-wwNodet(1,9)) + uuNodeBC(2,8) = uuNode(2,9)-dydt/uuint*(uuNode(2,9)-uuNodet(2,9)); vvNodeBC(2,8) = vvNode(2,9) - dydt/vvint*(vvNode(2,9)-vvNodet(2,9)); wwNodeBC(2,8) = wwNode(2,9) - dydt/wwint*(wwNode(2,9)-wwNodet(2,9)) + uuNodeBC(3,8) = uuNode(3,9)-dydt/uuint*(uuNode(3,9)-uuNodet(3,9)); vvNodeBC(3,8) = vvNode(3,9) - dydt/vvint*(vvNode(3,9)-vvNodet(3,9)); wwNodeBC(3,8) = wwNode(3,9) - dydt/wwint*(wwNode(3,9)-wwNodet(3,9)) + + dydt = abs(yyNodeBC(1,9) - yyNode(1,9))/dt + uuNodeBC(1,9) = uuNode(1,9)-dydt/uuint*(uuNode(1,9)-uuNodet(1,9)); vvNodeBC(1,9) = vvNode(1,9) - dydt/vvint*(vvNode(1,9)-vvNodet(1,9)); wwNodeBC(1,9) = wwNode(1,9) - dydt/wwint*(wwNode(1,9)-wwNodet(1,9)) + uuNodeBC(2,9) = uuNode(2,9)-dydt/uuint*(uuNode(2,9)-uuNodet(2,9)); vvNodeBC(2,9) = vvNode(2,9) - dydt/vvint*(vvNode(2,9)-vvNodet(2,9)); wwNodeBC(2,9) = wwNode(2,9) - dydt/wwint*(wwNode(2,9)-wwNodet(2,9)) + uuNodeBC(3,9) = uuNode(3,9)-dydt/uuint*(uuNode(3,9)-uuNodet(3,9)); vvNodeBC(3,9) = vvNode(3,9) - dydt/vvint*(vvNode(3,9)-vvNodet(3,9)); wwNodeBC(3,9) = wwNode(3,9) - dydt/wwint*(wwNode(3,9)-wwNodet(3,9)) + + Elseif(nel_j == 2) Then + delX = -MeshParam%dx + delY = MeshParam%dy*nGhost + + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + xxNodeBC(1,1) = xxNode(1,1) + delX*nGhost; yyNodeBC(1,1) = yyNode(1,2)-delY/2; zzNodeBC(1,1) = zzNode(1,1) + xxNodeBC(1,2) = xxNodeBC(1,1); yyNodeBC(1,2) = yyNode(1,2); zzNodeBC(1,2) = zzNode(1,2) + xxNodeBC(1,3) = xxNodeBC(1,1); yyNodeBC(1,3) = yyNode(1,2) + delY/2; zzNodeBC(1,3) = zzNode(1,3) + xxNodeBC(2,1) = xxNodeBC(1,1); yyNodeBC(2,1) = yyNodeBC(1,1); zzNodeBC(2,1) = zzNode(2,1) + xxNodeBC(2,2) = xxNodeBC(1,1); yyNodeBC(2,2) = yyNodeBC(1,2); zzNodeBC(2,2) = zzNode(2,2) + xxNodeBC(2,3) = xxNodeBC(1,1); yyNodeBC(2,3) = yyNodeBC(1,3); zzNodeBC(2,3) = zzNode(2,3) + xxNodeBC(3,1) = xxNodeBC(1,1); yyNodeBC(3,1) = yyNodeBC(1,1); zzNodeBC(3,1) = zzNode(3,1) + xxNodeBC(3,2) = xxNodeBC(1,1); yyNodeBC(3,2) = yyNodeBC(1,2); zzNodeBC(3,2) = zzNode(3,2) + xxNodeBC(3,3) = xxNodeBC(1,1); yyNodeBC(3,3) = yyNodeBC(1,3); zzNodeBC(3,3) = zzNode(3,3) + + xxNodeBC(1,4) = xxNode(1,1) + delX*nGhost/2; yyNodeBC(1,4) = yyNodeBC(1,1); zzNodeBC(1,4) = zzNode(1,1) + xxNodeBC(1,5) = xxNodeBC(1,4); yyNodeBC(1,5) = yyNodeBC(1,2); zzNodeBC(1,5) = zzNode(1,2) + xxNodeBC(1,6) = xxNodeBC(1,4); yyNodeBC(1,6) = yyNodeBC(1,3); zzNodeBC(1,6) = zzNode(1,3) + xxNodeBC(2,4) = xxNodeBC(1,4); yyNodeBC(2,4) = yyNodeBC(1,1); zzNodeBC(2,4) = zzNode(2,1) + xxNodeBC(2,5) = xxNodeBC(1,4); yyNodeBC(2,5) = yyNodeBC(1,2); zzNodeBC(2,5) = zzNode(2,2) + xxNodeBC(2,6) = xxNodeBC(1,4); yyNodeBC(2,6) = yyNodeBC(1,3); zzNodeBC(2,6) = zzNode(2,3) + xxNodeBC(3,4) = xxNodeBC(1,4); yyNodeBC(3,4) = yyNodeBC(1,1); zzNodeBC(3,4) = zzNode(3,1) + xxNodeBC(3,5) = xxNodeBC(1,4); yyNodeBC(3,5) = yyNodeBC(1,2); zzNodeBC(3,5) = zzNode(3,2) + xxNodeBC(3,6) = xxNodeBC(1,4); yyNodeBC(3,6) = yyNodeBC(1,3); zzNodeBC(3,6) = zzNode(3,3) + + xxNodeBC(1,7) = xxNode(1,1); yyNodeBC(1,7) = yyNodeBC(1,1); zzNodeBC(1,7) = zzNode(1,1) + xxNodeBC(1,8) = xxNodeBC(1,7); yyNodeBC(1,8) = yyNodeBC(1,2); zzNodeBC(1,8) = zzNode(1,2) + xxNodeBC(1,9) = xxNodeBC(1,7); yyNodeBC(1,9) = yyNodeBC(1,3); zzNodeBC(1,9) = zzNode(1,3) + xxNodeBC(2,7) = xxNodeBC(1,7); yyNodeBC(2,7) = yyNodeBC(1,1); zzNodeBC(2,7) = zzNode(2,1) + xxNodeBC(2,8) = xxNodeBC(1,7); yyNodeBC(2,8) = yyNodeBC(1,2); zzNodeBC(2,8) = zzNode(2,2) + xxNodeBC(2,9) = xxNodeBC(1,7); yyNodeBC(2,9) = yyNodeBC(1,3); zzNodeBC(2,9) = zzNode(2,3) + xxNodeBC(3,7) = xxNodeBC(1,7); yyNodeBC(3,7) = yyNodeBC(1,1); zzNodeBC(3,7) = zzNode(3,1) + xxNodeBC(3,8) = xxNodeBC(1,7); yyNodeBC(3,8) = yyNodeBC(1,2); zzNodeBC(3,8) = zzNode(3,2) + xxNodeBC(3,9) = xxNodeBC(1,7); yyNodeBC(3,9) = yyNodeBC(1,3); zzNodeBC(3,9) = zzNode(3,3) + + dxdt = abs(xxNodeBC(1,1) - xxNode(1,1))/dt + uuNodeBC(1,1) = uuNode(1,1)-dxdt/uuint*(uuNode(1,1)-uuNodet(1,1)); vvNodeBC(1,1) = vvNode(1,1)-dxdt/vvint*(vvNode(1,1)-vvNodet(1,1)); wwNodeBC(1,1) = wwNode(1,1)-dxdt/wwint*(wwNode(1,1)-wwNodet(1,1)) + uuNodeBC(2,1) = uuNode(2,1)-dxdt/uuint*(uuNode(2,1)-uuNodet(2,1)); vvNodeBC(2,1) = vvNode(2,1)-dxdt/vvint*(vvNode(2,1)-vvNodet(2,1)); wwNodeBC(2,1) = wwNode(2,1)-dxdt/wwint*(wwNode(2,1)-wwNodet(2,1)) + uuNodeBC(3,1) = uuNode(3,1)-dxdt/uuint*(uuNode(3,1)-uuNodet(3,1)); vvNodeBC(3,1) = vvNode(3,1)-dxdt/vvint*(vvNode(3,1)-vvNodet(3,1)); wwNodeBC(3,1) = wwNode(3,1)-dxdt/wwint*(wwNode(3,1)-wwNodet(3,1)) + + dxdt = abs(xxNodeBC(1,2) - xxNode(1,2))/dt + uuNodeBC(1,2) = uuNode(1,2)-dxdt/uuint*(uuNode(1,2)-uuNodet(1,2)); vvNodeBC(1,2) = vvNode(1,2)-dxdt/vvint*(vvNode(1,2)-vvNodet(1,2)); wwNodeBC(1,2) = wwNode(1,2)-dxdt/wwint*(wwNode(1,2)-wwNodet(1,2)) + uuNodeBC(2,2) = uuNode(2,2)-dxdt/uuint*(uuNode(2,2)-uuNodet(2,2)); vvNodeBC(2,2) = vvNode(2,2)-dxdt/vvint*(vvNode(2,2)-vvNodet(2,2)); wwNodeBC(2,2) = wwNode(2,2)-dxdt/wwint*(wwNode(2,2)-wwNodet(2,2)) + uuNodeBC(3,2) = uuNode(3,2)-dxdt/uuint*(uuNode(3,2)-uuNodet(3,2)); vvNodeBC(3,2) = vvNode(3,2)-dxdt/vvint*(vvNode(3,2)-vvNodet(3,2)); wwNodeBC(3,2) = wwNode(3,2)-dxdt/wwint*(wwNode(3,2)-wwNodet(3,2)) + + dxdt = abs(xxNodeBC(1,3) - xxNode(1,3))/dt + uuNodeBC(1,3) = uuNode(1,3)-dxdt/uuint*(uuNode(1,3)-uuNodet(1,3)); vvNodeBC(1,3) = vvNode(1,3)-dxdt/vvint*(vvNode(1,3)-vvNodet(1,3)); wwNodeBC(1,3) = wwNode(1,3)-dxdt/wwint*(wwNode(1,3)-wwNodet(1,3)) + uuNodeBC(2,3) = uuNode(2,3)-dxdt/uuint*(uuNode(2,3)-uuNodet(2,3)); vvNodeBC(2,3) = vvNode(2,3)-dxdt/vvint*(vvNode(2,3)-vvNodet(2,3)); wwNodeBC(2,3) = wwNode(2,3)-dxdt/wwint*(wwNode(2,3)-wwNodet(2,3)) + uuNodeBC(3,3) = uuNode(3,3)-dxdt/uuint*(uuNode(3,3)-uuNodet(3,3)); vvNodeBC(3,3) = vvNode(3,3)-dxdt/vvint*(vvNode(3,3)-vvNodet(3,3)); wwNodeBC(3,3) = wwNode(3,3)-dxdt/wwint*(wwNode(3,3)-wwNodet(3,3)) + + dxdt = abs(xxNodeBC(1,4) - xxNode(1,1))/dt + uuNodeBC(1,4) = uuNode(1,1)-dxdt/uuint*(uuNode(1,1)-uuNodet(1,1)); vvNodeBC(1,4) = vvNode(1,1)-dxdt/vvint*(vvNode(1,1)-vvNodet(1,1)); wwNodeBC(1,4) = wwNode(1,1)-dxdt/wwint*(wwNode(1,1)-wwNodet(1,1)) + uuNodeBC(2,4) = uuNode(2,1)-dxdt/uuint*(uuNode(2,1)-uuNodet(2,1)); vvNodeBC(2,4) = vvNode(2,1)-dxdt/vvint*(vvNode(2,1)-vvNodet(2,1)); wwNodeBC(2,4) = wwNode(2,1)-dxdt/wwint*(wwNode(2,1)-wwNodet(2,1)) + uuNodeBC(3,4) = uuNode(3,1)-dxdt/uuint*(uuNode(3,1)-uuNodet(3,1)); vvNodeBC(3,4) = vvNode(3,1)-dxdt/vvint*(vvNode(3,1)-vvNodet(3,1)); wwNodeBC(3,4) = wwNode(3,1)-dxdt/wwint*(wwNode(3,1)-wwNodet(3,1)) + + dxdt = abs(xxNodeBC(1,5) - xxNode(1,2))/dt + uuNodeBC(1,5) = uuNode(1,2)-dxdt/uuint*(uuNode(1,2)-uuNodet(1,2)); vvNodeBC(1,5) = vvNode(1,2)-dxdt/vvint*(vvNode(1,2)-vvNodet(1,2)); wwNodeBC(1,5) = wwNode(1,2)-dxdt/wwint*(wwNode(1,2)-wwNodet(1,2)) + uuNodeBC(2,5) = uuNode(2,2)-dxdt/uuint*(uuNode(2,2)-uuNodet(2,2)); vvNodeBC(2,5) = vvNode(2,2)-dxdt/vvint*(vvNode(2,2)-vvNodet(2,2)); wwNodeBC(2,5) = wwNode(2,2)-dxdt/wwint*(wwNode(2,2)-wwNodet(2,2)) + uuNodeBC(3,5) = uuNode(3,2)-dxdt/uuint*(uuNode(3,2)-uuNodet(3,2)); vvNodeBC(3,5) = vvNode(3,2)-dxdt/vvint*(vvNode(3,2)-vvNodet(3,2)); wwNodeBC(3,5) = wwNode(3,2)-dxdt/wwint*(wwNode(3,2)-wwNodet(3,2)) + + dxdt = abs(xxNodeBC(1,6) - xxNode(1,3))/dt + uuNodeBC(1,6) = uuNode(1,3)-dxdt/uuint*(uuNode(1,3)-uuNodet(1,3)); vvNodeBC(1,6) = vvNode(1,3)-dxdt/vvint*(vvNode(1,3)-vvNodet(1,3)); wwNodeBC(1,6) = wwNode(1,3)-dxdt/wwint*(wwNode(1,3)-wwNodet(1,3)) + uuNodeBC(2,6) = uuNode(2,3)-dxdt/uuint*(uuNode(2,3)-uuNodet(2,3)); vvNodeBC(2,6) = vvNode(2,3)-dxdt/vvint*(vvNode(2,3)-vvNodet(2,3)); wwNodeBC(2,6) = wwNode(2,3)-dxdt/wwint*(wwNode(2,3)-wwNodet(2,3)) + uuNodeBC(3,6) = uuNode(3,3)-dxdt/uuint*(uuNode(3,3)-uuNodet(3,3)); vvNodeBC(3,6) = vvNode(3,3)-dxdt/vvint*(vvNode(3,3)-vvNodet(3,3)); wwNodeBC(3,6) = wwNode(3,3)-dxdt/wwint*(wwNode(3,3)-wwNodet(3,3)) + + dydt = abs(yyNodeBC(1,7) - yyNode(1,1))/dt + uuNodeBC(1,7) = uuNode(1,1)-dydt/uuint*(uuNode(1,1)-uuNodet(1,1)); vvNodeBC(1,7) = vvNode(1,1)-dydt/vvint*(vvNode(1,1)-vvNodet(1,1)); wwNodeBC(1,7) = wwNode(1,1)-dydt/wwint*(wwNode(1,1)-wwNodet(1,1)) + uuNodeBC(2,7) = uuNode(2,1)-dydt/uuint*(uuNode(2,1)-uuNodet(2,1)); vvNodeBC(2,7) = vvNode(2,1)-dydt/vvint*(vvNode(2,1)-vvNodet(2,1)); wwNodeBC(2,7) = wwNode(2,1)-dydt/wwint*(wwNode(2,1)-wwNodet(2,1)) + uuNodeBC(3,7) = uuNode(3,1)-dydt/uuint*(uuNode(3,1)-uuNodet(3,1)); vvNodeBC(3,7) = vvNode(3,1)-dydt/vvint*(vvNode(3,1)-vvNodet(3,1)); wwNodeBC(3,7) = wwNode(3,1)-dydt/wwint*(wwNode(3,1)-wwNodet(3,1)) + + dydt = abs(yyNodeBC(1,8) - yyNode(1,2))/dt + uuNodeBC(1,8) = uuNode(1,2)-dydt/uuint*(uuNode(1,2)-uuNodet(1,2)); vvNodeBC(1,8) = vvNode(1,2)-dydt/vvint*(vvNode(1,2)-vvNodet(1,2)); wwNodeBC(1,8) = wwNode(1,2)-dydt/wwint*(wwNode(1,2)-wwNodet(1,2)) + uuNodeBC(2,8) = uuNode(2,2)-dydt/uuint*(uuNode(2,2)-uuNodet(2,2)); vvNodeBC(2,8) = vvNode(2,2)-dydt/vvint*(vvNode(2,2)-vvNodet(2,2)); wwNodeBC(2,8) = wwNode(2,2)-dydt/wwint*(wwNode(2,2)-wwNodet(2,2)) + uuNodeBC(3,8) = uuNode(3,2)-dydt/uuint*(uuNode(3,2)-uuNodet(3,2)); vvNodeBC(3,8) = vvNode(3,2)-dydt/vvint*(vvNode(3,2)-vvNodet(3,2)); wwNodeBC(3,8) = wwNode(3,2)-dydt/wwint*(wwNode(3,2)-wwNodet(3,2)) + + dydt = abs(yyNodeBC(1,9) - yyNode(1,3))/dt + uuNodeBC(1,9) = uuNode(1,3)-dydt/uuint*(uuNode(1,3)-uuNodet(1,3)); vvNodeBC(1,9) = vvNode(1,3)-dydt/vvint*(vvNode(1,3)-vvNodet(1,3)); wwNodeBC(1,9) = wwNode(1,3)-dydt/wwint*(wwNode(1,3)-wwNodet(1,3)) + uuNodeBC(2,9) = uuNode(2,3)-dydt/uuint*(uuNode(2,3)-uuNodet(2,3)); vvNodeBC(2,9) = vvNode(2,3)-dydt/vvint*(vvNode(2,3)-vvNodet(2,3)); wwNodeBC(2,9) = wwNode(2,3)-dydt/wwint*(wwNode(2,3)-wwNodet(2,3)) + uuNodeBC(3,9) = uuNode(3,3)-dydt/uuint*(uuNode(3,3)-uuNodet(3,3)); vvNodeBC(3,9) = vvNode(3,3)-dydt/vvint*(vvNode(3,3)-vvNodet(3,3)); wwNodeBC(3,9) = wwNode(3,3)-dydt/wwint*(wwNode(3,3)-wwNodet(3,3)) + + ElseIf(nel_j == 3) Then + delX = 0.d0 + delY = -MeshParam%dy*nGhost + + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + xxNodeBC(1,1) = xxNode(1,1) - delX*(nGhost-1)/2; yyNodeBC(1,1) = yyNode(1,1); zzNodeBC(1,1) = zzNode(1,1) + xxNodeBC(1,2) = xxNodeBC(1,1); yyNodeBC(1,2) = yyNodeBC(1,1) + delY/2; zzNodeBC(1,2) = zzNode(1,1) + xxNodeBC(1,3) = xxNodeBC(1,1); yyNodeBC(1,3) = yyNodeBC(1,1) + delY; zzNodeBC(1,3) = zzNode(1,1) + xxNodeBC(2,1) = xxNodeBC(1,1); yyNodeBC(2,1) = yyNodeBC(1,1); zzNodeBC(2,1) = zzNode(2,1) + xxNodeBC(2,2) = xxNodeBC(1,1); yyNodeBC(2,2) = yyNodeBC(1,1) + delY/2; zzNodeBC(2,2) = zzNode(2,1) + xxNodeBC(2,3) = xxNodeBC(1,1); yyNodeBC(2,3) = yyNodeBC(1,1) + delY; zzNodeBC(2,3) = zzNode(2,1) + xxNodeBC(3,1) = xxNodeBC(1,1); yyNodeBC(3,1) = yyNodeBC(1,1); zzNodeBC(3,1) = zzNode(3,1) + xxNodeBC(3,2) = xxNodeBC(1,1); yyNodeBC(3,2) = yyNodeBC(1,1) + delY/2; zzNodeBC(3,2) = zzNode(3,1) + xxNodeBC(3,3) = xxNodeBC(1,1); yyNodeBC(3,3) = yyNodeBC(1,1) + delY; zzNodeBC(3,3) = zzNode(3,1) + + xxNodeBC(1,4) = xxNode(1,4); yyNodeBC(1,4) = yyNode(1,4); zzNodeBC(1,4) = zzNode(1,4) + xxNodeBC(1,5) = xxNodeBC(1,4); yyNodeBC(1,5) = yyNodeBC(1,4) + delY/2; zzNodeBC(1,5) = zzNode(1,4) + xxNodeBC(1,6) = xxNodeBC(1,4); yyNodeBC(1,6) = yyNodeBC(1,4) + delY; zzNodeBC(1,6) = zzNode(1,4) + xxNodeBC(2,4) = xxNodeBC(1,4); yyNodeBC(2,4) = yyNodeBC(1,4); zzNodeBC(2,4) = zzNode(2,4) + xxNodeBC(2,5) = xxNodeBC(1,4); yyNodeBC(2,5) = yyNodeBC(1,4) + delY/2; zzNodeBC(2,5) = zzNode(2,4) + xxNodeBC(2,6) = xxNodeBC(1,4); yyNodeBC(2,6) = yyNodeBC(1,4) + delY; zzNodeBC(2,6) = zzNode(2,4) + xxNodeBC(3,4) = xxNodeBC(1,4); yyNodeBC(3,4) = yyNodeBC(1,4); zzNodeBC(3,4) = zzNode(3,4) + xxNodeBC(3,5) = xxNodeBC(1,4); yyNodeBC(3,5) = yyNodeBC(1,4) + delY/2; zzNodeBC(3,5) = zzNode(3,4) + xxNodeBC(3,6) = xxNodeBC(1,4); yyNodeBC(3,6) = yyNodeBC(1,4) + delY; zzNodeBC(3,6) = zzNode(3,4) + + xxNodeBC(1,7) = xxNode(1,7) + delX*(nGhost-1)/2; yyNodeBC(1,7) = yyNode(1,7); zzNodeBC(1,7) = zzNode(1,7) + xxNodeBC(1,8) = xxNodeBC(1,7); yyNodeBC(1,8) = yyNodeBC(1,7) + delY/2; zzNodeBC(1,8) = zzNode(1,7) + xxNodeBC(1,9) = xxNodeBC(1,7); yyNodeBC(1,9) = yyNodeBC(1,7) + delY; zzNodeBC(1,9) = zzNode(1,7) + xxNodeBC(2,7) = xxNodeBC(1,7); yyNodeBC(2,7) = yyNodeBC(1,7); zzNodeBC(2,7) = zzNode(2,7) + xxNodeBC(2,8) = xxNodeBC(1,7); yyNodeBC(2,8) = yyNodeBC(1,7) + delY/2; zzNodeBC(2,8) = zzNode(2,7) + xxNodeBC(2,9) = xxNodeBC(1,7); yyNodeBC(2,9) = yyNodeBC(1,7) + delY; zzNodeBC(2,9) = zzNode(2,7) + xxNodeBC(3,7) = xxNodeBC(1,7); yyNodeBC(3,7) = yyNodeBC(1,7); zzNodeBC(3,7) = zzNode(3,7) + xxNodeBC(3,8) = xxNodeBC(1,7); yyNodeBC(3,8) = yyNodeBC(1,7) + delY/2; zzNodeBC(3,8) = zzNode(3,7) + xxNodeBC(3,9) = xxNodeBC(1,7); yyNodeBC(3,9) = yyNodeBC(1,7) + delY; zzNodeBC(3,9) = zzNode(3,7) + + dydt = abs(yyNodeBC(1,1) - yyNode(1,1))/dt + uuNodeBC(1,1) = uuNode(1,1) - dydt/uuint*(uuNode(1,1)-uuNodet(1,1)); vvNodeBC(1,1) = vvNode(1,1) - dydt/vvint*(vvNode(1,1)-vvNodet(1,1)); wwNodeBC(1,1) = wwNode(1,3) - dydt/wwint*(wwNode(1,1)-wwNodet(1,1)) + uuNodeBC(2,1) = uuNode(2,1) - dydt/uuint*(uuNode(2,1)-uuNodet(2,1)); vvNodeBC(2,1) = vvNode(2,1) - dydt/vvint*(vvNode(2,1)-vvNodet(2,1)); wwNodeBC(2,1) = wwNode(2,3) - dydt/wwint*(wwNode(2,1)-wwNodet(2,1)) + uuNodeBC(3,1) = uuNode(3,1) - dydt/uuint*(uuNode(3,1)-uuNodet(3,1)); vvNodeBC(3,1) = vvNode(3,1) - dydt/vvint*(vvNode(3,1)-vvNodet(3,1)); wwNodeBC(3,1) = wwNode(3,3) - dydt/wwint*(wwNode(3,1)-wwNodet(3,1)) + + dydt = (yyNodeBC(1,2) - yyNode(1,1))/dt + uuNodeBC(1,2) = uuNode(1,1) - dydt/uuint*(uuNode(1,1)-uuNodet(1,1)); vvNodeBC(1,2) = vvNode(1,1) - dydt/vvint*(vvNode(1,1)-vvNodet(1,1)); wwNodeBC(1,2) = wwNode(1,3) - dydt/wwint*(wwNode(1,1)-wwNodet(1,1)) + uuNodeBC(2,2) = uuNode(2,1) - dydt/uuint*(uuNode(2,1)-uuNodet(2,1)); vvNodeBC(2,2) = vvNode(2,1) - dydt/vvint*(vvNode(2,1)-vvNodet(2,1)); wwNodeBC(2,2) = wwNode(2,3) - dydt/wwint*(wwNode(2,1)-wwNodet(2,1)) + uuNodeBC(3,2) = uuNode(3,1) - dydt/uuint*(uuNode(3,1)-uuNodet(3,1)); vvNodeBC(3,2) = vvNode(3,1) - dydt/vvint*(vvNode(3,1)-vvNodet(3,1)); wwNodeBC(3,2) = wwNode(3,3) - dydt/wwint*(wwNode(3,1)-wwNodet(3,1)) + + dxdt = abs(xxNodeBC(1,3) - xxNode(1,1))/dt + uuNodeBC(1,3) = uuNode(1,1) - dxdt/uuint*(uuNode(1,1)-uuNodet(1,1)); vvNodeBC(1,3) = vvNode(1,1) - dxdt/vvint*(vvNode(1,1)-vvNodet(1,1)); wwNodeBC(1,3) = wwNode(1,1) - dxdt/wwint*(wwNode(1,1)-wwNodet(1,1)) + uuNodeBC(2,3) = uuNode(2,1) - dxdt/uuint*(uuNode(2,1)-uuNodet(2,1)); vvNodeBC(2,3) = vvNode(2,1) - dxdt/vvint*(vvNode(2,1)-vvNodet(2,1)); wwNodeBC(2,3) = wwNode(2,1) - dxdt/wwint*(wwNode(2,1)-wwNodet(2,1)) + uuNodeBC(3,3) = uuNode(3,1) - dxdt/uuint*(uuNode(3,1)-uuNodet(3,1)); vvNodeBC(3,3) = vvNode(3,1) - dxdt/vvint*(vvNode(3,1)-vvNodet(3,1)); wwNodeBC(3,3) = wwNode(3,1) - dxdt/wwint*(wwNode(3,1)-wwNodet(3,1)) + + dydt = abs(yyNodeBC(1,4) - yyNode(1,4))/dt + uuNodeBC(1,4) = uuNode(1,4) - dydt/uuint*(uuNode(1,4)-uuNodet(1,4)); vvNodeBC(1,4) = vvNode(1,4) - dydt/vvint*(vvNode(1,4)-vvNodet(1,4)); wwNodeBC(1,4) = wwNode(1,4) - dydt/wwint*(wwNode(1,4)-wwNodet(1,4)) + uuNodeBC(2,4) = uuNode(2,4) - dydt/uuint*(uuNode(2,4)-uuNodet(2,4)); vvNodeBC(2,4) = vvNode(2,4) - dydt/vvint*(vvNode(2,4)-vvNodet(2,4)); wwNodeBC(2,4) = wwNode(2,4) - dydt/wwint*(wwNode(2,4)-wwNodet(2,4)) + uuNodeBC(3,4) = uuNode(3,4) - dydt/uuint*(uuNode(3,4)-uuNodet(3,4)); vvNodeBC(3,4) = vvNode(3,4) - dydt/vvint*(vvNode(3,4)-vvNodet(3,4)); wwNodeBC(3,4) = wwNode(3,4) - dydt/wwint*(wwNode(3,4)-wwNodet(3,4)) + + dydt = abs(yyNodeBC(1,5) - yyNode(1,4))/dt + uuNodeBC(1,5) = uuNode(1,4) - dydt/uuint*(uuNode(1,4)-uuNodet(1,4)); vvNodeBC(1,5) = vvNode(1,4) - dydt/vvint*(vvNode(1,4)-vvNodet(1,4)); wwNodeBC(1,5) = wwNode(1,4) - dydt/wwint*(wwNode(1,4)-wwNodet(1,4)) + uuNodeBC(2,5) = uuNode(2,4) - dydt/uuint*(uuNode(2,4)-uuNodet(2,4)); vvNodeBC(2,5) = vvNode(2,4) - dydt/vvint*(vvNode(2,4)-vvNodet(2,4)); wwNodeBC(2,5) = wwNode(2,4) - dydt/wwint*(wwNode(2,4)-wwNodet(2,4)) + uuNodeBC(3,5) = uuNode(3,4) - dydt/uuint*(uuNode(3,4)-uuNodet(3,4)); vvNodeBC(3,5) = vvNode(3,4) - dydt/vvint*(vvNode(3,4)-vvNodet(3,4)); wwNodeBC(3,5) = wwNode(3,4) - dydt/wwint*(wwNode(3,4)-wwNodet(3,4)) + + dxdt = abs(xxNodeBC(1,6) - xxNode(1,4))/dt + uuNodeBC(1,6) = uuNode(1,4) - dxdt/uuint*(uuNode(1,4)-uuNodet(1,4)); vvNodeBC(1,6) = vvNode(1,4) - dxdt/vvint*(vvNode(1,4)-vvNodet(1,4)); wwNodeBC(1,6) = wwNode(1,4) - dxdt/wwint*(wwNode(1,4)-wwNodet(1,4)) + uuNodeBC(2,6) = uuNode(2,4) - dxdt/uuint*(uuNode(2,4)-uuNodet(2,4)); vvNodeBC(2,6) = vvNode(2,4) - dxdt/vvint*(vvNode(2,4)-vvNodet(2,4)); wwNodeBC(2,6) = wwNode(2,4) - dxdt/wwint*(wwNode(2,4)-wwNodet(2,4)) + uuNodeBC(3,6) = uuNode(3,4) - dxdt/uuint*(uuNode(3,4)-uuNodet(3,4)); vvNodeBC(3,6) = vvNode(3,4) - dxdt/vvint*(vvNode(3,4)-vvNodet(3,4)); wwNodeBC(3,6) = wwNode(3,4) - dxdt/wwint*(wwNode(3,4)-wwNodet(3,4)) + + dydt = abs(yyNodeBC(1,7) - yyNode(1,7))/dt + uuNodeBC(1,7) = uuNode(1,7) - dydt/uuint*(uuNode(1,7)-uuNodet(1,7)); vvNodeBC(1,7) = vvNode(1,7) - dydt/vvint*(vvNode(1,7)-vvNodet(1,7)); wwNodeBC(1,7) = wwNode(1,7) - dydt/wwint*(wwNode(1,7)-wwNodet(1,7)) + uuNodeBC(2,7) = uuNode(2,7) - dydt/uuint*(uuNode(2,7)-uuNodet(2,7)); vvNodeBC(2,7) = vvNode(2,7) - dydt/vvint*(vvNode(2,7)-vvNodet(2,7)); wwNodeBC(2,7) = wwNode(2,7) - dydt/wwint*(wwNode(2,7)-wwNodet(2,7)) + uuNodeBC(3,7) = uuNode(3,7) - dydt/uuint*(uuNode(3,7)-uuNodet(3,7)); vvNodeBC(3,7) = vvNode(3,7) - dydt/vvint*(vvNode(3,7)-vvNodet(3,7)); wwNodeBC(3,7) = wwNode(3,7) - dydt/wwint*(wwNode(3,7)-wwNodet(3,7)) + + dydt = (yyNodeBC(1,8) - yyNode(1,7))/dt + uuNodeBC(1,8) = uuNode(1,7) - dydt/uuint*(uuNode(1,7)-uuNodet(1,7)); vvNodeBC(1,8) = vvNode(1,7) - dydt/vvint*(vvNode(1,7)-vvNodet(1,7)); wwNodeBC(1,8) = wwNode(1,7) - dydt/wwint*(wwNode(1,7)-wwNodet(1,7)) + uuNodeBC(2,8) = uuNode(2,7) - dydt/uuint*(uuNode(2,7)-uuNodet(2,7)); vvNodeBC(2,8) = vvNode(2,7) - dydt/vvint*(vvNode(2,7)-vvNodet(2,7)); wwNodeBC(2,8) = wwNode(2,7) - dydt/wwint*(wwNode(2,7)-wwNodet(2,7)) + uuNodeBC(3,8) = uuNode(3,7) - dydt/uuint*(uuNode(3,7)-uuNodet(3,7)); vvNodeBC(3,8) = vvNode(3,7) - dydt/vvint*(vvNode(3,7)-vvNodet(3,7)); wwNodeBC(3,8) = wwNode(3,7) - dydt/wwint*(wwNode(3,7)-wwNodet(3,7)) + + dxdt = abs(xxNodeBC(1,9) - xxNode(1,7))/dt + uuNodeBC(1,9) = uuNode(1,7) - dxdt/uuint*(uuNode(1,7)-uuNodet(1,7)); vvNodeBC(1,9) = vvNode(1,7) - dxdt/vvint*(vvNode(1,7)-vvNodet(1,7)); wwNodeBC(1,9) = wwNode(1,7) - dxdt/wwint*(wwNode(1,7)-wwNodet(1,7)) + uuNodeBC(2,9) = uuNode(2,7) - dxdt/uuint*(uuNode(2,7)-uuNodet(2,7)); vvNodeBC(2,9) = vvNode(2,7) - dxdt/vvint*(vvNode(2,7)-vvNodet(2,7)); wwNodeBC(2,9) = wwNode(2,7) - dxdt/wwint*(wwNode(2,7)-wwNodet(2,7)) + uuNodeBC(3,9) = uuNode(3,7) - dxdt/uuint*(uuNode(3,7)-uuNodet(3,7)); vvNodeBC(3,9) = vvNode(3,7) - dxdt/vvint*(vvNode(3,7)-vvNodet(3,7)); wwNodeBC(3,9) = wwNode(3,7) - dxdt/wwint*(wwNode(3,7)-wwNodet(3,7)) + + Else + delX = MeshParam%dx*nGhost + delY = MeshParam%dy*nGhost + + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + xxNodeBC(1,1) = xxNode(1,7); yyNodeBC(1,1) = yyNode(1,8) - delY/2; zzNodeBC(1,1) = zzNode(1,7) + xxNodeBC(1,2) = xxNodeBC(1,1); yyNodeBC(1,2) = yyNodeBC(1,8); zzNodeBC(1,2) = zzNode(1,8) + xxNodeBC(1,3) = xxNodeBC(1,1); yyNodeBC(1,3) = yyNodeBC(1,8) + delY/2; zzNodeBC(1,3) = zzNode(1,9) + xxNodeBC(2,1) = xxNodeBC(1,1); yyNodeBC(2,1) = yyNodeBC(1,1); zzNodeBC(2,1) = zzNode(2,7) + xxNodeBC(2,2) = xxNodeBC(1,1); yyNodeBC(2,2) = yyNodeBC(1,2); zzNodeBC(2,2) = zzNode(2,8) + xxNodeBC(2,3) = xxNodeBC(1,1); yyNodeBC(2,3) = yyNodeBC(1,3); zzNodeBC(2,3) = zzNode(2,9) + xxNodeBC(3,1) = xxNodeBC(1,1); yyNodeBC(3,1) = yyNodeBC(1,1); zzNodeBC(3,1) = zzNode(3,7) + xxNodeBC(3,2) = xxNodeBC(1,1); yyNodeBC(3,2) = yyNodeBC(1,2); zzNodeBC(3,2) = zzNode(3,8) + xxNodeBC(3,3) = xxNodeBC(1,1); yyNodeBC(3,3) = yyNodeBC(1,3); zzNodeBC(3,3) = zzNode(3,9) + + xxNodeBC(1,4) = xxNode(1,7) + delX/2; yyNodeBC(1,4) = yyNodeBC(1,1); zzNodeBC(1,4) = zzNode(1,7) + xxNodeBC(1,5) = xxNodeBC(1,4); yyNodeBC(1,5) = yyNodeBC(1,2); zzNodeBC(1,5) = zzNode(1,8) + xxNodeBC(1,6) = xxNodeBC(1,4); yyNodeBC(1,6) = yyNodeBC(1,3); zzNodeBC(1,6) = zzNode(1,9) + xxNodeBC(2,4) = xxNodeBC(1,4); yyNodeBC(2,4) = yyNodeBC(1,1); zzNodeBC(2,4) = zzNode(2,7) + xxNodeBC(2,5) = xxNodeBC(1,4); yyNodeBC(2,5) = yyNodeBC(1,2); zzNodeBC(2,5) = zzNode(2,8) + xxNodeBC(2,6) = xxNodeBC(1,4); yyNodeBC(2,6) = yyNodeBC(1,3); zzNodeBC(2,6) = zzNode(2,9) + xxNodeBC(3,4) = xxNodeBC(1,4); yyNodeBC(3,4) = yyNodeBC(1,1); zzNodeBC(3,4) = zzNode(3,7) + xxNodeBC(3,5) = xxNodeBC(1,4); yyNodeBC(3,5) = yyNodeBC(1,2); zzNodeBC(3,5) = zzNode(3,8) + xxNodeBC(3,6) = xxNodeBC(1,4); yyNodeBC(3,6) = yyNodeBC(1,3); zzNodeBC(3,6) = zzNode(3,9) + + xxNodeBC(1,7) = xxNode(1,7) + delX; yyNodeBC(1,7) = yyNodeBC(1,1); zzNodeBC(1,7) = zzNode(1,7) + xxNodeBC(1,8) = xxNodeBC(1,7); yyNodeBC(1,8) = yyNodeBC(1,2); zzNodeBC(1,8) = zzNode(1,8) + xxNodeBC(1,9) = xxNodeBC(1,7); yyNodeBC(1,9) = yyNodeBC(1,3); zzNodeBC(1,9) = zzNode(1,9) + xxNodeBC(2,7) = xxNodeBC(1,7); yyNodeBC(2,7) = yyNodeBC(1,1); zzNodeBC(2,7) = zzNode(2,7) + xxNodeBC(2,8) = xxNodeBC(1,7); yyNodeBC(2,8) = yyNodeBC(1,2); zzNodeBC(2,8) = zzNode(2,8) + xxNodeBC(2,9) = xxNodeBC(1,7); yyNodeBC(2,9) = yyNodeBC(1,3); zzNodeBC(2,9) = zzNode(2,9) + xxNodeBC(3,7) = xxNodeBC(1,7); yyNodeBC(3,7) = yyNodeBC(1,1); zzNodeBC(3,7) = zzNode(3,7) + xxNodeBC(3,8) = xxNodeBC(1,7); yyNodeBC(3,8) = yyNodeBC(1,2); zzNodeBC(3,8) = zzNode(3,8) + xxNodeBC(3,9) = xxNodeBC(1,7); yyNodeBC(3,9) = yyNodeBC(1,3); zzNodeBC(3,9) = zzNode(3,9) + + dydt = abs(xxNodeBC(1,1) - xxNode(1,7))/dt + uuNodeBC(1,1) = uuNode(1,7)-dydt/uuint*(uuNode(1,7)-uuNodet(1,7)); vvNodeBC(1,1) = vvNode(1,7)-dydt/vvint*(vvNode(1,7)-vvNodet(1,7)); wwNodeBC(1,1) = wwNode(1,7)-dydt/wwint*(wwNode(1,7)-wwNodet(1,7)) + uuNodeBC(2,1) = uuNode(2,7)-dydt/uuint*(uuNode(2,7)-uuNodet(2,7)); vvNodeBC(2,1) = vvNode(2,7)-dydt/vvint*(vvNode(2,7)-vvNodet(2,7)); wwNodeBC(2,1) = wwNode(2,7)-dydt/wwint*(wwNode(2,7)-wwNodet(2,7)) + uuNodeBC(3,1) = uuNode(3,7)-dydt/uuint*(uuNode(3,7)-uuNodet(3,7)); vvNodeBC(3,1) = vvNode(3,7)-dydt/vvint*(vvNode(3,7)-vvNodet(3,7)); wwNodeBC(3,1) = wwNode(3,7)-dydt/wwint*(wwNode(3,7)-wwNodet(3,7)) + + dydt = abs(xxNodeBC(1,2) - xxNode(1,8))/dt + uuNodeBC(1,2) = uuNode(1,8)-dydt/uuint*(uuNode(1,8)-uuNodet(1,8)); vvNodeBC(1,2) = vvNode(1,8)-dydt/vvint*(vvNode(1,8)-vvNodet(1,8)); wwNodeBC(1,2) = wwNode(1,8)-dydt/wwint*(wwNode(1,8)-wwNodet(1,8)) + uuNodeBC(2,2) = uuNode(2,8)-dydt/uuint*(uuNode(2,8)-uuNodet(2,8)); vvNodeBC(2,2) = vvNode(2,8)-dydt/vvint*(vvNode(2,8)-vvNodet(2,8)); wwNodeBC(2,2) = wwNode(2,8)-dydt/wwint*(wwNode(2,8)-wwNodet(2,8)) + uuNodeBC(3,2) = uuNode(3,8)-dydt/uuint*(uuNode(3,8)-uuNodet(3,8)); vvNodeBC(3,2) = vvNode(3,8)-dydt/vvint*(vvNode(3,8)-vvNodet(3,8)); wwNodeBC(3,2) = wwNode(3,8)-dydt/wwint*(wwNode(3,8)-wwNodet(3,8)) + + dydt = abs(xxNodeBC(1,2) - xxNode(1,9))/dt + uuNodeBC(1,3) = uuNode(1,9)-dydt/uuint*(uuNode(1,9)-uuNodet(1,9)); vvNodeBC(1,2) = vvNode(1,9)-dydt/vvint*(vvNode(1,9)-vvNodet(1,9)); wwNodeBC(1,2) = wwNode(1,9)-dydt/wwint*(wwNode(1,9)-wwNodet(1,9)) + uuNodeBC(2,3) = uuNode(2,9)-dydt/uuint*(uuNode(2,9)-uuNodet(2,9)); vvNodeBC(2,2) = vvNode(2,9)-dydt/vvint*(vvNode(2,9)-vvNodet(2,9)); wwNodeBC(2,2) = wwNode(2,9)-dydt/wwint*(wwNode(2,9)-wwNodet(2,9)) + uuNodeBC(3,3) = uuNode(3,9)-dydt/uuint*(uuNode(3,9)-uuNodet(3,9)); vvNodeBC(3,2) = vvNode(3,9)-dydt/vvint*(vvNode(3,9)-vvNodet(3,9)); wwNodeBC(3,2) = wwNode(3,9)-dydt/wwint*(wwNode(3,9)-wwNodet(3,9)) + + dxdt = abs(xxNodeBC(1,4) - xxNode(1,7))/dt + uuNodeBC(1,4) = uuNode(1,7)-dxdt/uuint*(uuNode(1,7)-uuNodet(1,7)); vvNodeBC(1,4) = vvNode(1,7)-dxdt/vvint*(vvNode(1,7)-vvNodet(1,7)); wwNodeBC(1,4) = wwNode(1,7)-dxdt/wwint*(wwNode(1,7)-wwNodet(1,7)) + uuNodeBC(2,4) = uuNode(2,7)-dxdt/uuint*(uuNode(2,7)-uuNodet(2,7)); vvNodeBC(2,4) = vvNode(2,7)-dxdt/vvint*(vvNode(2,7)-vvNodet(2,7)); wwNodeBC(2,4) = wwNode(2,7)-dxdt/wwint*(wwNode(2,7)-wwNodet(2,7)) + uuNodeBC(3,4) = uuNode(3,7)-dxdt/uuint*(uuNode(3,7)-uuNodet(3,7)); vvNodeBC(3,4) = vvNode(3,7)-dxdt/vvint*(vvNode(3,7)-vvNodet(3,7)); wwNodeBC(3,4) = wwNode(3,7)-dxdt/wwint*(wwNode(3,7)-wwNodet(3,7)) + + dxdt = (xxNodeBC(1,5) - xxNode(1,8))/dt + uuNodeBC(1,5) = uuNode(1,8)-dxdt/uuint*(uuNode(1,8)-uuNodet(1,8)); vvNodeBC(1,5) = vvNode(1,8)-dxdt/vvint*(vvNode(1,8)-vvNodet(1,8)); wwNodeBC(1,5) = wwNode(1,8)-dxdt/wwint*(wwNode(1,8)-wwNodet(1,8)) + uuNodeBC(2,5) = uuNode(2,8)-dxdt/uuint*(uuNode(2,8)-uuNodet(2,8)); vvNodeBC(2,5) = vvNode(2,8)-dxdt/vvint*(vvNode(2,8)-vvNodet(2,8)); wwNodeBC(2,5) = wwNode(2,8)-dxdt/wwint*(wwNode(2,8)-wwNodet(2,8)) + uuNodeBC(3,5) = uuNode(3,8)-dxdt/uuint*(uuNode(3,8)-uuNodet(3,8)); vvNodeBC(3,5) = vvNode(3,8)-dxdt/vvint*(vvNode(3,8)-vvNodet(3,8)); wwNodeBC(3,5) = wwNode(3,8)-dxdt/wwint*(wwNode(3,8)-wwNodet(3,8)) + + dxdt = abs(xxNodeBC(1,6) - xxNode(1,9))/dt + uuNodeBC(1,6) = uuNode(1,9)-dxdt/uuint*(uuNode(1,9)-uuNodet(1,9)); vvNodeBC(1,6) = vvNode(1,9)-dxdt/vvint*(vvNode(1,9)-vvNodet(1,9)); wwNodeBC(1,6) = wwNode(1,9)-dxdt/wwint*(wwNode(1,9)-wwNodet(1,9)) + uuNodeBC(2,6) = uuNode(2,9)-dxdt/uuint*(uuNode(2,9)-uuNodet(2,9)); vvNodeBC(2,6) = vvNode(2,9)-dxdt/vvint*(vvNode(2,9)-vvNodet(2,9)); wwNodeBC(2,6) = wwNode(2,9)-dxdt/wwint*(wwNode(2,9)-wwNodet(2,9)) + uuNodeBC(3,6) = uuNode(3,9)-dxdt/uuint*(uuNode(3,9)-uuNodet(3,9)); vvNodeBC(3,6) = vvNode(3,9)-dxdt/vvint*(vvNode(3,9)-vvNodet(3,9)); wwNodeBC(3,6) = wwNode(3,9)-dxdt/wwint*(wwNode(3,9)-wwNodet(3,9)) + + dxdt = (xxNodeBC(1,7) - xxNode(1,7))/dt + uuNodeBC(1,7) = uuNode(1,7)-dxdt/uuint*(uuNode(1,7)-uuNodet(1,7)); vvNodeBC(1,7) = vvNode(1,7)-dxdt/vvint*(vvNode(1,7)-vvNodet(1,7)); wwNodeBC(1,7) = wwNode(1,7)-dxdt/wwint*(wwNode(1,7)-wwNodet(1,7)) + uuNodeBC(2,7) = uuNode(2,7)-dxdt/uuint*(uuNode(2,7)-uuNodet(2,7)); vvNodeBC(2,7) = vvNode(2,7)-dxdt/vvint*(vvNode(2,7)-vvNodet(2,7)); wwNodeBC(2,7) = wwNode(2,7)-dxdt/wwint*(wwNode(2,7)-wwNodet(2,7)) + uuNodeBC(3,7) = uuNode(3,7)-dxdt/uuint*(uuNode(3,7)-uuNodet(3,7)); vvNodeBC(3,7) = vvNode(3,7)-dxdt/vvint*(vvNode(3,7)-vvNodet(3,7)); wwNodeBC(3,7) = wwNode(3,7)-dxdt/wwint*(wwNode(3,7)-wwNodet(3,7)) + + dxdt = abs(xxNodeBC(1,8) - xxNode(1,8))/dt + uuNodeBC(1,8) = uuNode(1,8)-dxdt/uuint*(uuNode(1,8)-uuNodet(1,8)); vvNodeBC(1,8) = vvNode(1,8)-dxdt/vvint*(vvNode(1,8)-vvNodet(1,8)); wwNodeBC(1,8) = wwNode(1,8)-dxdt/wwint*(wwNode(1,8)-wwNodet(1,8)) + uuNodeBC(2,8) = uuNode(2,8)-dxdt/uuint*(uuNode(2,8)-uuNodet(2,8)); vvNodeBC(2,8) = vvNode(2,8)-dxdt/vvint*(vvNode(2,8)-vvNodet(2,8)); wwNodeBC(2,8) = wwNode(2,8)-dxdt/wwint*(wwNode(2,8)-wwNodet(2,8)) + uuNodeBC(3,8) = uuNode(3,8)-dxdt/uuint*(uuNode(3,8)-uuNodet(3,8)); vvNodeBC(3,8) = vvNode(3,8)-dxdt/vvint*(vvNode(3,8)-vvNodet(3,8)); wwNodeBC(3,8) = wwNode(3,8)-dxdt/wwint*(wwNode(3,8)-wwNodet(3,8)) + + dxdt = abs(xxNodeBC(1,9) - xxNode(1,9))/dt + uuNodeBC(1,9) = uuNode(1,9)-dxdt/uuint*(uuNode(1,9)-uuNodet(1,9)); vvNodeBC(1,9) = vvNode(1,9)-dxdt/vvint*(vvNode(1,9)-vvNodet(1,9)); wwNodeBC(1,9) = wwNode(1,9)-dxdt/wwint*(wwNode(1,9)-wwNodet(1,9)) + uuNodeBC(2,9) = uuNode(2,9)-dxdt/uuint*(uuNode(2,9)-uuNodet(2,9)); vvNodeBC(2,9) = vvNode(2,9)-dxdt/vvint*(vvNode(2,9)-vvNodet(2,9)); wwNodeBC(2,9) = wwNode(2,9)-dxdt/wwint*(wwNode(2,9)-wwNodet(2,9)) + uuNodeBC(3,9) = uuNode(3,9)-dxdt/uuint*(uuNode(3,9)-uuNodet(3,9)); vvNodeBC(3,9) = vvNode(3,9)-dxdt/vvint*(vvNode(3,9)-vvNodet(3,9)); wwNodeBC(3,9) = wwNode(3,9)-dxdt/wwint*(wwNode(3,9)-wwNodet(3,9)) + + EndIf + + ! Interpolate advection velocities: +800 Call iquadratic(uuint, vvint, wwint, uuNodeBC(:,:), vvNodeBC(:,:), wwNodeBC(:,:), xxNodeBC(:,:), yyNodeBC(:,:), zzNodeBC(:,:), xt, yt, zt) + + !Adaptative sub-time step: + If (nel_j /= nel_j0) Then + tal = min(MeshParam%dx/abs(uuint), MeshParam%dy/abs(vvint), (zzNodeBC(3,5) - zzNodeBC(1,5))/abs(wwint)) + if (tal > 0 ) then + dtb = min(tal,dt,dtb) + endif + !nel_j = nel_j0 + If (timeAcum < dt .and. dtb + timeAcum > dt) Then + dtb = dt - timeAcum + EndIf + EndIf + + xt=x0-dtb*uuint + yt=y0-dtb*vvint + zt=z0-dtb*wwint + + firstFlag = 0 + EndDo + + End Subroutine BoundaryConditionTracking + + EndModule ELM \ No newline at end of file diff --git a/ELM0290.f90 b/ELM0290.f90 new file mode 100644 index 0000000..4f18469 --- /dev/null +++ b/ELM0290.f90 @@ -0,0 +1,1656 @@ + ! + !Subroutine ELMConservative4(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: uuint, vvint, wwint + !Integer :: rElem, uElem, dElem, lElem, nElem, ElFlag + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + !Real :: fi_small = 0.0d0 + !Real :: epsGrad = 10 !CAYO + !Real :: rj(2,4), psi(2,4), ru, soma + !Real :: Courant + ! + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + !HydroParam%uArrow(iLayer,:,iEdge) = 0.d0 + !Courant = uuNode(3)*dt/MeshParam%CirDistance(iEdge) !7 - Super-C/ 8 - Ultimate-Quickest/ 9 - Hyper-C + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for node n3: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + ! + !!2.2 - Velocities for node n2: + !nElem = bbElem + !Call pointInElem(nElem, lElem, xt - MeshParam%dx/2, yt, MeshParam) + !! If nElem =/ lElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! !u(2) == u(iEdge==2,bbElem) + ! nElem = bbElem + ! uuNodeBT(2) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(2,bbElem)); vvNodeBT(2) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(2,bbElem)); wwNodeBT(2) = HydroParam%wfc(bbLayer,MeshParam%Edge(2,bbElem)); xxNodeBT(2) = xxNodeBT(3) - MeshParam%dx/2; yyNodeBT(2) = yyNodeBT(3); zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%H(MeshParam%Edge(2,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(2,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.3 - Velocities for node n1: + !If (nElem == lElem) Then + ! lElem = MeshParam%Right(MeshParam%Edge(2,lElem)) + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! ! n1 == n2: + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2) - MeshParam%dx/2; yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.4 - Velocities for node n4: + !nElem = bbElem + !Call pointInElem(nElem, rElem, xt + MeshParam%dx/2, yt, MeshParam) + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! !u(4) == u(iEdge==4,bbElem) + ! nElem = bbElem + ! uuNodeBT(4) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(4,bbElem)); vvNodeBT(4) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(4,bbElem)); wwNodeBT(4) = HydroParam%wfc(bbLayer,MeshParam%Edge(4,bbElem)); xxNodeBT(4) = xxNodeBT(3) + MeshParam%dx/2; yyNodeBT(4) = yyNodeBT(3); zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%H(MeshParam%Edge(4,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(4,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!Energy conservation x - direction: + !If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + ! If (uuNode(3) + uuNode(1) >= 0) Then + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! + ! !2.5 - Velocities for node n5: + ! If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! EndIf + ! + ! ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + !Else + ! ! Momentum Conservation x - direction: + ! If (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1) >= 0 ) Then + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! !2.5 - Velocities for node n5: + ! If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! EndIf + ! + ! ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + !EndIf + ! + ! + !! 2.6 - Velocities for node n7: + !nElem = bbElem + !Call pointInElem(nElem, dElem, xt, yt - MeshParam%dy/2, MeshParam) + ! + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! !u(7) == u(iEdge == 3, bbElem) + ! nElem = bbElem + ! uuNodeBT(7) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(3,bbElem)); vvNodeBT(7) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(3,bbElem)); wwNodeBT(7) = HydroParam%wfc(bbLayer,MeshParam%Edge(3,bbElem)); xxNodeBT(7) = xxNodeBT(3); yyNodeBT(7) = yyNodeBT(3) - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%H(MeshParam%Edge(3,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(3,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.7 - Velocities for node n6: + !If (nElem == dElem) Then + ! dElem = MeshParam%Right(MeshParam%Edge(3,dElem)) + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == dElem, this implies that dElem =/ 0 (condition checked in function pointInElem) + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! ! n6 == n7: + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7) - MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.8 - Velocities for node n8: + !nElem = bbElem + !Call pointInElem(nElem, uElem, xt, yt + MeshParam%dy/2, MeshParam) + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! !u(8) == u(iEdge == 1, bbElem) + ! nElem = bbElem + ! uuNodeBT(8) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(1,bbElem)); vvNodeBT(8) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(1,bbElem)); wwNodeBT(8) = HydroParam%wfc(bbLayer,MeshParam%Edge(1,bbElem)); xxNodeBT(8) = xxNodeBT(3); yyNodeBT(8) = yyNodeBT(3) + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%H(MeshParam%Edge(1,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(1,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!Energy conservation y-direction: + !If ((vvNode(3) - vvNode(6))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + ! + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! + ! !2.9 - Velocities for node n9: + ! If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! EndIf + ! + ! ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !Else + ! ! Momentum Conservation y - direction: + ! If (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6)>= 0) Then + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! !2.9 - Velocities for node n9: + ! If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! EndIf + ! + ! ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(9)*dzNode(9))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !EndIf + ! + !uuint = HydroParam%uArrow(iLayer,1,iEdge) + !vvint = HydroParam%uArrow(iLayer,2,iEdge) + !wwint = wwNodeBT(3) + ! + !return + !End Subroutine ELMConservative4 + ! + + + + + + + + !Subroutine ELMConservative3(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: uuint, vvint, wwint + !Integer :: rElem, uElem, dElem, lElem, nElem, ElFlag + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for node n3: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + ! + !!2.2 - Velocities for node n2: + !nElem = bbElem + !Call pointInElem(nElem, lElem, xt - MeshParam%dx/2, yt, MeshParam) + !! If nElem =/ lElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! nElem = bbElem + ! uuNodeBT(2) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(2,bbElem)); vvNodeBT(2) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(2,bbElem)); wwNodeBT(2) = HydroParam%wfc(bbLayer,MeshParam%Edge(2,bbElem)); xxNodeBT(2) = xxNodeBT(3); yyNodeBT(2) = yyNodeBT(3); zzNodeBT(2) = zt; hNodeBT(2) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.3 - Velocities for node n1: + !If (nElem == lElem) Then + ! lElem = MeshParam%Right(MeshParam%Edge(2,lElem)) + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! ! n1 == n2: + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2); yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.4 - Velocities for node n4: + !nElem = bbElem + !Call pointInElem(nElem, rElem, xt + MeshParam%dx/2, yt, MeshParam) + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! !n4 == n3: + ! !u(3) == u(iEdge==4,bbElem) + ! nElem = bbElem + ! uuNodeBT(4) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(4,bbElem)); vvNodeBT(4) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(4,bbElem)); wwNodeBT(4) = HydroParam%wfc(bbLayer,MeshParam%Edge(4,bbElem)); xxNodeBT(4) = xxNodeBT(3); yyNodeBT(4) = yyNodeBT(3); zzNodeBT(4) = zt; hNodeBT(4) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.5 - Velocities for node n5: + !If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4); yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.6 - Velocities for node n7: + !nElem = bbElem + !Call pointInElem(nElem, dElem, xt, yt - MeshParam%dy/2, MeshParam) + ! + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! !n7 == n3: + ! !u(7) == u(iEdge == 3, bbElem) + ! nElem = bbElem + ! uuNodeBT(7) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(3,bbElem)); vvNodeBT(7) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(3,bbElem)); wwNodeBT(7) = HydroParam%wfc(bbLayer,MeshParam%Edge(3,bbElem)); xxNodeBT(7) = xxNodeBT(3); yyNodeBT(7) = yyNodeBT(3); zzNodeBT(7) = zt; hNodeBT(7) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.7 - Velocities for node n6: + !If (nElem == dElem) Then + ! dElem = MeshParam%Right(MeshParam%Edge(3,dElem)) + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == dElem, this implies that dElem =/ 0 (condition checked in function pointInElem) + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! ! n6 == n7: + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7); zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.8 - Velocities for node n8: + !nElem = bbElem + !Call pointInElem(nElem, uElem, xt, yt + MeshParam%dy/2, MeshParam) + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! !n7 == n3: + ! !u(8) == u(iEdge == 1, bbElem) + ! nElem = bbElem + ! uuNodeBT(8) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(1,bbElem)); vvNodeBT(8) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(1,bbElem)); wwNodeBT(8) = HydroParam%wfc(bbLayer,MeshParam%Edge(1,bbElem)); xxNodeBT(8) = xxNodeBT(3); yyNodeBT(8) = yyNodeBT(3); zzNodeBT(8) = zt; hNodeBT(8) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.9 - Velocities for node n9: + !If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8); zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 3 - Characteristic Line End's Velocities by Conservative Scheme: + !Call ConservativeScheme(uuBtrack, vvBtrack, uuNodeBT(:), vvNodeBT(:), xxNodeBT(:), yyNodeBT(:), hNodeBT(:), dt, psi_flag, iLayer, iEdge, HydroParam, MeshParam) + ! + !uuint = uuBtrack + !vvint = vvBtrack + !wwint = wwNodeBT(3) + ! + !return + !End Subroutine ELMConservative3 + ! + + + + ! + !Subroutine ELMConservative2(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: uuint, vvint, wwint + !Integer :: rElem, uElem, dElem, lElem + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !!uuNodeBT(:) = 0.d0; vvNodeBT(:) = 0.d0; wwNodeBT(:) = 0.d0; xxNodeBT(:) = 0.d0; yyNodeBT(:) = 0.d0; zzNodeBT(:) = 0.d0; hNodeBT(:) = 0.d0 + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for nodes n2, n3, n4, n7 and n8: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + ! + !uuNodeBT(2) = Yuu(1); vvNodeBT(2) = Yvv(1); wwNodeBT(2) = Yww(1); xxNodeBT(2) = xxNode(1,1); yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%H(MeshParam%Edge(2,bbElem))-HydroParam%hj(MeshParam%Edge(2,bbElem)),0.d0) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + !uuNodeBT(4) = Yuu(3); vvNodeBT(4) = Yvv(3); wwNodeBT(4) = Yww(3); xxNodeBT(4) = xxNode(1,7); yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%H(MeshParam%Edge(4,bbElem))-HydroParam%hj(MeshParam%Edge(4,bbElem)),0.d0) + !uuNodeBT(7) = Xuu(1); vvNodeBT(7) = Xvv(1); wwNodeBT(7) = Xww(1); xxNodeBT(7) = xt; yyNodeBT(7) = yyNode(1,4); zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%H(MeshParam%Edge(3,bbElem))-HydroParam%hj(MeshParam%Edge(3,bbElem)),0.d0) + !uuNodeBT(8) = Xuu(3); vvNodeBT(8) = Xvv(3); wwNodeBT(8) = Xww(3); xxNodeBT(8) = xt; yyNodeBT(8) = yyNode(1,6); zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%H(MeshParam%Edge(1,bbElem))-HydroParam%hj(MeshParam%Edge(1,bbElem)),0.d0) + ! + !! 2.2 - Velocities for node n1: + !If(lElem == 0) Then + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2); yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + !ElseIf (bbLayer < HydroParam%ElSmallms(lElem)) Then + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2); yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), lElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Yuu(:), Yvv(:), Yww(:), Xuu(:), Xvv(:), Xww(:), xxNode(1,5), yt, zt) + ! uuNodeBT(1) = Yuu(2); vvNodeBT(1) = Yvv(2); wwNodeBT(1) = Yww(2); xxNodeBT(1) = xxNode(1,5); yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(lElem)-sum(HydroParam%DZsi(:,lElem)),0.d0) + !EndIf + ! + !! 2.3 - Velocities for node n5: + !If(rElem == 0) Then + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4); yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + !ElseIf(bbLayer < HydroParam%ElSmallms(rElem)) Then + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4); yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), rElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xxNode(1,5), yt, zt) + ! uuNodeBT(5) = Yuu(2); vvNodeBT(5) = Yvv(2); wwNodeBT(5) = Yww(2); xxNodeBT(5) = xxNode(1,5); yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = max(HydroParam%eta(rElem)-sum(HydroParam%DZsi(:,rElem)),0.d0) + !EndIf + ! + !! 2.4 - Velocities for node n6: + !If (dElem == 0) Then + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7); zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + !ElseIf (bbLayer < HydroParam%ElSmallms(dElem)) Then + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7); zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), dElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yyNode(1,5), zt) + ! uuNodeBT(6) = Xuu(2); vvNodeBT(6) = Xvv(2); wwNodeBT(6) = Xww(2); xxNodeBT(6) = xt; yyNodeBT(6) = yyNode(1,5); zzNodeBT(6) = zt; hNodeBT(6) = max(HydroParam%eta(dElem)-sum(HydroParam%DZsi(:,dElem)),0.d0) + !EndIf + ! + !! 2.5 - Velocities for node n9: + !If (uElem == 0) Then + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8); zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + !ElseIf (bbLayer < HydroParam%ElSmallms(uElem)) Then + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8); zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), uElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yyNode(1,5), zt) + ! uuNodeBT(9) = Xuu(2); vvNodeBT(9) = Xvv(2); wwNodeBT(9) = Xww(2); xxNodeBT(9) = xt; yyNodeBT(9) = yyNode(1,5); zzNodeBT(9) = zt; hNodeBT(9) = max(HydroParam%eta(uElem)-sum(HydroParam%DZsi(:,uElem)),0.d0) + !EndIf + ! + !! 3 - Characteristic Line End's Velocities by Conservative Scheme: + !Call ConservativeScheme(uuBtrack, vvBtrack, uuNodeBT(:), vvNodeBT(:), xxNodeBT(:), yyNodeBT(:), hNodeBT(:), dt, psi_flag, iLayer, iEdge, HydroParam, MeshParam) + ! + ! + !uuint = uuBtrack + !vvint = vvBtrack + !wwint = wwNodeBT(3) + ! + ! + !return + !End Subroutine ELMConservative2 + ! + ! + ! + !Subroutine ConservativeScheme(uuBtrack, vvBtrack, uuNode, vvNode, xxNode, yyNode, dzNode, dt, psi_flag, iLayer, iEdge, HydroParam, MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + ! + !Implicit None + ! + !Real, intent(in) :: uuNode(9), vvNode(9), xxNode(9), yyNode(9), dzNode(9), dt + !Real, intent(inout) :: uuBtrack, vvBtrack + !Real :: fi_small = 0.0d0 + !Real :: epsGrad = 10 !CAYO + !Real :: rj(2,4), psi(2,4), ru, soma + !Real :: Courant + !Integer :: psi_flag, iEdge, iLayer + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + !HydroParam%uArrow(iLayer,:,iEdge) = 0.d0 + !Courant = uuNode(3)*dt/MeshParam%CirDistance(iEdge) !7 - Super-C/ 8 - Ultimate-Quickest/ 9 - Hyper-C + ! + !if (iEdge==568) then + ! continue + !EndIf + ! + !!x - direction: + !If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(1) >= 0) Then + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! y-direction: + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !Else + ! ! x-direction: + ! If (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1) >= 0 ) Then + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + !! y-direction: + ! If (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6)>= 0) Then + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(9)*dzNode(9))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !EndIf + ! + ! + !If (HydroParam%uArrow(iLayer,1,iEdge)*dt/(xxNode(4)-xxNode(2)) <0 .or. HydroParam%uArrow(iLayer,2,iEdge)*dt/(yyNode(8)-yyNode(7)) <0) Then + ! soma = HydroParam%uArrow(iLayer,1,iEdge) + HydroParam%uArrow(iLayer,2,iEdge) + ! continue + !EndIf + !!HydroParam%uxyback(iLayer,1,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + !!HydroParam%uxyback(iLayer,2,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + !! + !!HydroParam%uxyback(iLayer,1,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/(xxNode(3)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/(xxNode(4)-xxNode(3)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/(yyNode(3)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/(yyNode(8)-yyNode(3))) + !!HydroParam%uxyback(iLayer,2,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/(xxNode(3)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/(xxNode(4)-xxNode(3)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/(yyNode(3)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/(yyNode(8)-yyNode(3))) + !! + ! + !uuBtrack = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + !vvBtrack = vvNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + ! + !!uuBtrack = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/(xxNode(4)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/(xxNode(4)-xxNode(2)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/(yyNode(8)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/(yyNode(8)-yyNode(7))) + !!vvBtrack = vvNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/(xxNode(4)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/(xxNode(4)-xxNode(2)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/(yyNode(8)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/(yyNode(8)-yyNode(7))) + !! + !End Subroutine ConservativeScheme + ! + + ! + !Subroutine iQuadraticNodes(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, bbElem, bbLayer, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Integer, intent(in) :: bbElem, bbLayer + !Real, intent(inout) :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: Nodes(9) + !Integer :: n1, n2, n3, n4, n5, n6, n7, n8, n9 + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !!iQuadratic Interpolation Nodes in bbLayer from bbElem + !! For nodes positions in the vector, the Standard is this: + !! n6 + !! n3 .--.--. n9 + !! | | + !! n2 . . . n8 + !! | n5 | + !! n1 .--.--. n7 + !! n4 + !n1 = MeshParam%Quadri(3,bbElem) + 1 + !n2 = MeshParam%Edge(2,bbElem) + !n3 = MeshParam%Quadri(2,bbElem) + 1 + !n4 = MeshParam%Edge(3,bbElem) + !n5 = bbElem + !n6 = MeshParam%Edge(1,bbElem) + !n7 = MeshParam%Quadri(4,bbElem) + 1 + !n8 = MeshParam%Edge(4,bbElem) + !n9 = MeshParam%Quadri(1,bbElem) + 1 + !Nodes(1:9)= (/n1, n2, n3, n4, n5, n6, n7, n8, n9 /) + !! Velocities by vertical section and by layers, in bottom to top (k-1/2 to k + 1/2). See Figure 3 in [2]): + !! Vertical 1 = West Edge + !! uuNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + !uuNode(1,1)=HydroParam%uNode(bbLayer,1,Nodes(1)); vvNode(1,1)=HydroParam%uNode(bbLayer,2,Nodes(1)); wwNode(1,1)=HydroParam%uNode(bbLayer,3,Nodes(1)) + !uuNode(1,2)=HydroParam%ug(Nodes(2),bbLayer); vvNode(1,2)=HydroParam%vg(Nodes(2),bbLayer); wwNode(1,2)=HydroParam%wg(Nodes(2),bbLayer) + !uuNode(1,3)=HydroParam%uNode(bbLayer,1,Nodes(3)); vvNode(1,3)=HydroParam%uNode(bbLayer,2,Nodes(3)); wwNode(1,3)=HydroParam%uNode(bbLayer,3,Nodes(3)) + !uuNode(2,1)=HydroParam%ubV(bbLayer,1,Nodes(1)); vvNode(2,1)=HydroParam%ubV(bbLayer,2,Nodes(1)); wwNode(2,1)=HydroParam%ubV(bbLayer,3,Nodes(1)) + !uuNode(2,2)=HydroParam%uxy(bbLayer,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(bbLayer,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(bbLayer,Nodes(2)) + !uuNode(2,3)=HydroParam%ubV(bbLayer,1,Nodes(3)); vvNode(2,3)=HydroParam%ubV(bbLayer,2,Nodes(3)); wwNode(2,3)=HydroParam%ubV(bbLayer,3,Nodes(3)) + !uuNode(3,1)=HydroParam%uNode(bbLayer+1,1,Nodes(1)); vvNode(3,1)=HydroParam%uNode(bbLayer+1,2,Nodes(1)); wwNode(3,1)=HydroParam%uNode(bbLayer+1,3,Nodes(1)) + !uuNode(3,2)=HydroParam%ug(Nodes(2),bbLayer+1); vvNode(3,2)=HydroParam%vg(Nodes(2),bbLayer+1); wwNode(3,2)=HydroParam%wg(Nodes(2),bbLayer+1) + !uuNode(3,3)=HydroParam%uNode(bbLayer+1,1,Nodes(3)); vvNode(3,3)=HydroParam%uNode(bbLayer+1,2,Nodes(3)); wwNode(3,3)=HydroParam%uNode(bbLayer+1,3,Nodes(3)) + !! Vertical 2 = Cell Centered Section + !uuNode(1,4)=HydroParam%ug(Nodes(4),bbLayer); vvNode(1,4)=HydroParam%vg(Nodes(4),bbLayer); wwNode(1,4)=HydroParam%wg(Nodes(4),bbLayer) + !uuNode(1,5)=HydroParam%uxyL(bbLayer,1,Nodes(5)); vvNode(1,5)=HydroParam%uxyL(bbLayer,2,Nodes(5)); wwNode(1,5)=HydroParam%w(bbLayer,Nodes(5)) + !uuNode(1,6)=HydroParam%ug(Nodes(6),bbLayer); vvNode(1,6)=HydroParam%vg(Nodes(6),bbLayer); wwNode(1,6)=HydroParam%wg(Nodes(6),bbLayer) + !uuNode(2,4)=HydroParam%uxy(bbLayer,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(bbLayer,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(bbLayer,Nodes(4)) + !uuNode(2,5)=HydroParam%ub(bbLayer,1,Nodes(5)); vvNode(2,5)=HydroParam%ub(bbLayer,2,Nodes(5)); wwNode(2,5)=HydroParam%ub(bbLayer,3,Nodes(5)) + !uuNode(2,6)=HydroParam%uxy(bbLayer,1,Nodes(6)); vvNode(2,6)=HydroParam%uxy(bbLayer,2,Nodes(6)); wwNode(2,6)=HydroParam%wfc(bbLayer,Nodes(6)) + !uuNode(3,4)=HydroParam%ug(Nodes(4),bbLayer+1); vvNode(3,4)=HydroParam%vg(Nodes(4),bbLayer+1); wwNode(3,4)=HydroParam%wg(Nodes(4),bbLayer+1) + !uuNode(3,5)=HydroParam%uxyL(bbLayer+1,1,Nodes(5)); vvNode(3,5)=HydroParam%uxyL(bbLayer+1,2,Nodes(5)); wwNode(3,5)=HydroParam%w(bbLayer+1,Nodes(5)) + !uuNode(3,6)=HydroParam%ug(Nodes(6),bbLayer+1); vvNode(3,6)=HydroParam%vg(Nodes(6),bbLayer+1); wwNode(3,6)=HydroParam%wg(Nodes(6),bbLayer+1) + !! Vertical 3 = East Edge + !uuNode(1,7)=HydroParam%uNode(bbLayer,1,Nodes(7)); vvNode(1,7)=HydroParam%uNode(bbLayer,2,Nodes(7)); wwNode(1,7)=HydroParam%uNode(bbLayer,3,Nodes(7)) + !uuNode(1,8)=HydroParam%ug(Nodes(8),bbLayer); vvNode(1,8)=HydroParam%vg(Nodes(8),bbLayer); wwNode(1,8)=HydroParam%wg(Nodes(8),bbLayer) + !uuNode(1,9)=HydroParam%uNode(bbLayer,1,Nodes(9)); vvNode(1,9)=HydroParam%uNode(bbLayer,2,Nodes(9)); wwNode(1,9)=HydroParam%uNode(bbLayer,3,Nodes(9)) + !uuNode(2,7)=HydroParam%ubV(bbLayer,1,Nodes(7)); vvNode(2,7)=HydroParam%ubV(bbLayer,2,Nodes(7)); wwNode(2,7)=HydroParam%ubV(bbLayer,3,Nodes(7)) + !uuNode(2,8)=HydroParam%uxy(bbLayer,1,Nodes(8)); vvNode(2,8)=HydroParam%uxy(bbLayer,2,Nodes(8)); wwNode(2,8)=HydroParam%wfc(bbLayer,Nodes(8)) + !uuNode(2,9)=HydroParam%ubV(bbLayer,1,Nodes(9)); vvNode(2,9)=HydroParam%ubV(bbLayer,2,Nodes(9)); wwNode(2,9)=HydroParam%ubV(bbLayer,3,Nodes(9)) + !uuNode(3,7)=HydroParam%uNode(bbLayer+1,1,Nodes(7)); vvNode(3,7)=HydroParam%uNode(bbLayer+1,2,Nodes(7)); wwNode(3,7)=HydroParam%uNode(bbLayer+1,3,Nodes(7)) + !uuNode(3,8)=HydroParam%ug(Nodes(8),bbLayer+1); vvNode(3,8)=HydroParam%vg(Nodes(8),bbLayer+1); wwNode(3,8)=HydroParam%wg(Nodes(8),bbLayer+1) + !uuNode(3,9)=HydroParam%uNode(bbLayer+1,1,Nodes(9)); vvNode(3,9)=HydroParam%uNode(bbLayer+1,2,Nodes(9)); wwNode(3,9)=HydroParam%uNode(bbLayer+1,3,Nodes(9)) + !! + !!If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + !! !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + !! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(1)))*0.5d0 + !! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0 + !! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(3)))*0.5d0 + !! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + !! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + !! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + !! + !! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0 + !! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%eta(Nodes(5)))*0.5d0 + !! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0 + !! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + !! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + !! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + !! + !! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(7)))*0.5d0 + !! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0 + !! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(9)))*0.5d0 + !! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + !! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + !! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + !!Else + !! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + !! + !! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + !! + !! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + !!EndIf + ! + !If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + ! !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(1)))*0.5d0 + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0 + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(3)))*0.5d0 + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0 + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%eta(Nodes(5)))*0.5d0 + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0 + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(7)))*0.5d0 + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0 + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(9)))*0.5d0 + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + !Else + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + !EndIf + ! + !return + !End Subroutine iQuadraticNodes + + ! + ! + !Subroutine ELMConservative(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Integer :: rElem, uElem, dElem, lElem, nElem, ElFlag + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + !Real :: fi_small = 0.0d0 + !Real :: epsGrad = 5 !CAYO + ! + !HydroParam%uArrow(iLayer,:,iEdge) = 0.d0 + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for node n3: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + ! + !! X - Direction: + !!2.2 - Velocities for node n2: + !nElem = bbElem + !Call pointInElem(nElem, lElem, xt - MeshParam%dx/2, yt, MeshParam) + !! If nElem =/ lElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! !u(2) == u(iEdge==2,bbElem) + ! nElem = bbElem + ! uuNodeBT(2) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(2,bbElem)); vvNodeBT(2) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(2,bbElem)); wwNodeBT(2) = HydroParam%wfc(bbLayer,MeshParam%Edge(2,bbElem)); xxNodeBT(2) = xxNodeBT(3) - MeshParam%dx/2; yyNodeBT(2) = yyNodeBT(3); zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%H(MeshParam%Edge(2,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(2,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.3 - Velocities for node n1: + !If (nElem == lElem) Then + ! lElem = MeshParam%Right(MeshParam%Edge(2,lElem)) + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! ! n1 == n2: + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2) - MeshParam%dx/2; yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.4 - Velocities for node n4: + !nElem = bbElem + !Call pointInElem(nElem, rElem, xt + MeshParam%dx/2, yt, MeshParam) + !if (nElem == 190 .or. nElem ==191)Then + ! continue + !endif + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! !u(4) == u(iEdge==4,bbElem) + ! nElem = bbElem + ! uuNodeBT(4) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(4,bbElem)); vvNodeBT(4) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(4,bbElem)); wwNodeBT(4) = HydroParam%wfc(bbLayer,MeshParam%Edge(4,bbElem)); xxNodeBT(4) = xxNodeBT(3) + MeshParam%dx/2; yyNodeBT(4) = yyNodeBT(3); zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%H(MeshParam%Edge(4,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(4,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!Energy conservation x - direction: + !If ((uuNodeBT(3) - uuNodeBT(1))/MeshParam%dx > epsGrad > 0) Then + ! uuBtrack0 = uuBtrack1 + ! HydroParam%uArrow(iLayer,1,iEdge) = uuNodeBT(3) + ! ! + ! !If (uuNodeBT(3) + uuNodeBT(1) >= 0) Then + ! ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNodeBT(3) + uuNodeBT(1)) + ! !Else + ! ! !2.5 - Velocities for node n5: + ! ! If (nElem == rElem) Then + ! ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! ! Else + ! ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! ! EndIf + ! ! + ! ! ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + ! ! If (nElem == rElem) Then + ! ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! ! n5 == n4: + ! ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! ! Else + ! ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! ! EndIf + ! ! Else + ! ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! ! EndIf + ! ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNodeBT(3) + uuNodeBT(5)) + ! !EndIf + !Else + ! ! Momentum Conservation x - direction: + ! If (uuNodeBT(3)*hNodeBT(3) + uuNodeBT(1)*hNodeBT(1) >= 0 ) Then + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNodeBT(3)*hNodeBT(3) + uuNodeBT(1)*hNodeBT(1))/(hNodeBT(4) + hNodeBT(2)) + ! Else + ! !2.5 - Velocities for node n5: + ! If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! EndIf + ! + ! if (nElem == 190 .or. nElem ==191)Then + ! continue + ! endif + ! + ! ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNodeBT(3)*hNodeBT(3) + uuNodeBT(5)*hNodeBT(5))/(hNodeBT(4) + hNodeBT(2)) + ! EndIf + ! uuBtrack0 = HydroParam%uArrow(iLayer,1,iEdge) + !EndIf + ! + !! Y - Direction: + !! 2.6 - Velocities for node n7: + !nElem = bbElem + !Call pointInElem(nElem, dElem, xt, yt - MeshParam%dy/2, MeshParam) + ! + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! !u(7) == u(iEdge == 3, bbElem) + ! nElem = bbElem + ! uuNodeBT(7) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(3,bbElem)); vvNodeBT(7) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(3,bbElem)); wwNodeBT(7) = HydroParam%wfc(bbLayer,MeshParam%Edge(3,bbElem)); xxNodeBT(7) = xxNodeBT(3); yyNodeBT(7) = yyNodeBT(3) - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%H(MeshParam%Edge(3,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(3,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.7 - Velocities for node n6: + !If (nElem == dElem) Then + ! dElem = MeshParam%Right(MeshParam%Edge(3,dElem)) + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == dElem, this implies that dElem =/ 0 (condition checked in function pointInElem) + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! ! n6 == n7: + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7) - MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.8 - Velocities for node n8: + !nElem = bbElem + !Call pointInElem(nElem, uElem, xt, yt + MeshParam%dy/2, MeshParam) + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! !u(8) == u(iEdge == 1, bbElem) + ! nElem = bbElem + ! uuNodeBT(8) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(1,bbElem)); vvNodeBT(8) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(1,bbElem)); wwNodeBT(8) = HydroParam%wfc(bbLayer,MeshParam%Edge(1,bbElem)); xxNodeBT(8) = xxNodeBT(3); yyNodeBT(8) = yyNodeBT(3) + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%H(MeshParam%Edge(1,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(1,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!Energy conservation y-direction: + !If ((vvNodeBT(3) - vvNodeBT(6))/MeshParam%dy > epsGrad > 0) Then + ! vvBtrack0 = vvBtrack1 + ! HydroParam%uArrow(iLayer,2,iEdge) = vvNodeBT(3) + ! ! + ! !If (vvNodeBT(3) + vvNodeBT(6) >= 0) Then + ! ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNodeBT(3) + vvNodeBT(6)) + ! !Else + ! ! + ! ! !2.9 - Velocities for node n9: + ! ! If (nElem == uElem) Then + ! ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! ! Else + ! ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! ! EndIf + ! ! + ! ! ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + ! ! If (nElem == uElem) Then + ! ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! ! n9 == n8: + ! ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! ! Else + ! ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! ! EndIf + ! ! Else + ! ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! ! EndIf + ! ! + ! ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNodeBT(3) + vvNodeBT(9)) + ! ! + ! !EndIf + !Else + ! ! Momentum Conservation y - direction: + ! If (vvNodeBT(3)*hNodeBT(3) + vvNodeBT(6)*hNodeBT(6)>= 0) Then + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNodeBT(3)*hNodeBT(3) + vvNodeBT(6)*hNodeBT(6))/(hNodeBT(8) + hNodeBT(7)) + ! + ! Else + ! !2.9 - Velocities for node n9: + ! If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! EndIf + ! + ! ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNodeBT(3)*hNodeBT(3) + vvNodeBT(9)*hNodeBT(9))/(hNodeBT(8) + hNodeBT(7)) + ! EndIf + ! vvBtrack0 = HydroParam%uArrow(iLayer,2,iEdge) + !EndIf + ! + !uuBtrack = HydroParam%uArrow(iLayer,1,iEdge) + !vvBtrack = HydroParam%uArrow(iLayer,2,iEdge) + !wwBtrack = wwNodeBT(3) + !wwBtrack0 = wwBtrack + ! + !return + !End Subroutine ELMConservative + + + + + !hnode(1,1) = zzNode(3,1); hnode(1,4) = zzNode(3,4); hnode(1,7) = zzNode(3,7) + !hnode(2,1) = zzNode(3,1); hnode(2,4) = zzNode(3,4); hnode(2,7) = zzNode(3,7) + !hnode(3,1) = zzNode(3,1); hnode(3,4) = zzNode(3,4); hnode(3,7) = zzNode(3,7) + !hnode(1,2) = zzNode(3,2); hnode(1,5) = zzNode(3,5); hnode(1,8) = zzNode(3,8) + !hnode(2,2) = zzNode(3,2); hnode(2,5) = zzNode(3,5); hnode(2,8) = zzNode(3,8) + !hnode(3,2) = zzNode(3,2); hnode(3,5) = zzNode(3,5); hnode(3,8) = zzNode(3,8) + !hnode(1,3) = zzNode(3,3); hnode(1,6) = zzNode(3,6); hnode(1,9) = zzNode(3,9) + !hnode(2,3) = zzNode(3,3); hnode(2,6) = zzNode(3,6); hnode(1,9) = zzNode(3,9) + !hnode(3,3) = zzNode(3,3); hnode(3,6) = zzNode(3,6); hnode(1,9) = zzNode(3,9) + + + ! Subroutine iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN, Xuu, Xvv, Xww, Yuu, Yvv, Yww, xp, yp, zp ) + !!( uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) ) + ! + !Implicit None + ! + !Real, intent(in) :: uuN(3,9), vvN(3,9), wwN(3,9), xxN(3,9), yyN(3,9), zzN(3,9), xp, yp, zp + !Real, intent(inout) :: uuBtrack, vvBtrack, wwBtrack, Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: LZ(3,9), LY(3,3), LX(3,3), bLX(3), Zuu(9), Zvv(9), Zww(9), bXuu, bXvv, bXww, P1, P2, soma + !Integer:: m, iNode, iTimes, cont,idelta + ! + ! + !!1. Interpolatting in Z direction 9 times, one for each node. (e.g. Hodges, 2000) + !!1.1. - find the Lagrange coefficient formula + !!for vertical interpolations + !Do iNode=1,9 + ! Do m=1,3 + ! if (m==1) then + ! P1 = ((zp-zzN(2,iNode))/(zzN(1,iNode)-zzN(2,iNode))) + ! P2 = ((zp-zzN(3,iNode))/(zzN(1,iNode)-zzN(3,iNode))) + ! elseif (m==2) then + ! P1 = ((zp-zzN(1,iNode))/(zzN(2,iNode)-zzN(1,iNode))) + ! P2 = ((zp-zzN(3,iNode))/(zzN(2,iNode)-zzN(3,iNode))) + ! else + ! P1 = ((zp-zzN(1,iNode))/(zzN(m,iNode)-zzN(1,iNode))) + ! P2 = ((zp-zzN(2,iNode))/(zzN(m,iNode)-zzN(2,iNode))) + ! Endif + ! LZ(m,iNode)=P1*P2 + ! EndDo + ! soma = LZ(1,iNode)+LZ(2,iNode)+LZ(3,iNode) + ! if (isnan(P1).or.isnan(P2)) then + ! continue + ! endif + ! + !EndDo + !!1.2. - Interpolating velocties (u, v, w) to the btrack particle cota + !Do iNode=1,9 + ! Zuu(iNode) = LZ(1,iNode)*uuN(1,iNode)+LZ(2,iNode)*uuN(2,iNode)+LZ(3,iNode)*uuN(3,iNode) + ! Zvv(iNode) = LZ(1,iNode)*vvN(1,iNode)+LZ(2,iNode)*vvN(2,iNode)+LZ(3,iNode)*vvN(3,iNode) + ! Zww(iNode) = LZ(1,iNode)*wwN(1,iNode)+LZ(2,iNode)*wwN(2,iNode)+LZ(3,iNode)*wwN(3,iNode) + !EndDo + !!2. Interpolate in Y direction 3 times + !!2.1. - find the Lagrange coefficient formula + !cont=0 + !Do iNode=1,7,3 + ! cont=cont+1 + ! Do m=1,3 + ! if (m==1) then + ! P1 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode)-yyN(1,iNode+1))) + ! P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode)-yyN(1,iNode+2))) + ! elseif (m==2) then + ! P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+1)-yyN(1,iNode))) + ! P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode+1)-yyN(1,iNode+2))) + ! else + ! P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+2)-yyN(1,iNode))) + ! P2 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode+2)-yyN(1,iNode+1))) + ! Endif + ! LY(m,cont)=P1*P2 + ! EndDo + ! soma = LY(1,cont)+LY(2,cont)+LY(3,cont) + ! if (isnan(P1).or.isnan(P2)) then + ! continue + ! endif + !EndDo + !!2.2. - Interpolating velocties (u, v, w) to the btrack particle yt + !cont=0 + !Do iNode=1,7,3 + ! cont=cont+1 + ! Yuu(cont) = LY(1,cont)*Zuu(iNode)+LY(2,cont)*Zuu(iNode+1)+LY(3,cont)*Zuu(iNode+2) + ! Yvv(cont) = LY(1,cont)*Zvv(iNode)+LY(2,cont)*Zvv(iNode+1)+LY(3,cont)*Zvv(iNode+2) + ! Yww(cont) = LY(1,cont)*Zww(iNode)+LY(2,cont)*Zww(iNode+1)+LY(3,cont)*Zww(iNode+2) + !EndDo + ! + !!3 - Interpolating in x-direction 3 times: + !!3.1 - Find Lagrange Coefficients: + !idelta = 3 + !cont = 0 + !Do iNode=1,3 + ! cont=cont+1 + ! LX(1,cont) = (xp - xxN(1,iNode + idelta))/(xxN(1,iNode) - xxN(1,iNode + idelta))*(xp - xxN(1,iNode + 2*idelta))/( xxN(1,iNode) - xxN(1,iNode + 2*idelta)) + ! LX(2,cont) = (xp - xxN(1,iNode))/(xxN(1,iNode + idelta) - xxN(1,iNode))*(xp - xxN(1,iNode + 2*idelta))/(xxN(1,iNode + idelta) - xxN(1,iNode + 2*idelta)) + ! LX(3,cont) = (xp - xxN(1,iNode))/(xxN(1,iNode + 2*idelta) - xxN(1,iNode))*(xp - xxN(1,iNode + idelta))/(xxN(1,iNode + 2*idelta) - xxN(1,iNode + idelta)) + ! soma = LX(1,cont)+LX(2,cont)+LX(3,cont) + ! If (isnan(LX(1,cont)).or.isnan(LX(2,cont)).or.isnan(LX(2,cont))) Then + ! continue + ! EndIf + !EndDo + !!3.2. - Interpolating velocties (u, v, w) to the btrack particle xt + !cont=0 + !Do iNode=1,3 + ! cont=cont+1 + ! Xuu(cont) = LX(1,cont)*Zuu(iNode)+LX(2,cont)*Zuu(iNode+idelta)+LX(3,cont)*Zuu(iNode+2*idelta) + ! Xvv(cont) = LX(1,cont)*Zvv(iNode)+LX(2,cont)*Zvv(iNode+idelta)+LX(3,cont)*Zvv(iNode+2*idelta) + ! Xww(cont) = LX(1,cont)*Zww(iNode)+LX(2,cont)*Zww(iNode+idelta)+LX(3,cont)*Zww(iNode+2*idelta) + !EndDo + ! + !!4. Interpolate in X direction one times + !!4.1. - find the Lagrange coefficient formula + !Do m=1,3 + ! if (m==1) then + ! P1 = ((xp-xxN(1,4))/(xxN(1,1)-xxN(1,4))) + ! P2 = ((xp-xxN(1,7))/(xxN(1,1)-xxN(1,7))) + ! elseif (m==2) then + ! P1 = ((xp-xxN(1,1))/(xxN(1,4)-xxN(1,1))) + ! P2 = ((xp-xxN(1,7))/(xxN(1,4)-xxN(1,7))) + ! else + ! P1 = ((xp-xxN(1,1))/(xxN(1,7)-xxN(1,1))) + ! P2 = ((xp-xxN(1,4))/(xxN(1,7)-xxN(1,4))) + ! Endif + ! bLX(m) = P1*P2 + !EndDo + !soma = bLX(1)+bLX(2)+bLX(3) + !if (isnan(P1).or.isnan(P2)) then + ! continue + !endif + !!4.2. - Interpolating velocties (u, v, w) to the btrack particle xt + !bXuu = bLx(1)*Yuu(1)+bLx(2)*Yuu(2)+bLx(3)*Yuu(3) + !bXvv = bLx(1)*Yvv(1)+bLx(2)*Yvv(2)+bLx(3)*Yvv(3) + !bXww = bLx(1)*Yww(1)+bLx(2)*Yww(2)+bLx(3)*Yww(3) + ! + !!5. Setting the Btrack velocities + !uuBtrack = bXuu + !vvBtrack = bXvv + !wwBtrack = bXww + ! + !Return + !End Subroutine iQuadraticCons \ No newline at end of file diff --git a/ELMConservative.f90 b/ELMConservative.f90 new file mode 100644 index 0000000..0685fed --- /dev/null +++ b/ELMConservative.f90 @@ -0,0 +1,6035 @@ +!>\brief Routines related to the Eulerian-Lagragean Method (FU, FV and FW) of TRIM model - Casulli +!>\details +! References: +! [1] +! [2] Cunha, A.H.F.; Fragoso, C.R.; Tavares, M.H.; Cavalcanti, J.R.; Bonnet, M.-P.; Motta-Marques, D. Combined Use of High-Resolution Numerical +! Schemes to Reduce Numerical Diffusion in Coupled Nonhydrostatic Hydrodynamic and Solute Transport Model. Water 2019, 11, 2288. +!>\author Carlos Ruberto Fragoso and Rafael Cavalcanti + Module ELMConservative + + private + public:: FuFvConservative + public:: signa + !----------------------------------------------------------------- + Contains + + !> Main subroutine of Eulerian-Lagragean Method + !>\return Fu, Fv and Fw the resultant vectors for each edge + !>\author Carlos Ruberto Fragoso + !>\attention List of Modifications: \n + !> - 15.09.2015: Routine Implementation (Carlos Ruberto Fragoso) + + Subroutine FuFvConservative(HydroParam,MeshParam,dt) + + Use MeshVars !, Only: Left,Right,nElem,nEdge,EdgeBary,NormalVector,TangentVector,Edge,EdgeLength,Quadri,xNode,yNode,Area,xb,yb,nNode,Kmax,nEgdesatNode,EgdesatNode + Use Hydrodynamic !, Only: Smallm,CapitalM,Z,u,utang,Fu,Fv,H,Pcri,w,Nfut,uxy,uxyback,ElSmallm,ElCapitalM,lat,OMEGA,Pi,Wu,HorViscosity,Fub,FuxyNode + !Use SimulationModel + + Implicit None + Integer:: iElem,iEdge,lEdge,iLayer,jlev,l,r,nnel,ndels,Sig,Face,n1,n2,n3,n4,iNode,icount,j,fac,kin,TrajectoryFlag,FuFw_flag,jump,psi_flag,ntals, iFace, ndelt,iEdge0 + Real::x0,y0,z0,xt,yt,zt,uuint,vvint,wwint,wdown,wup,vmag,dtb,aa(4),weit + Real:: NearZero = 1e-10 + Real::dt, tal + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + psi_flag = 4 + + + ! 1.1 Find out uxy velocities components, that are equivalents to normal and tangencial velocities components in particle position after + ! the backtrack process: + + Do iElem = 1, MeshParam%nElem + Do iEdge0 = 1,4 + + iFace = iEdge0 + iEdge = MeshParam%Edge(iEdge0,iElem) + + if (iEdge==650.or.iEdge==699.or.iEdge==595.or.iEdge==588.or.iEdge==540) Then + continue + EndIf + !Get right/left iElements that share iEdge + l = MeshParam%Left(iEdge) + r = MeshParam%Right(iEdge) + + ! In the case that Cell is dry, the backtrack tang velocities is null. + ! Note that in subsurface coupled case %H(iEdge) can take the freatic water level in Cell. + ! DZsj represents the Edge freatic component thickness, thus H - DZsj is equivalent only surface water level + ! In Cell where no subsufarce layer exist or in only surface flow simulation DZsj is set equal 0.0d0 (ReadHydroIniCond Module) + If (HydroParam%H(iEdge) + HydroParam%sj(iEdge)-HydroParam%hj(iEdge)<=HydroParam%Pcri+NearZero) Then !CAYO + Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ 0., 0. /) + EndDo + Cycle + EndIf + + ! In the case that Cell is Wet: + Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + + ! The particle is set in iEdge barycenter (x0,y0,z0) on Left side Element (nnel): + nnel = l + jlev = iLayer + x0 = MeshParam%EdgeBary(1,iEdge) + y0 = MeshParam%EdgeBary(2,iEdge) + z0 = 0.5d0*(HydroParam%Z(iLayer+1,iEdge) + HydroParam%Z(iLayer,iEdge) + sum(HydroParam%DZsj(:,iEdge))) + + ! Velocities in the initial position: + uuint = HydroParam%uxy(iLayer,1,iEdge) + vvint = HydroParam%uxy(iLayer,2,iEdge) + wwint = HydroParam%wfc(iLayer,iEdge) + + ! Velocity magnitude: + vmag = dsqrt(uuint**2+vvint**2+wwint**2) + + ! In cases that the velocity magnitude in layer is very low or the iEdge no has neighbour Element (r==0), the backtracking + ! velocity in layer is set equal the iEdge: + If(vmag.le.1.e-6) Then ! No activity + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) + Else + ! Else, the backtracking process is initialized: + + If (r==0) Then !.and.HydroParam%u(iLayer,iEdge)>0 !CAYO Verificar essa condi��o comentada + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) + Else + If (iLayer < Hydroparam%ElSmallm(r)) then + HydroParam%uxyback(iLayer,1,iEdge) = uuint + HydroParam%uxyback(iLayer,2,iEdge) = vvint + Else + ! If TrajectoryFlag == 0 System Defined Intervals to Integrate Particle Trajectory, + ! else User Defined Intervals to Integrate Particle Trajectory. + TrajectoryFlag = 0 + ! Find the Local Time Step (dtb) to Integrate Trajectory: + If ( TrajectoryFlag == 0 ) Then ! System Calculation - [7,8] + dtb = MinVal(MeshParam%InCircle)/vmag ! ( InCircle(lElem)/Sqrt( Veloc(1)**2. + Veloc(2)**2. ), InCircle(r)/Sqrt( Veloc(1)**2. + Veloc(2)**2. ) ) + ndels = Max(Floor(dt/dtb),HydroParam%NFUT) + dtb = dt/ndels + ElseIf ( TrajectoryFlag == 1 ) Then + ndels = HydroParam%NFUT + dtb = dt/ndels + EndIf + + Call btrackConservative(ndelt,dtb,dt,uuint,vvint, wwint, x0,y0,z0,& + &xt, yt, zt, nnel, jlev, iFace, HydroParam, MeshParam, iLayer, iEdge) + + HydroParam%uxyback(iLayer,1:2,iEdge) = (/ uuint, vvint /) + EndIf + EndIf + Endif + + EndDo + EndDo + EndDo + + !If (HydroParam%iNonHydro==0.and.MeshParam%Kmax>1) Then + ! Call ComputeFW(MeshParam,HydroParam,dt) + !EndIf + + !Explicit terms + + Do iEdge=1,MeshParam%nEdge + l = MeshParam%Left(iEdge) + r = MeshParam%Right(iEdge) + Do lEdge=1,4 + If (MeshParam%Edge(lEdge,l)==iEdge) Then + Exit + EndIf + EndDo + !jump=0 + !do Face = 1,4 + ! If the face has a boundary condition: + If (HydroParam%IndexInflowEdge(iEdge)>0.or.HydroParam%IndexWaterLevelEdge(iEdge)>0) then + HydroParam%Fu(:,iEdge)=HydroParam%u(:,iEdge) + cycle + EndIf + !enddo + !if (jump==1) then + ! cycle + !endif + + !MeshParam%Neighbor(:,l) + Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + If (r==0) Then !Velocity in lateral boundaries is equal to cell center velocity + HydroParam%Fu(iLayer,iEdge) = HydroParam%u(iLayer,iEdge) !Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%Fub(iLayer,1,l))*MeshParam%NormalVector(1,lEdge,l) + Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*(HydroParam%Fub(iLayer,2,l))*MeshParam%NormalVector(2,lEdge,l) + Else + if (iLayer < HydroParam%ElSmallm(r)) Then + HydroParam%Fu(iLayer,iEdge) = HydroParam%u(iLayer,iEdge) + else + HydroParam%Fu(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%NormalVector(1,lEdge,l) + Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%NormalVector(2,lEdge,l) + !HydroParam%Fu(iLayer,iEdge) = Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,1,iEdge)*MeshParam%NormalVector(1,lEdge,l) + (Sig(l,MeshParam%Right(iEdge),MeshParam%Left(iEdge))*HydroParam%uxyback(iLayer,2,iEdge)*MeshParam%NormalVector(2,lEdge,l)*dt)*((HydroParam%uxyback(iLayer,2,iEdge-3)-2*HydroParam%uxyback(iLayer,2,iEdge)+HydroParam%uxyback(iLayer,2,iEdge+3))/MeshParam%EdgeLength(iEdge)) + endif + EndIf + + EndDo + EndDo + + HydroParam%FuxyNode = 0. + Do iNode=1,MeshParam%nNode + Do iLayer = 1,MeshParam%Kmax + weit=0 + icount=0 + + Do j=1,MeshParam%nEgdesatNode(iNode) + Face = MeshParam%EgdesatNode(j,iNode) + l = MeshParam%Left(Face) + r = MeshParam%Right(Face) + If (r==0) Then + fac=2 + Else + fac=1 + EndIf + If(iLayer>=HydroParam%Smallm(Face)) Then + kin=min(iLayer,HydroParam%CapitalM(Face)) + HydroParam%FuxyNode(kin,1,iNode)=HydroParam%FuxyNode(kin,1,iNode)+HydroParam%uxyback(kin,1,Face)/MeshParam%EdgeLength(Face)*fac + HydroParam%FuxyNode(kin,2,iNode)=HydroParam%FuxyNode(kin,2,iNode)+HydroParam%uxyback(kin,2,Face)/MeshParam%EdgeLength(Face)*fac + icount=icount+1 + EndIf + weit=weit+fac/MeshParam%EdgeLength(Face) + EndDo + If(icount.ne.0) Then + HydroParam%FuxyNode(iLayer,1,iNode) = HydroParam%FuxyNode(iLayer,1,iNode)/weit + HydroParam%FuxyNode(iLayer,2,iNode) = HydroParam%FuxyNode(iLayer,2,iNode)/weit + EndIf + + EndDo + EndDo + + Return + End Subroutine FuFvConservative + + + Subroutine btrackConservative(ndelt,dtb,dt,uuint,vvint, wwint, x0,y0,z0,& + &xt, yt, zt, nnel, jlev, iFace, HydroParam, MeshParam, iLayer0, iEdge0) + + !> Routine for backtracking. + + Use MeshVars !, Only: Quadri,EdgeDef,xNode,yNode,Area,Edge,EdgeNodes,EdgeBary,Left,Right + Use Hydrodynamic !, Only: Smallm,ElSmallm,ElCapitalM,CapitalM,Z,DZj,Ze,DZi,uNode,uxy,Ze,DZi,w + + Implicit none + + Real, intent(inout) :: dtb, dt, uuint, vvint, wwint, x0, y0, z0, xt, yt, zt + Integer, intent(inout) :: ndelt, nnel, jlev, iEdge0, iFace + Integer :: iLayer0, nel_j + Real :: epsGrad, hhint, dtin + Real, parameter :: small1=1e-6 + Real :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), zzNode(5), dzNode(9), hhNode(9) + Real :: uuNodeBTR(3,9), vvNodeBTR(3,9), wwNodeBTR(3,9), xxNodeBTR(3,9), yyNodeBTR(3,9), zzNodeBTR(3,9), hhNodeBTR(3,9) + Real:: NearZero = 1e-10 !< Small Number + Real:: tal, timeAcum, id0, vmag + Integer :: jjlev, nnel0, l, r, iflqs1, idt, iEdge, iLayer, psi_flag + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + Integer:: i34 = 4 + Integer:: ELM_flag = 0 + Integer:: FuFw_flag = 0 + Integer :: BoundConditionFlag = 0 + jjlev = jlev + nnel0 = nnel + iEdge = iEdge0 + iLayer = iLayer0 + + epsGrad = 5 + + psi_flag = 4 + + !1) Advection Velocities: + Call AdvectionVelocities(iLayer0, jlev, iFace, iEdge0, nnel, MeshParam%Right(iEdge0), uuNode(:), vvNode(:), xxNode(:), yyNode(:), zzNode(:), dzNode(:), hhNode(:), uuint, vvint, dtb, psi_flag, epsGrad, HydroParam, MeshParam) + + !2) Sub-time step: + vmag = dsqrt(HydroParam%uArrow(jjlev,1,iEdge0)**2 + HydroParam%uArrow(jjlev,2,iEdge0)**2 + HydroParam%uArrow(jjlev,3,iEdge0)**2) + if (vmag > 0) then + dtb = MinVal(MeshParam%InCircle)/vmag + tal = dsqrt((MeshParam%dx/2)**2 + (MeshParam%dy/2)**2 + (HydroParam%DZhj(jjlev,MeshParam%Edge(iFace,nnel))*0.5)**2)/vmag + if (tal > 0) then + dtb = Min(dt,dtb,tal) + else + dtb = Min(dt,dtb) + endif + + EndIf + + !if (vmag > 0) then + ! dtb = MinVal(MeshParam%InCircle)/vmag + ! tal = dsqrt((MeshParam%dx)**2 + (MeshParam%dy)**2 + (HydroParam%DZhj(jjlev,MeshParam%Edge(iFace,nnel))*0.5)**2)/vmag + ! dtb = Min(dt,dtb,tal) + !EndIf + ! + !3) Start backtracking: + timeAcum = 0.d0 + Do While (timeAcum < dt) + timeAcum = timeAcum + dtb + + !3.1) Particle position in time tk: + xt = x0 - dtb*HydroParam%uArrow(iLayer,1,iEdge0) + yt = y0 - dtb*HydroParam%uArrow(iLayer,2,iEdge0) + zt = z0 - dtb*HydroParam%uArrow(iLayer,3,iEdge0) + + Call quicksearch(1,nnel,jlev,dtb,x0,y0,z0,xt,yt,zt,iflqs1,idt,iFace,i34,HydroParam,MeshParam) + + !3.2) nnel Element Edge which was intial or crossed by particle in sub-time step + iEdge = MeshParam%Edge(iFace,nnel) + + !3.3) New advection velocity in time tk+1/interpolate velocity in Lagragian's end: + Call AdvectionVelocities(iLayer0, jlev, iFace, iEdge0, nnel, MeshParam%Right(iEdge), uuNode(:), vvNode(:), xxNode(:), yyNode(:), zzNode(:), dzNode(:), hhNode(:), uuint, vvint, dtb, psi_flag, epsGrad, HydroParam, MeshParam) + + If(iflqs1.eq.1) exit + + x0 = xt + y0 = yt + z0 = zt + + !3.4) Reavaluate sub-time step with new advection velocity: + If (nnel /= nnel0) Then + vmag = dsqrt(HydroParam%uArrow(jjlev,1,iEdge0)**2 + HydroParam%uArrow(jjlev,2,iEdge0)**2 + HydroParam%uArrow(jjlev,3,iEdge0)**2) + !if (vmag > 0) then + ! dtb = MinVal(MeshParam%InCircle)/vmag + ! tal = dsqrt((MeshParam%dx)**2 + (MeshParam%dy)**2 + (HydroParam%DZhj(jjlev,MeshParam%Edge(iFace,nnel))*0.5)**2)/vmag + ! dtb = Min(dt,dtb,tal) + !EndIf + if (vmag > 0) then + dtb = MinVal(MeshParam%InCircle)/vmag + tal = dsqrt((MeshParam%dx/2)**2 + (MeshParam%dy/2)**2 + (HydroParam%DZhj(jjlev,MeshParam%Edge(iFace,nnel))*0.5)**2)/vmag + if (tal > 0) then + dtb = Min(dt,dtb,tal) + else + dtb = Min(dt,dtb) + endif + EndIf + nnel0 = nnel + If (timeAcum < dt .and. dtb + timeAcum > dt) Then + dtb = dt - timeAcum + EndIf + EndIf + + EndDo + !End Lagrangian tracing + + !Interpolate velocities in Lagragian's end: + If (ELM_flag==0) Then !iBilinear Interpolation + + Call FuVelocities2(uuNodeBTR(:,:), vvNodeBTR(:,:), wwNodeBTR(:,:), xxNodeBTR(:,:), yyNodeBTR(:,:), zzNodeBTR(:,:), nnel,jlev, xt,yt,zt,x0,y0,z0, iFace, HydroParam,MeshParam) + Call iBilinear2(uuint, vvint, wwint, uuNodeBTR(:,:), vvNodeBTR(:,:), wwNodeBTR(:,:), xxNodeBTR(:,:), yyNodeBTR(:,:), zzNodeBTR(:,:), xt, yt, zt, x0, y0, z0, iFace, nnel, FuFw_flag, MeshParam) + + Elseif (ELM_flag==1) Then !iQuadratic Interpolation + + Call iQuadraticNodes(uuNodeBTR(:,:), vvNodeBTR(:,:), wwNodeBTR(:,:), xxNodeBTR(:,:), yyNodeBTR(:,:), zzNodeBTR(:,:), nnel, jlev, HydroParam, MeshParam) + !Call iquadratic(uuint, vvint, wwint, uuNodeBTR(:,:), vvNodeBTR(:,:), wwNodeBTR(:,:), xxNodeBTR(:,:), yyNodeBTR(:,:), zzNodeBTR(:,:), xt, yt, zt) + + hhNodeBTR(1,1) = zzNodeBTR(3,1) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(1,4) = zzNodeBTR(3,4) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(1,7) = zzNodeBTR(3,7) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(2,1) = zzNodeBTR(3,1) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(2,4) = zzNodeBTR(3,4) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(2,7) = zzNodeBTR(3,7) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(3,1) = zzNodeBTR(3,1) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(3,4) = zzNodeBTR(3,4) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(3,7) = zzNodeBTR(3,7) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(1,2) = zzNodeBTR(3,2) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(1,5) = zzNodeBTR(3,5) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(1,8) = zzNodeBTR(3,8) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(2,2) = zzNodeBTR(3,2) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(2,5) = zzNodeBTR(3,5) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(2,8) = zzNodeBTR(3,8) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(3,2) = zzNodeBTR(3,2) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(3,5) = zzNodeBTR(3,5) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(3,8) = zzNodeBTR(3,8) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(1,3) = zzNodeBTR(3,3) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(1,6) = zzNodeBTR(3,6) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(1,9) = zzNodeBTR(3,9) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(2,3) = zzNodeBTR(3,3) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(2,6) = zzNodeBTR(3,6) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(2,9) = zzNodeBTR(3,9) - sum(HydroParam%DZsi(:,nnel)) + hhNodeBTR(3,3) = zzNodeBTR(3,3) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(3,6) = zzNodeBTR(3,6) - sum(HydroParam%DZsi(:,nnel)); hhNodeBTR(3,9) = zzNodeBTR(3,9) - sum(HydroParam%DZsi(:,nnel)) + + uuNodeBTR = uuNodeBTR*hhNodeBTR; vvNodeBTR = vvNodeBTR*hhNodeBTR; wwNodeBTR = wwNodeBTR*hhNodeBTR + + Call iQuadraticCons(uuint, vvint, wwint, hhint, uuNodeBTR(:,:), vvNodeBTR(:,:), wwNodeBTR(:,:), hhNodeBTR(:,:), xxNodeBTR(:,:), yyNodeBTR(:,:), zzNodeBTR(:,:), xt, yt, zt) + + !hhint = max(0.d0,HydroParam%H(iEdge) - sum(HydroParam%DZsj(:,iEdge))) + uuint = uuint/hhint + vvint = vvint/hhint + wwint = wwint/hhint + hhint = hhint + EndIf + + + Return + End Subroutine btrackConservative + + + Subroutine quicksearch(iloc,nnel,jlev,dtb,x0,y0,z0,& + &xt,yt,zt,nfl,idt,id0,i34,HydroParam,MeshParam) + + !> Straightline search algorithm. + !>\note Initially nnel is an element that encompasses the point P0(x0,y0).\n + !> Input: iloc,nnel,x0,y0,z0,xt,yt,zt,jlev, time, and vt2, ww2 for abnormal cases;\n + !> Output: the updated end pt (xt,yt,zt) (if so), nnel, jlev, a flag nfl.\n + !> Exit btrack if a bnd or dry element is hit and vel. there is small, or death trap is reached. + !>\param iloc nudge initial pt (iloc=0: do not nudge initial pt; iloc=1: nudge) + !>\param dtb sub step time in seg (input) + !>\param nnel number of the element that enclosed the point P0 (input) + !>\param jlev number of the layer that enclosed the point P0 (input) + !>\param x0 x initial position of the point P0 (input) + !>\param y0 y initial position of the point P0(input) + !>\param z0 z initial position of the point P0 (input) + !>\param xt x final position of the point Pt (input) + !>\param yt y final position of the point Pt (input) + !>\param zt z final position of the point Pt (input) + !>\return nfl: The element that enclosed the point Pt was founded (output) + !>\return nnel: number of the element that enclosed the point Pt (output) + !>\return jlev: number of the layer that enclosed the point Pt (output) + !>\author Carlos Ruberto Fragoso + !>\attention List of Modifications: \n + !> - 15.09.2015: Routine Implementation (Carlos Ruberto Fragoso) + + Use MeshVars !, Only:Quadri,Edge,EdgeDef,xNode,yNode,Area,xb,yb,Left,Right,Neighbor,EdgeBary + Use Hydrodynamic !, Only: ElSmallm,ElCapitalM,Ze,H,Pcri,uxy,uNode + Implicit none + + Real, parameter :: small1=1e-5 + Integer, intent(in) :: iloc,idt,i34 + Real, intent(in) :: dtb,x0,y0,z0 + Integer, intent(out) :: nfl + Integer, intent(inout) :: nnel,jlev,id0 + Real:: xpoly(4),ypoly(4) + Real, intent(inout) :: xt,yt,zt + Real:: trm,aa,aa1,ae,xcg,ycg,pathl,xin,yin,zin,tt1,tt2,dist,xvel,yvel,zvel,hvel + Integer:: nel,i,j,k,n1,n2,nel_j,iflag,it,md1,md2,lit,k1,k2,jd1,jd2,r,isd,nel0,INOUT + Real:: NearZero = 1e-10 !< Small Number + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + nel0 = nnel + nfl=0 + trm=dtb !time remaining + nel_j = id0 + nel=nnel + + if(nel==179)then + continue + endif + + aa=0 + aa1=0 + !The ideia is that any polygon area can be represents by sum of multiples triangules. + !Next are calculated the multiples triangules area formed by P0 and iEdges nodes points (acumulated in aa variable) + !and Pt and iEdges points (acumulated in aa1 variable). + Do i=1,i34 + !Get the nodes for each edge + n1=MeshParam%Quadri(MeshParam%EdgeDef(1,i),nel) + 1 + n2=MeshParam%Quadri(MeshParam%EdgeDef(2,i),nel) + 1 + + aa=aa+dabs(signa(MeshParam%xNode(n1),MeshParam%xNode(n2),x0,MeshParam%yNode(n1),MeshParam%yNode(n2),y0)) + aa1=aa1+dabs(signa(MeshParam%xNode(n1),MeshParam%xNode(n2),xt,MeshParam%yNode(n1),MeshParam%yNode(n2),yt)) + EndDo !i + + !If P0 is inside on the Element(nnel) iEdge barycenter, then the acumalated area calculate in previous step is equal to %Area(iElement). + !Check if P0(x0,y0,z0) is enclosed in nel: + ae=dabs(aa-MeshParam%Area(nel))/MeshParam%Area(nel) + If(ae.gt.small1) Then + print*,'(x0,y0) not in nnel initially',ae,nnel,id0 + pause + stop + EndIf + + !If PT is inside the Element(nnel), then the acumalated area calculate in previous step is lower to %Area(iElement). + !In this case, nnel was finded and need to find iLayer inside nnel (go to 400) + ae=dabs(aa1-MeshParam%Area(nel))/MeshParam%Area(nel) + if(ae.lt.small1) Then + nnel=nel + go to 400 + endif + + !(xt,yt) not in nel, and thus (x0,y0) and (xt,yt) are distinctive + !An interior pt close to (x0,y0) to prevent underflow for iloc >=1. + If(iloc.eq.0) Then + !xcg= MeshParam%EdgeBary(1,id0) !x0 + !ycg= MeshParam%EdgeBary(2,id0) !y0 + xcg = x0 !MeshParam%EdgeBary(1,id0) !x0 + ycg = y0 !MeshParam%EdgeBary(2,id0) !y0 + Elseif(iloc.eq.1) Then + !xcg=(1-1.0d-4)*MeshParam%EdgeBary(1,id0)+1.0d-4*MeshParam%xb(nel) + !ycg=(1-1.0d-4)*MeshParam%EdgeBary(2,id0)+1.0d-4*MeshParam%yb(nel) + xcg = (1-1.0d-4)*x0+1.0d-4*MeshParam%xb(nel) + ycg = (1-1.0d-4)*y0+1.0d-4*MeshParam%yb(nel) + ! |x0-xcg|/|x0-xctr|=1.0d-3 + endif + + pathl=dsqrt((xt-xcg)**2+(yt-ycg)**2) + If(xcg.eq.xt.and.ycg.eq.yt.or.pathl.eq.0) Then + print*,'Zero path',x0,y0,xt,yt,xcg,ycg + pause + stop + endif + + ! Check if the particle position crosses some Edge from Element(nel): + ! Starting edge nel_j + Do i=1,i34 + + !Get the nodes for each edge + n1=MeshParam%Quadri(MeshParam%EdgeDef(1,i),nel) + 1 + n2=MeshParam%Quadri(MeshParam%EdgeDef(2,i),nel) + 1 + + !Check intersection between lines segments, one formed by nodes points (Edge) and another formed by Pt(xt,yt) and Pcg(xcg,ycg): + call intersect2(xcg,xt,MeshParam%xNode(n1),MeshParam%xNode(n2),ycg,yt,MeshParam%yNode(n1),MeshParam%yNode(n2),iflag,xin,yin,tt1,tt2) + + !If has a intersection point PI(xin, yin), the Edge i is crosses in particle trajectory: + If(iflag.eq.1) Then + nel_j=i + Go to 399 + Endif + Enddo !i=1,3 + + !No one Edge in element (nel) was crossed by particle: + If(iflag.eq.0) Then + xt = x0 + yt = y0 + zt = z0 + return + EndIf + + print*,'Found no intersecting edges' + print*,'xcg',xcg + print*,'xt',xt + print*,'ycg',ycg + print*,'yt',yt + print*,'Elem',nel + pause + stop + +399 continue + + zin=z0 !initialize + it=0 + + loop4: Do +!---------------------------------------------------------------------------------------- + it=it+1 + If(it.gt.1000) Then + !write(12,*)'Death trap reached',idt,id0 + nfl=1 + xt=xin + yt=yin + zt=zin + nnel=nel + Exit loop4 + Endif + md1 = MeshParam%Quadri(MeshParam%EdgeDef(1,nel_j),nel) + 1 + md2 = MeshParam%Quadri(MeshParam%EdgeDef(2,nel_j),nel) + 1 + + !Compute z position + dist=dsqrt((xin-xt)**2+(yin-yt)**2) + if(dist/pathl.gt.1+1.0d-4) Then + print*,'Path overshot' + pause + stop + endif + zin=zt-dist/pathl*(zt-zin) + trm=trm*dist/pathl !time remaining + + pathl=dsqrt((xin-xt)**2+(yin-yt)**2) + If(pathl.eq.0.or.trm.eq.0) Then + print*,'Target reached' + pause + stop + endif + + + lit=0 !flag + !For horizontal exit and dry elements, compute tangential vel., + !update target (xt,yt,zt) and continue. + isd = MeshParam%Edge(nel_j,nel) + r = MeshParam%Right(isd) + + if (nel==179) then + continue + endif + + !bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,isd)<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,isd) >= 110 - NearZero) then + ! r = 0 + ! elseif(MeshParam%EdgeBary(2,isd) <= 90 + NearZero) then + ! r = 0 + ! endif + !endif + + !If particle cross iEdge from iElement(nel), so the new iElement is the neighbour Element which shares iEdge(nel_j). + !However, it can a abnormal case which either iEdge(isd) no has neighbour (horizontal exit or wall) or is dry: + If (r == 0 .or. HydroParam%H(isd)-HydroParam%hj(isd)<=HydroParam%Pcri/2.d0+NearZero) Then !CAYO + !If (r == 0 .or. HydroParam%H(isd)<=HydroParam%Pcri/2.d0+NearZero) Then !CAYO + lit=1 + + !Nudge intersect (xin,yin), and update starting pt + xin=(1-1.0d-4)*xin+1.0d-4*MeshParam%xb(nel) + yin=(1-1.0d-4)*yin+1.0d-4*MeshParam%yb(nel) + xcg=xin + ycg=yin + + !Set tang. velocities: + xvel= 0.!uxy(jlev,1,isd) + yvel= 0.!uxy(jlev,2,isd) + zvel=0.5*((HydroParam%uNode(jlev,3,md1)+HydroParam%uNode(jlev,3,md2))/2. + (HydroParam%uNode(jlev+1,3,md1)+HydroParam%uNode(jlev+1,3,md2))/2.) + + !Update Pt: + xt=xin-xvel*trm + yt=yin-yvel*trm + zt=zin-zvel*trm + + !Horizontal velocity magnitude: + hvel=dsqrt(xvel**2+yvel**2) + If(hvel.lt.1.e-4) Then !Checar essa condi��o, todos os casos entram aqui CAYO + nfl=1 + xt=xin + yt=yin + zt=zin + nnel=nel + exit loop4 + EndIf + pathl=hvel*trm + + ElseIf (HydroParam%eta(MeshParam%Neighbor(nel_j,nnel)) - HydroParam%hb(MeshParam%Neighbor(nel_j,nnel)) <= HydroParam%PCRI/2.d0 + NearZero) Then !CAYO + lit=1 + + !Nudge intersect (xin,yin), and update starting pt + xin=(1-1.0d-4)*xin+1.0d-4*MeshParam%xb(nel) + yin=(1-1.0d-4)*yin+1.0d-4*MeshParam%yb(nel) + xcg=xin + ycg=yin + + !Set tang. velocities: + + xvel = 0.!uxy(jlev,1,isd) + yvel = 0.!uxy(jlev,2,isd) + zvel = 0.5*((HydroParam%uNode(jlev,3,md1)+HydroParam%uNode(jlev,3,md2))/2. + (HydroParam%uNode(jlev+1,3,md1)+HydroParam%uNode(jlev+1,3,md2))/2.) + + !Update Pt: + xt=xin-xvel*trm + yt=yin-yvel*trm + zt=zin-zvel*trm + + !Horizontal velocity magnitude: + hvel=dsqrt(xvel**2+yvel**2) + If(hvel.lt.1.e-4) Then !Checar essa condi��o, todos os casos entram aqui CAYO + nfl=1 + xt=xin + yt=yin + zt=zin + nnel=nel + exit loop4 + EndIf + pathl=hvel*trm + ElseIf(dmax1(zt,HydroParam%hb(nel0)) < HydroParam%hb(MeshParam%Neighbor(nel_j,nnel)) ) Then + nnel = nel0 + xt=(1-1.0d-4)*MeshParam%EdgeBary(1,MeshParam%Edge(nel_j,nel0)) + 1.0d-4*MeshParam%xb(nel0) + yt=(1-1.0d-4)*MeshParam%EdgeBary(2,MeshParam%Edge(nel_j,nel0)) + 1.0d-4*MeshParam%yb(nel0) + !xt = MeshParam%EdgeBary(1,MeshParam%Edge(nel_j,nel0)) + !yt = MeshParam%EdgeBary(2,MeshParam%Edge(nel_j,nel0)) + nfl=1 + exit loop4 + EndIf + + !Else in normal cases, we need get the neighbour element which shares the iEdge(nel_j): + If(lit.eq.0) Then + !next front element + nel = MeshParam%Neighbor(nel_j,nel) + EndIf + + !With the element updated, we check again if Pt(xt,yt) is inside the element: + aa=0 + Do i=1,i34 + k1=MeshParam%Quadri(MeshParam%EdgeDef(1,i),nel) + 1 + k2=MeshParam%Quadri(MeshParam%EdgeDef(2,i),nel) + 1 + aa=aa+dabs(signa(MeshParam%xNode(k1),MeshParam%xNode(k2),xt,MeshParam%yNode(k1),MeshParam%yNode(k2),yt)) + EndDo !i + + !If is inside, the acumulated area (aa) is lower than %Area(iElement): + ae = dabs(aa-MeshParam%Area(nel))/MeshParam%Area(nel) + If(ae.lt.small1) Then + nnel=nel + ! Element find, xt and yt position defined. Go to find zt positon (Go to 400). + Exit loop4 + EndIf + + !The particle is out the element, find next intersecting edge: + Do j=1,i34 + + !Get the nodes for each edge: + jd1=MeshParam%Quadri(MeshParam%EdgeDef(1,j),nel) + 1 !nm(nel,nx(i34(nel),j,1)) + jd2=MeshParam%Quadri(MeshParam%EdgeDef(2,j),nel) + 1 !nm(nel,nx(i34(nel),j,2)) + + if(jd1.eq.md1.and.jd2.eq.md2.or.jd2.eq.md1.and.jd1.eq.md2) cycle !iEdge shared with previous element that was checked, skip to next iEdge. + + !Check path intersection: + call intersect2(xcg,xt,MeshParam%xNode(jd1),MeshParam%xNode(jd2),ycg,yt,MeshParam%yNode(jd1),MeshParam%yNode(jd2),iflag,xin,yin,tt1,tt2) + + !If has a intersection point PI(xin, yin), the Edge i is crosses in particle trajectory: + if(iflag.eq.1) then + nel_j=j !next front edge + cycle loop4 + endif + + EndDo !j + !print*,'Failed to find next edge',lit,xin,yin,xt,yt,nel,& + !&md1,md2,idt + xt = x0 + yt = y0 + Exit loop4 + pause + stop + + EndDo loop4 + +400 Continue + !The element (nnel) was found, now we are looking for the iLayer (jlev) that contains Pt(xt,yt,zt). + !First zt is set as the maximum value between Ze (smallm)lower layer and zt, this ensure that the particle no set in position + !under the bounds of vertical grid discretization. In cases which the zt is set as Ze(smallm) layers, this implies that the + !particle reach to bottom. + !Next zt is set as the minimum between it and Ze(CapitalM+1) upper layer, this ensure that particle not set in a position + !above the bounds of vertical grid discretization. + !zt is set as the minimum value between max[zt calculed and Lower Layer Level in the Element (nnel)] and Upper Layer in Element(nnel) + !We want find the iLayer that includes this value, not specfic point. + + !If (nnel /= nel0) Then + ! zt = dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nel0),nel0)+sum(HydroParam%DZsi(:,nel0))) + ! If (zt < HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel) - HydroParam%hb(nnel) ) then + ! nnel = nel0 + ! xt = MeshParam%EdgeBary(1,isd) + ! yt = MeshParam%EdgeBary(2,isd) + ! EndIf + !EndIf + + !zt = dmin1(dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel)+sum(HydroParam%DZsi(:,nnel))),HydroParam%Ze(HydroParam%ElCapitalM(nnel)+1,nnel)) + zt = dmin1(dmax1(zt,HydroParam%Ze(HydroParam%ElSmallm(nnel),nnel)+sum(HydroParam%DZsi(:,nnel))),HydroParam%eta(nnel)) + Do k = HydroParam%ElSmallm(nnel), HydroParam%ElCapitalM(nnel) + If (zt.gt.HydroParam%Ze(k,nnel).and.zt.le.HydroParam%Ze(k+1,nnel)) Then + jlev = k + EndIf + EndDo + + Return + End Subroutine quicksearch + + Subroutine intersect2(x1,x2,x3,x4,y1,y2,y3,y4,iflag,xin,yin,tt1,tt2) + + !> Subroutine to detect if two segments (1,2) and (3,4) have a common point + !>\note The 4 pts are distinctive.\n + !> The eqs. for the 2 lines are: X=X1+(X2-X1)*tt1 and X=X3+(X4-X3)*tt2.\n + !> Output: iflag: 0: no intersection or colinear; 1: exactly 1 intersection..\n + !> If iflag=1, (xin,yin) is the intersection. + !>\param iflag A common point was founded (iflag=0: no; iflag=1: yes) + !>\param x1 x position of the point P1 (input) + !>\param x2 x position of the point P2 (input) + !>\param x3 x position of the point P3 (input) + !>\param x4 x position of the point P4 (input) + !>\param y1 y position of the point P1 (input) + !>\param y2 y position of the point P2 (input) + !>\param y3 y position of the point P3 (input) + !>\param y4 y position of the point P4 (input) + !>\return xin: x position in the intersection (output) + !>\return yin: y position in the intersection (output) + !>\return tt1: angular coefficient of the segment formmed by P1 and P2 + !>\return tt2: angular coefficient of the segment formmed by P3 and P4 + !>\author Carlos Ruberto Fragoso + !>\attention List of Modifications: \n + !> - 15.09.2015: Routine Implementation (Carlos Ruberto Fragoso) + + Implicit none + Real, parameter :: small2=0.0 !small positive number or 0 + Real, intent(in) :: x1,x2,x3,x4,y1,y2,y3,y4 + Integer, intent(out) :: iflag + Real, intent(out) :: xin,yin,tt1,tt2 + Real:: delta,delta1,delta2 + + tt1=-1000 + tt2=-1000 + iflag=0 + delta=(x2-x1)*(y3-y4)-(y2-y1)*(x3-x4) + delta1=(x3-x1)*(y3-y4)-(y3-y1)*(x3-x4) + delta2=(x2-x1)*(y3-y1)-(y2-y1)*(x3-x1) + + If(delta.ne.0.0d0) Then + tt1=delta1/delta + tt2=delta2/delta + If(tt1.ge.-small2.and.tt1.le.1+small2.and.tt2.ge.-small2.and.tt2.le.1+small2) Then + iflag=1 + xin=x1+(x2-x1)*tt1 + yin=y1+(y2-y1)*tt1 + Endif + Endif + + Return + End Subroutine intersect2 + + Subroutine FuVelocities2(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, nnel,jlev, xt,yt,zt,x0,y0,z0, id0, HydroParam,MeshParam) + + Use MeshVars !, Only: Quadri,EdgeDef,xNode,yNode,Area,Edge,EdgeNodes,EdgeBary,Left,Right + Use Hydrodynamic !, Only: Smallm,ElSmallm,ElCapitalM,CapitalM,Z,DZj,Ze,DZi,uNode,uxy,Ze,DZi,w + + Implicit none + + integer, intent(in) :: nnel,jlev + Real, intent(in) :: xt,yt,zt,x0,y0,z0 + Real, intent(out) :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + Integer:: idt,iflqs1,i,j,l,nd,nn,lev,n1,n2,n3,n4, iEdge,iNode, Nodes(4), F1, F2, F3, F4, id0, NodeFlag + Real:: NearZero = 1e-10 !< Small Number + Integer:: i34 = 4 + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + !Integer:: ELM_flag = 1 + + F1=MeshParam%Edge(1,nnel) + F2=MeshParam%Edge(2,nnel) + F3=MeshParam%Edge(3,nnel) + F4=MeshParam%Edge(4,nnel) + !if (jlev==HydroParam%ElSmallm(nnel)) then and.jlev/=HydroParam%ElSmallm(nnel).and.jlev/=HydroParam%ElCapitalM(nnel) + !MeshParam%Neighbor(1,nnel) + if (id0==F1) then + if (xt>=x0) then !Right side + n1=F1 + n2=F3 + n3=MeshParam%Quadri(4,nnel) + 1 + n4=MeshParam%Quadri(1,nnel) + 1 + NodeFlag = 1 + else !left side + n1=F1 + n2=MeshParam%Quadri(2,nnel) + 1 + n3=MeshParam%Quadri(3,nnel) + 1 + n4=F3 + NodeFlag = 2 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + elseif (id0==F2) then + if (yt>=y0) then !North side + n1=F2 + n2=F4 + n3=MeshParam%Quadri(1,nnel) + 1 + n4=MeshParam%Quadri(2,nnel) + 1 + NodeFlag = 1 + else !South side + n1=F2 + n2=MeshParam%Quadri(3,nnel) + 1 + n3=MeshParam%Quadri(4,nnel) + 1 + n4=F4 + NodeFlag = 2 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + elseif (id0==F3) then + if (xt>=x0) then !Right side + n1=F3 + n2=MeshParam%Quadri(4,nnel) + 1 + n3=MeshParam%Quadri(1,nnel) + 1 + n4=F1 + NodeFlag = 2 + else !left side + n1=F3 + n2=F1 + n3=MeshParam%Quadri(2,nnel) + 1 + n4=MeshParam%Quadri(3,nnel) + 1 + NodeFlag = 1 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + else !(id0==F4) + if (yt>=y0) then !North side + n1=F4 + n2=MeshParam%Quadri(1,nnel) + 1 + n3=MeshParam%Quadri(2,nnel) + 1 + n4=F2 + NodeFlag = 2 + else !South side + n1=F4 + n2=F2 + n3=MeshParam%Quadri(3,nnel) + 1 + n4=MeshParam%Quadri(4,nnel) + 1 + NodeFlag = 1 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + endif + if (NodeFlag == 1) then !n1 and n2 = Face; n3 and n4 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then + lev=jlev + + uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) + uuNode(1,2)=HydroParam%uxy(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%uxy(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%wfc(jlev,Nodes(2)) + uuNode(1,3)=HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%ubv(jlev,3,Nodes(3)) + uuNode(1,4)=HydroParam%ubv(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%ubv(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%ubv(jlev,3,Nodes(4)) + if (zt=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,2)=HydroParam%ug(Nodes(2),lev); vvNode(2,2)=HydroParam%vg(Nodes(2),lev); wwNode(2,2)=HydroParam%wg(Nodes(2),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,4)=HydroParam%uNode(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uNode(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%uNode(lev,3,Nodes(4)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,2)=HydroParam%uxy(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(lev,Nodes(2)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,4)=HydroParam%ubv(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%ubv(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%ubv(lev,3,Nodes(4)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%Z(jlev,Nodes(2))+HydroParam%Z(jlev+1,Nodes(2))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) + xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%peta(Nodes(4))+HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Z(lev,Nodes(2)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%peta(Nodes(4)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) + endif + + elseif (jlev==HydroParam%ElSmallm(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + lev=jlev+1 + else !(zt n1 and n4 = Face; n2 and n3 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then + lev=jlev + + uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) + uuNode(1,4)=HydroParam%uxy(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%uxy(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%wfc(jlev,Nodes(4)) + uuNode(1,3)=HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%ubv(jlev,3,Nodes(3)) + uuNode(1,2)=HydroParam%ubv(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%ubv(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%ubv(jlev,3,Nodes(2)) + if (zt>=z0) then !up + lev=jlev+1 + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + lev=jlev + else !down + lev=jlev + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4))+HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2))+HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + lev=jlev+1 + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%peta(Nodes(2)) + lev=jlev + else !down + lev=jlev + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Ze(lev,nnel) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Ze(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Ze(lev,nnel) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%Ze(lev,nnel) + endif + else + + if (jlev==HydroParam%ElCapitalM(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,4)=HydroParam%uxy(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(lev,Nodes(4)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%ubv(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%ubv(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%ubv(lev,3,Nodes(2)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1))+HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4))+HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3))+HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2))+HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)=HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%peta(Nodes(2)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) + endif + elseif (jlev==HydroParam%ElSmallm(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + lev=jlev+1 + else !(zt=x0) then !Right side + n1=F1 + n2=F3 + n3=MeshParam%Quadri(4,nnel) + 1 + n4=MeshParam%Quadri(1,nnel) + 1 + NodeFlag = 1 + else !left side + n1=F1 + n2=MeshParam%Quadri(2,nnel) + 1 + n3=MeshParam%Quadri(3,nnel) + 1 + n4=F3 + NodeFlag = 2 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + elseif (id0==F2) then + if (yt>=y0) then !North side + n1=F2 + n2=F4 + n3=MeshParam%Quadri(1,nnel) + 1 + n4=MeshParam%Quadri(2,nnel) + 1 + NodeFlag = 1 + else !South side + n1=F2 + n2=MeshParam%Quadri(3,nnel) + 1 + n3=MeshParam%Quadri(4,nnel) + 1 + n4=F4 + NodeFlag = 2 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + elseif (id0==F3) then + if (xt>=x0) then !Right side + n1=F3 + n2=MeshParam%Quadri(4,nnel) + 1 + n3=MeshParam%Quadri(1,nnel) + 1 + n4=F1 + NodeFlag = 2 + else !left side + n1=F3 + n2=F1 + n3=MeshParam%Quadri(2,nnel) + 1 + n4=MeshParam%Quadri(3,nnel) + 1 + NodeFlag = 1 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + else !(id0==F4) + if (yt>=y0) then !North side + n1=F4 + n2=MeshParam%Quadri(1,nnel) + 1 + n3=MeshParam%Quadri(2,nnel) + 1 + n4=F2 + NodeFlag = 2 + else !South side + n1=F4 + n2=F2 + n3=MeshParam%Quadri(3,nnel) + 1 + n4=MeshParam%Quadri(4,nnel) + 1 + NodeFlag = 1 + endif + Nodes(1:4)= (/ n1, n2, n3, n4 /) + endif + if (NodeFlag == 1) then !n1 and n2 = Face; n3 and n4 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then !2D/ 1 Layer + lev=jlev + + uuNode(1,1)=HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1)=HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1)=HydroParam%wfc(jlev,Nodes(1)) + uuNode(1,2)=HydroParam%uxy(jlev,1,Nodes(2)); vvNode(1,2)=HydroParam%uxy(jlev,2,Nodes(2)); wwNode(1,2)=HydroParam%wfc(jlev,Nodes(2)) + uuNode(1,3)=HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3)=HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3)=HydroParam%ubv(jlev,3,Nodes(3)) + uuNode(1,4)=HydroParam%ubv(jlev,1,Nodes(4)); vvNode(1,4)=HydroParam%ubv(jlev,2,Nodes(4)); wwNode(1,4)=HydroParam%ubv(jlev,3,Nodes(4)) + if (zt=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,2)=HydroParam%ug(Nodes(2),lev); vvNode(2,2)=HydroParam%vg(Nodes(2),lev); wwNode(2,2)=HydroParam%wg(Nodes(2),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,4)=HydroParam%uNode(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uNode(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%uNode(lev,3,Nodes(4)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,2)=HydroParam%uxy(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(lev,Nodes(2)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,4)=HydroParam%ubv(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%ubv(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%ubv(lev,3,Nodes(4)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1)) + HydroParam%hj(Nodes(1)) + HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%Z(jlev,Nodes(2)) + HydroParam%hj(Nodes(2)) + HydroParam%Z(jlev+1,Nodes(2))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + xxNode(1,4) = MeshParam%xNode(Nodes(4)); yyNode(1,4) = MeshParam%yNode(Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%peta(Nodes(4)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Z(lev,Nodes(1)) + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2) = HydroParam%Z(lev,Nodes(2)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%peta(Nodes(3)) + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4) = HydroParam%peta(Nodes(4)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,4) = MeshParam%xNode(Nodes(4)); yyNode(2,4) = MeshParam%yNode(Nodes(4)); zzNode(2,4)= HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + endif + + ElseIf (jlev==HydroParam%ElSmallm(nnel)) Then + If (zt>=z0) Then !up + lev=jlev+1 + Else !(zt=z0) Then !up + lev=jlev+1 + Else !(zt n1 and n4 = Face; n2 and n3 = Nodes; + If (HydroParam%ElSmallm(nnel)==HydroParam%ElCapitalM(nnel)) Then !2D Case/ 1 Layer + lev=jlev + + uuNode(1,1) = HydroParam%uxy(jlev,1,Nodes(1)); vvNode(1,1) = HydroParam%uxy(jlev,2,Nodes(1)); wwNode(1,1) = HydroParam%wfc(jlev,Nodes(1)) + uuNode(1,4) = HydroParam%uxy(jlev,1,Nodes(4)); vvNode(1,4) = HydroParam%uxy(jlev,2,Nodes(4)); wwNode(1,4) = HydroParam%wfc(jlev,Nodes(4)) + uuNode(1,3) = HydroParam%ubv(jlev,1,Nodes(3)); vvNode(1,3) = HydroParam%ubv(jlev,2,Nodes(3)); wwNode(1,3) = HydroParam%ubv(jlev,3,Nodes(3)) + uuNode(1,2) = HydroParam%ubv(jlev,1,Nodes(2)); vvNode(1,2) = HydroParam%ubv(jlev,2,Nodes(2)); wwNode(1,2) = HydroParam%ubv(jlev,3,Nodes(2)) + If (zt>=z0) Then !up + lev=jlev+1 + uuNode(2,1) = HydroParam%ug(Nodes(1),lev); vvNode(2,1) = HydroParam%vg(Nodes(1),lev); wwNode(2,1) = HydroParam%wg(Nodes(1),lev) + uuNode(2,4) = HydroParam%ug(Nodes(4),lev); vvNode(2,4) = HydroParam%vg(Nodes(4),lev); wwNode(2,4) = HydroParam%wg(Nodes(4),lev) + uuNode(2,3) = HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3) = HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3) = HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2) = HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2) = HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2) = HydroParam%uNode(lev,3,Nodes(2)) + lev=jlev + Else !down + lev=jlev + uuNode(2,1) = HydroParam%ug(Nodes(1),lev); vvNode(2,1) = HydroParam%vg(Nodes(1),lev); wwNode(2,1) = HydroParam%wg(Nodes(1),lev) + uuNode(2,4) = HydroParam%ug(Nodes(4),lev); vvNode(2,4) = HydroParam%vg(Nodes(4),lev); wwNode(2,4) = HydroParam%wg(Nodes(4),lev) + uuNode(2,3) = HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3) = HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3) = HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2) = HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2) = HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2) = HydroParam%uNode(lev,3,Nodes(2)) + EndIf + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1)=0.5d0*(HydroParam%Z(jlev,Nodes(1)) + HydroParam%hj(Nodes(1)) + HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=0.5d0*(HydroParam%Z(jlev,Nodes(4)) + HydroParam%hj(Nodes(4)) + HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=0.5d0*(HydroParam%peta(Nodes(3)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2)=0.5d0*(HydroParam%peta(Nodes(2)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + If (zt>=z0) then !up + lev=jlev+1 + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%peta(Nodes(2)) + lev=jlev + Else !down + lev=jlev + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%Ze(lev,nnel)+ HydroParam%hb(nnel) + EndIf + Else + if (jlev==HydroParam%ElCapitalM(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + uuNode(2,1)=HydroParam%ug(Nodes(1),lev); vvNode(2,1)=HydroParam%vg(Nodes(1),lev); wwNode(2,1)=HydroParam%wg(Nodes(1),lev) + uuNode(2,4)=HydroParam%ug(Nodes(4),lev); vvNode(2,4)=HydroParam%vg(Nodes(4),lev); wwNode(2,4)=HydroParam%wg(Nodes(4),lev) + uuNode(2,3)=HydroParam%uNode(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%uNode(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%uNode(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%uNode(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%uNode(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%uNode(lev,3,Nodes(2)) + else !down + uuNode(2,1)=HydroParam%uxy(lev,1,Nodes(1)); vvNode(2,1)=HydroParam%uxy(lev,2,Nodes(1)); wwNode(2,1)=HydroParam%wfc(lev,Nodes(1)) + uuNode(2,4)=HydroParam%uxy(lev,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(lev,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(lev,Nodes(4)) + uuNode(2,3)=HydroParam%ubv(lev,1,Nodes(3)); vvNode(2,3)=HydroParam%ubv(lev,2,Nodes(3)); wwNode(2,3)=HydroParam%ubv(lev,3,Nodes(3)) + uuNode(2,2)=HydroParam%ubv(lev,1,Nodes(2)); vvNode(2,2)=HydroParam%ubv(lev,2,Nodes(2)); wwNode(2,2)=HydroParam%ubv(lev,3,Nodes(2)) + endif + xxNode(1,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(1,1) = 0.5d0*(HydroParam%Z(jlev,Nodes(1)) + HydroParam%hj(Nodes(1)) + HydroParam%Z(jlev+1,Nodes(1))) + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4) = 0.5d0*(HydroParam%Z(jlev,Nodes(4)) + HydroParam%hj(Nodes(4)) + HydroParam%Z(jlev+1,Nodes(4))) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3) = 0.5d0*(HydroParam%peta(Nodes(3)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + xxNode(1,2) = MeshParam%xNode(Nodes(2)); yyNode(1,2) = MeshParam%yNode(Nodes(2)); zzNode(1,2) = 0.5d0*(HydroParam%peta(Nodes(2)) + HydroParam%hb(nnel) + HydroParam%Ze(jlev,nnel)) + if (zt>=z0) then !up + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Z(lev,Nodes(1)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Z(lev,Nodes(4)) + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%peta(Nodes(3)) + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%peta(Nodes(2)) + else !down + xxNode(2,1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(2,1) = MeshParam%EdgeBary(2,Nodes(1)); zzNode(2,1) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + xxNode(2,2) = MeshParam%xNode(Nodes(2)); yyNode(2,2) = MeshParam%yNode(Nodes(2)); zzNode(2,2) = HydroParam%Zb(lev,nnel) + HydroParam%hb(nnel)/2 + endif + elseif (jlev==HydroParam%ElSmallm(nnel)) then + if (zt>=z0) then !up + lev=jlev+1 + else !(zt=z0) then !up + lev=jlev+1 + else !(zt=y0) then !North side + a = dx/abs(xxN(1,1)-xxN(1,2)) + b = dy/abs(yyN(1,1)-yyN(1,4)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) + else !south side + a = dx/abs(xxN(1,1)-xxN(1,4)) + b = dy/abs(yyN(1,1)-yyN(1,2)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) + endif + elseif (id0==F4) then + if (yp>=y0) then !North side + a = dx/abs(xxN(1,1)-xxN(1,4)) + b = dy/abs(yyN(1,1)-yyN(1,2)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) + else !south side + a = dx/abs(xxN(1,1)-xxN(1,2)) + b = dy/abs(yyN(1,1)-yyN(1,4)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) + endif + elseif (id0==F3) then + if (xp>=x0) then !Right side + a = dx/abs(xxN(1,1)-xxN(1,2)) + b = dy/abs(yyN(1,1)-yyN(1,4)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) + else !Left side + a = dx/abs(xxN(1,1)-xxN(1,4)) + b = dy/abs(yyN(1,1)-yyN(1,2)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) + endif + elseif (id0==F1) then + if (xp>=x0) then !Right side + a = dx/abs(xxN(1,1)-xxN(1,4)) + b = dy/abs(yyN(1,1)-yyN(1,2)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) + else !Left side + a = dx/abs(xxN(1,1)-xxN(1,2)) + b = dy/abs(yyN(1,1)-yyN(1,4)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) + endif + endif + else + if (xp<=x0.and.yp=y0) then !left North side + a = dx/abs(xxN(1,1)-xxN(1,4)) + b = dy/abs(yyN(1,1)-yyN(1,2)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,2))+a*((1-b)*uuN(1,4)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,2))+a*((1-b)*uuN(2,4)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,2))+a*((1-b)*vvN(1,4)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,2))+a*((1-b)*vvN(2,4)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,2))+a*((1-b)*wwN(1,4)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,2))+a*((1-b)*wwN(2,4)+b*wwN(2,3))) + elseif (xp>x0.and.ypx0.and.yp>=y0) then !Right North side + a = dx/abs(xxN(1,1)-xxN(1,2)) + b = dy/abs(yyN(1,1)-yyN(1,4)) + d = dz/abs(zzN(1,1)-zzN(2,1)) + uuBtrack = (1-d)*((1-a)*((1-b)*uuN(1,1)+b*uuN(1,4))+a*((1-b)*uuN(1,2)+b*uuN(1,3)))+d*((1-a)*((1-b)*uuN(2,1)+b*uuN(2,4))+a*((1-b)*uuN(2,2)+b*uuN(2,3))) + vvBtrack = (1-d)*((1-a)*((1-b)*vvN(1,1)+b*vvN(1,4))+a*((1-b)*vvN(1,2)+b*vvN(1,3)))+d*((1-a)*((1-b)*vvN(2,1)+b*vvN(2,4))+a*((1-b)*vvN(2,2)+b*vvN(2,3))) + wwBtrack = (1-d)*((1-a)*((1-b)*wwN(1,1)+b*wwN(1,4))+a*((1-b)*wwN(1,2)+b*wwN(1,3)))+d*((1-a)*((1-b)*wwN(2,1)+b*wwN(2,4))+a*((1-b)*wwN(2,2)+b*wwN(2,3))) + endif + endif + + Return + End Subroutine iBilinear2 + + + Subroutine iQuadratic(uuBtrack, vvBtrack, wwBtrack, uuN, vvN, wwN, xxN, yyN, zzN, xp, yp, zp ) + !( uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) ) + + Implicit None + + Real, intent(in) :: uuN(3,9), vvN(3,9), wwN(3,9), xxN(3,9), yyN(3,9), zzN(3,9), xp, yp, zp + Real, intent(out) :: uuBtrack, vvBtrack, wwBtrack + Real:: LZ(3,9), LY(3,3), LX(3), Zuu(9), Zvv(9), Zww(9), Yuu(3), Yvv(3), Yww(3), Xuu, Xvv, Xww, P1, P2, resto, Uresto, Vresto, Wresto, soma + Integer:: m, iNode, iTimes, cont + + !1. Interpolatting in Z direction 9 times, one for each node. (e.g. Hodges, 2000) + !1.1. - find the Lagrange coefficient formula + !for vertical interpolations + + + Do iNode=1,9 + Do m=1,3 + if (m==1) then + P1 = ((zp-zzN(2,iNode))/(zzN(1,iNode)-zzN(2,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(1,iNode)-zzN(3,iNode))) + elseif (m==2) then + P1 = ((zp-zzN(1,iNode))/(zzN(2,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(2,iNode)-zzN(3,iNode))) + else + P1 = ((zp-zzN(1,iNode))/(zzN(m,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(2,iNode))/(zzN(m,iNode)-zzN(2,iNode))) + Endif + LZ(m,iNode)=P1*P2 + EndDo + soma = LZ(1,iNode)+LZ(2,iNode)+LZ(3,iNode) + if (isnan(P1).or.isnan(P2)) then + continue + endif + + EndDo + !1.2. - Interpolating velocties (u, v, w) to the btrack particle cota + Do iNode=1,9 + Zuu(iNode) = LZ(1,iNode)*uuN(1,iNode)+LZ(2,iNode)*uuN(2,iNode)+LZ(3,iNode)*uuN(3,iNode) + Zvv(iNode) = LZ(1,iNode)*vvN(1,iNode)+LZ(2,iNode)*vvN(2,iNode)+LZ(3,iNode)*vvN(3,iNode) + Zww(iNode) = LZ(1,iNode)*wwN(1,iNode)+LZ(2,iNode)*wwN(2,iNode)+LZ(3,iNode)*wwN(3,iNode) + EndDo + !2. Interpolate in Y direction 3 times + !2.1. - find the Lagrange coefficient formula + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Do m=1,3 + if (m==1) then + P1 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode)-yyN(1,iNode+1))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode)-yyN(1,iNode+2))) + elseif (m==2) then + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+1)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode+1)-yyN(1,iNode+2))) + else + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+2)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode+2)-yyN(1,iNode+1))) + Endif + LY(m,cont)=P1*P2 + EndDo + soma = LY(1,cont)+LY(2,cont)+LY(3,cont) + if (isnan(P1).or.isnan(P2)) then + continue + endif + EndDo + !2.2. - Interpolating velocties (u, v, w) to the btrack particle yt + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Yuu(cont) = LY(1,cont)*Zuu(iNode)+LY(2,cont)*Zuu(iNode+1)+LY(3,cont)*Zuu(iNode+2) + Yvv(cont) = LY(1,cont)*Zvv(iNode)+LY(2,cont)*Zvv(iNode+1)+LY(3,cont)*Zvv(iNode+2) + Yww(cont) = LY(1,cont)*Zww(iNode)+LY(2,cont)*Zww(iNode+1)+LY(3,cont)*Zww(iNode+2) + EndDo + !3. Interpolate in X direction one times + !3.1. - find the Lagrange coefficient formula + Do m=1,3 + if (m==1) then + P1 = ((xp-xxN(1,4))/(xxN(1,1)-xxN(1,4))) + P2 = ((xp-xxN(1,7))/(xxN(1,1)-xxN(1,7))) + elseif (m==2) then + P1 = ((xp-xxN(1,1))/(xxN(1,4)-xxN(1,1))) + P2 = ((xp-xxN(1,7))/(xxN(1,4)-xxN(1,7))) + else + P1 = ((xp-xxN(1,1))/(xxN(1,7)-xxN(1,1))) + P2 = ((xp-xxN(1,4))/(xxN(1,7)-xxN(1,4))) + Endif + LX(m) = P1*P2 + EndDo + soma = LX(1)+LX(2)+LX(3) + if (isnan(P1).or.isnan(P2)) then + continue + endif + !3.2. - Interpolating velocties (u, v, w) to the btrack particle xt + Xuu = Lx(1)*Yuu(1)+Lx(2)*Yuu(2)+Lx(3)*Yuu(3) + Xvv = Lx(1)*Yvv(1)+Lx(2)*Yvv(2)+Lx(3)*Yvv(3) + Xww = Lx(1)*Yww(1)+Lx(2)*Yww(2)+Lx(3)*Yww(3) + + !4. Setting the Btrack velocities + uuBtrack = Xuu + vvBtrack = Xvv + wwBtrack = Xww + + Return + End Subroutine iQuadratic + + Subroutine iQuadraticNodes(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, bbElem, bbLayer, HydroParam, MeshParam) + + Use MeshVars !, Only: + Use Hydrodynamic ! Only: + + Implicit none + + Integer, intent(in) :: bbElem, bbLayer + Real, intent(inout) :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + Real :: Nodes(9) + Integer :: n1, n2, n3, n4, n5, n6, n7, n8, n9 + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + !iQuadratic Interpolation Nodes in bbLayer from bbElem + ! For nodes positions in the vector, the Standard is this: + ! n6 + ! n3 .--.--. n9 + ! | | + ! n2 . . . n8 + ! | n5 | + ! n1 .--.--. n7 + ! n4 + n1 = MeshParam%Quadri(3,bbElem) + 1 + n2 = MeshParam%Edge(2,bbElem) + n3 = MeshParam%Quadri(2,bbElem) + 1 + n4 = MeshParam%Edge(3,bbElem) + n5 = bbElem + n6 = MeshParam%Edge(1,bbElem) + n7 = MeshParam%Quadri(4,bbElem) + 1 + n8 = MeshParam%Edge(4,bbElem) + n9 = MeshParam%Quadri(1,bbElem) + 1 + Nodes(1:9)= (/n1, n2, n3, n4, n5, n6, n7, n8, n9 /) + ! Velocities by vertical section and by layers, in bottom to top (k-1/2 to k + 1/2). See Figure 3 in [2]): + ! Vertical 1 = West Edge + ! uuNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + uuNode(1,1)=HydroParam%uNode(bbLayer,1,Nodes(1)); vvNode(1,1)=HydroParam%uNode(bbLayer,2,Nodes(1)); wwNode(1,1)=HydroParam%uNode(bbLayer,3,Nodes(1)) + uuNode(1,2)=HydroParam%ug(Nodes(2),bbLayer); vvNode(1,2)=HydroParam%vg(Nodes(2),bbLayer); wwNode(1,2)=HydroParam%wg(Nodes(2),bbLayer) + uuNode(1,3)=HydroParam%uNode(bbLayer,1,Nodes(3)); vvNode(1,3)=HydroParam%uNode(bbLayer,2,Nodes(3)); wwNode(1,3)=HydroParam%uNode(bbLayer,3,Nodes(3)) + uuNode(2,1)=HydroParam%ubV(bbLayer,1,Nodes(1)); vvNode(2,1)=HydroParam%ubV(bbLayer,2,Nodes(1)); wwNode(2,1)=HydroParam%ubV(bbLayer,3,Nodes(1)) + uuNode(2,2)=HydroParam%uxy(bbLayer,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(bbLayer,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(bbLayer,Nodes(2)) + uuNode(2,3)=HydroParam%ubV(bbLayer,1,Nodes(3)); vvNode(2,3)=HydroParam%ubV(bbLayer,2,Nodes(3)); wwNode(2,3)=HydroParam%ubV(bbLayer,3,Nodes(3)) + uuNode(3,1)=HydroParam%uNode(bbLayer+1,1,Nodes(1)); vvNode(3,1)=HydroParam%uNode(bbLayer+1,2,Nodes(1)); wwNode(3,1)=HydroParam%uNode(bbLayer+1,3,Nodes(1)) + uuNode(3,2)=HydroParam%ug(Nodes(2),bbLayer+1); vvNode(3,2)=HydroParam%vg(Nodes(2),bbLayer+1); wwNode(3,2)=HydroParam%wg(Nodes(2),bbLayer+1) + uuNode(3,3)=HydroParam%uNode(bbLayer+1,1,Nodes(3)); vvNode(3,3)=HydroParam%uNode(bbLayer+1,2,Nodes(3)); wwNode(3,3)=HydroParam%uNode(bbLayer+1,3,Nodes(3)) + ! Vertical 2 = Cell Centered Section + uuNode(1,4)=HydroParam%ug(Nodes(4),bbLayer); vvNode(1,4)=HydroParam%vg(Nodes(4),bbLayer); wwNode(1,4)=HydroParam%wg(Nodes(4),bbLayer) + uuNode(1,5)=HydroParam%uxyL(bbLayer,1,Nodes(5)); vvNode(1,5)=HydroParam%uxyL(bbLayer,2,Nodes(5)); wwNode(1,5)=HydroParam%w(bbLayer,Nodes(5)) + uuNode(1,6)=HydroParam%ug(Nodes(6),bbLayer); vvNode(1,6)=HydroParam%vg(Nodes(6),bbLayer); wwNode(1,6)=HydroParam%wg(Nodes(6),bbLayer) + uuNode(2,4)=HydroParam%uxy(bbLayer,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(bbLayer,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(bbLayer,Nodes(4)) + uuNode(2,5)=HydroParam%ub(bbLayer,1,Nodes(5)); vvNode(2,5)=HydroParam%ub(bbLayer,2,Nodes(5)); wwNode(2,5)=HydroParam%ub(bbLayer,3,Nodes(5)) + uuNode(2,6)=HydroParam%uxy(bbLayer,1,Nodes(6)); vvNode(2,6)=HydroParam%uxy(bbLayer,2,Nodes(6)); wwNode(2,6)=HydroParam%wfc(bbLayer,Nodes(6)) + uuNode(3,4)=HydroParam%ug(Nodes(4),bbLayer+1); vvNode(3,4)=HydroParam%vg(Nodes(4),bbLayer+1); wwNode(3,4)=HydroParam%wg(Nodes(4),bbLayer+1) + uuNode(3,5)=HydroParam%uxyL(bbLayer+1,1,Nodes(5)); vvNode(3,5)=HydroParam%uxyL(bbLayer+1,2,Nodes(5)); wwNode(3,5)=HydroParam%w(bbLayer+1,Nodes(5)) + uuNode(3,6)=HydroParam%ug(Nodes(6),bbLayer+1); vvNode(3,6)=HydroParam%vg(Nodes(6),bbLayer+1); wwNode(3,6)=HydroParam%wg(Nodes(6),bbLayer+1) + ! Vertical 3 = East Edge + uuNode(1,7)=HydroParam%uNode(bbLayer,1,Nodes(7)); vvNode(1,7)=HydroParam%uNode(bbLayer,2,Nodes(7)); wwNode(1,7)=HydroParam%uNode(bbLayer,3,Nodes(7)) + uuNode(1,8)=HydroParam%ug(Nodes(8),bbLayer); vvNode(1,8)=HydroParam%vg(Nodes(8),bbLayer); wwNode(1,8)=HydroParam%wg(Nodes(8),bbLayer) + uuNode(1,9)=HydroParam%uNode(bbLayer,1,Nodes(9)); vvNode(1,9)=HydroParam%uNode(bbLayer,2,Nodes(9)); wwNode(1,9)=HydroParam%uNode(bbLayer,3,Nodes(9)) + uuNode(2,7)=HydroParam%ubV(bbLayer,1,Nodes(7)); vvNode(2,7)=HydroParam%ubV(bbLayer,2,Nodes(7)); wwNode(2,7)=HydroParam%ubV(bbLayer,3,Nodes(7)) + uuNode(2,8)=HydroParam%uxy(bbLayer,1,Nodes(8)); vvNode(2,8)=HydroParam%uxy(bbLayer,2,Nodes(8)); wwNode(2,8)=HydroParam%wfc(bbLayer,Nodes(8)) + uuNode(2,9)=HydroParam%ubV(bbLayer,1,Nodes(9)); vvNode(2,9)=HydroParam%ubV(bbLayer,2,Nodes(9)); wwNode(2,9)=HydroParam%ubV(bbLayer,3,Nodes(9)) + uuNode(3,7)=HydroParam%uNode(bbLayer+1,1,Nodes(7)); vvNode(3,7)=HydroParam%uNode(bbLayer+1,2,Nodes(7)); wwNode(3,7)=HydroParam%uNode(bbLayer+1,3,Nodes(7)) + uuNode(3,8)=HydroParam%ug(Nodes(8),bbLayer+1); vvNode(3,8)=HydroParam%vg(Nodes(8),bbLayer+1); wwNode(3,8)=HydroParam%wg(Nodes(8),bbLayer+1) + uuNode(3,9)=HydroParam%uNode(bbLayer+1,1,Nodes(9)); vvNode(3,9)=HydroParam%uNode(bbLayer+1,2,Nodes(9)); wwNode(3,9)=HydroParam%uNode(bbLayer+1,3,Nodes(9)) + ! + !If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + ! !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(1)))*0.5d0 + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0 + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(3)))*0.5d0 + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0 + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%eta(Nodes(5)))*0.5d0 + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0 + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(7)))*0.5d0 + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0 + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(9)))*0.5d0 + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + !Else + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + !EndIf + ! + If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(1)))*0.5d0 + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(3)))*0.5d0 + xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0 + xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%eta(Nodes(5)))*0.5d0 + xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0 + xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + + xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(7)))*0.5d0 + xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0 + xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(9)))*0.5d0 + xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + Else + xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + + xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + + xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + EndIf + + return + End Subroutine iQuadraticNodes + + + Subroutine AdvectionVelocities(iLayer0, iLayer, iFace, iEdge0, l, r, uuNode, vvNode, xxNode, yyNode, zzNode, dzNode, hhNode, uuint, vvint, dt, psi_flag, epsGrad, HydroParam, MeshParam) + + Use MeshVars + Use Hydrodynamic + Implicit none + + Integer :: iLayer0, iLayer, iEdge0, iFace, l, r + Real, intent(inout) :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), zzNode(5), dzNode(9), hhNode(9), dt, uuint, vvint + Integer :: iEdgein, n7, n9, rElem, lElem, psi_flag, Face + Real :: rj(2,4), psi(2,4), ru, epsGrad + Real :: Courant, fi_small, NearZero + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + NearZero = 1e-10 + psi_flag = 0 + fi_small = 0.d0 + psi(:,:) = 0.0d0 + rj(:,:) = 0.0d0 + + Face = MeshParam%Edge(iFace,l) + + !1) Advection velocity in z-direction: + !uuNode(11) = HydroParam%uxyL(iLayer,1,l); vvNode(11) = HydroParam%uxyL(iLayer,2,l) + !uuNode(12) = HydroParam%ub(iLayer,1,l); vvNode(12) = HydroParam%ub(iLayer,2,l) + !uuNode(13) = HydroParam%uxyL(iLayer+1,1,l); vvNode(13) = HydroParam%uxyL(iLayer+1,2,l) + + uuNode(11) = HydroParam%ug(Face,iLayer); vvNode(11) = HydroParam%vg(Face,iLayer) + uuNode(12) = HydroParam%uxy(iLayer,1,Face); vvNode(12) = HydroParam%uxy(iLayer,2,Face) + uuNode(13) = HydroParam%ug(Face,iLayer + 1); vvNode(13) = HydroParam%vg(Face,iLayer + 1) + + zzNode(2) = HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + zzNode(3) = (HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + HydroParam%Z(iLayer+1,Face))*0.5d0 + zzNode(4) = HydroParam%Z(iLayer+1,Face) + + If (HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face) >= 0.d0) Then + HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face)) + Else + HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer + 1) + HydroParam%wfc(iLayer,Face)) + EndIf + + !2) Advection velocities in x-y direction: + If (iFace==1) Then + + ! Set Stencil: + iEdgein = 3 + n7 = 2 + rElem = MeshParam%Neighbor(4,l) + lElem = MeshParam%Neighbor(2,l) + + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(4,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + !endif + ! + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(2,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + !endif + + ! Get Nodes data from stencil: + Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + + !Energy Conservation x - direction: + If ((uuNode(3) - uuNode(6))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + + If (uuNode(3) + uuNode(6) >= 0) Then + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*0.5*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6)) + + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(9) + uuNode(3)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*0.5*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7)) + + EndIf + !Energy Conservation y-direction: + If (vvNode(3) + vvNode(1)>= 0) Then + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(1)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*0.5*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1)) + + Else + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*0.5*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2)) + + EndIf + Else + !Momentum Conservation x-direction: + If (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6) >= 0 ) Then + + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6))/(dzNode(7) + dzNode(8) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(9)*dzNode(9))/(dzNode(7) + dzNode(8) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + EndIf + + !Momentum Conservation y-direction: + If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1)>= 0) Then + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1))/(dzNode(2) + dzNode(4) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + Else + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(5)*dzNode(5) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + EndIf + EndIf + + ElseIf (iFace==2) Then + + iEdgein = 4 + n7 = 3 + rElem = MeshParam%Neighbor(1,l) + lElem = MeshParam%Neighbor(3,l) + ! + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(1,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + !endif + ! + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(3,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + !endif + + Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + + ! Energy Conservation x - direction: + If ((uuNode(3) - uuNode(5))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + + If (uuNode(3) + uuNode(5)>= 0) Then + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(5)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(4)) + uuNode(4) + 0.5*rj(1,1)*(uuNode(4) - uuNode(5))) + + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(1) + uuNode(3)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(4)) + uuNode(2) + 0.5*rj(1,2)*(uuNode(2) - uuNode(3))) + + EndIf + ! Energy Conservation y-direction: + If (vvNode(3) + vvNode(6) >= 0) Then + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(6)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(7)) + vvNode(7) + 0.5*rj(2,3)*(vvNode(7) - vvNode(6))) + Else + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(9) + vvNode(3)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(7)) + vvNode(8) + 0.5*rj(2,4)*(vvNode(8) - vvNode(3))) + + EndIf + Else + ! Momentum Conservation x-direction: + If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5) >= 0 ) Then + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(1)*dzNode(1) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(4) + dzNode(2) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + EndIf + + ! Momentum Conservation y-direction: + If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6)>= 0) Then + + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6))/(dzNode(7) + dzNode(8) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + Else + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(9)*dzNode(9) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + EndIf + EndIf + + ElseIf (iFace==3) Then + + iEdgein = 1 + n7 = 4 + rElem = MeshParam%Neighbor(2,l) + lElem = MeshParam%Neighbor(4,l) + ! + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(2,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + !endif + ! + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(4,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + !endif + ! + Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + + !x - direction: + If ((uuNode(3) - uuNode(9))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + + If (uuNode(3) + uuNode(9) >= 0) Then + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(9)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(8)) + uuNode(8) + 0.5*rj(1,1)*(uuNode(8) - uuNode(9))) + + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(8)) + uuNode(7) + 0.5*rj(1,2)*(uuNode(7) - uuNode(3))) + + EndIf + ! y-direction: + If (vvNode(3) + vvNode(5) >= 0) Then + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(4)) + vvNode(4) + 0.5*rj(2,3)*(vvNode(4) - vvNode(5)) + NearZero ) + + Else + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(1) + vvNode(3)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(4)) + vvNode(2) + 0.5*rj(2,4)*(vvNode(2) - vvNode(3))) + + EndIf + Else + ! x-direction: + If (uuNode(3)*0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9) >= 0 ) Then + + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)**0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9))/(dzNode(8) + dzNode(7) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + Else + + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(6)*dzNode(6) + uuNode(3)*0.5*(dzNode(8) + dzNode(7)))/(dzNode(8) + dzNode(7) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + EndIf + + ! y-direction: + If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5)>= 0) Then + + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5))/(dzNode(2) + dzNode(4) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),xxNode(3),xxNode(4),xxNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + Else + + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(1)*dzNode(1) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + EndIf + EndIf + + ElseIf (iFace==4) Then + + iEdgein = 2 + n7 = 1 + rElem = MeshParam%Neighbor(3,l) + lElem = MeshParam%Neighbor(1,l) + + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(3,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + !endif + ! + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(1,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + !endif + + Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + + ! Energy Conservation x - direction: + If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + + If (uuNode(3) + uuNode(1)>= 0) Then + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(1)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(2)) + uuNode(2) + 0.5*rj(1,1)*(uuNode(2) - uuNode(1))) + + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(5) + uuNode(3)) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + + HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(2)) + uuNode(4) + 0.5*rj(1,2)*(uuNode(4) - uuNode(3))) + + EndIf + ! Energy Conservation y-direction: + If (vvNode(3) + vvNode(9) >= 0) Then + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(9)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(8)) + vvNode(8) + 0.5*rj(2,3)*(vvNode(8) - vvNode(9))) + + Else + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(6) + vvNode(3)) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + + HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(8)) + vvNode(7) + 0.5*rj(2,4)*(vvNode(7) - vvNode(3))) + + EndIf + Else + ! Momentum Conservation x-direction: + If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1) >= 0 ) Then + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + Else + HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(5)*dzNode(5) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + + rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + + rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + + rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + EndIf + + ! Momentum Conservation y-direction: + If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9)>= 0) Then + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9))/(dzNode(7) + dzNode(8) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + Else + HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(6)*dzNode(6) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8) + NearZero ) + + Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + + rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + + rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + + rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + + rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + EndIf + EndIf + + EndIf + + End Subroutine AdvectionVelocities + + Subroutine iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, hhBtrack, uuN, vvN, wwN, hhN, xxN, yyN, zzN, xp, yp, zp ) + !( uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) ) + + Implicit None + + Real, intent(in) :: uuN(3,9), vvN(3,9), wwN(3,9), hhN(3,9), xxN(3,9), yyN(3,9), zzN(3,9), xp, yp, zp + Real, intent(out) :: uuBtrack, vvBtrack, wwBtrack, hhBtrack + Real:: LZ(3,9), LY(3,3), LX(3), Zuu(9), Zvv(9), Zww(9), Zhh(9), Yuu(3), Yvv(3), Yww(3), Yhh(3), Xuu, Xvv, Xww, Xhh, P1, P2, resto, Uresto, Vresto, Wresto, soma + Integer:: m, iNode, iTimes, cont + + !1. Interpolatting in Z direction 9 times, one for each node. (e.g. Hodges, 2000) + !1.1. - find the Lagrange coefficient formula + !for vertical interpolations + + + Do iNode=1,9 + Do m=1,3 + if (m==1) then + P1 = ((zp-zzN(2,iNode))/(zzN(1,iNode)-zzN(2,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(1,iNode)-zzN(3,iNode))) + elseif (m==2) then + P1 = ((zp-zzN(1,iNode))/(zzN(2,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(3,iNode))/(zzN(2,iNode)-zzN(3,iNode))) + else + P1 = ((zp-zzN(1,iNode))/(zzN(m,iNode)-zzN(1,iNode))) + P2 = ((zp-zzN(2,iNode))/(zzN(m,iNode)-zzN(2,iNode))) + Endif + LZ(m,iNode)=P1*P2 + EndDo + soma = LZ(1,iNode)+LZ(2,iNode)+LZ(3,iNode) + if (isnan(P1).or.isnan(P2)) then + continue + endif + + EndDo + !1.2. - Interpolating velocties (u, v, w) to the btrack particle cota + Do iNode=1,9 + Zuu(iNode) = LZ(1,iNode)*uuN(1,iNode)+LZ(2,iNode)*uuN(2,iNode)+LZ(3,iNode)*uuN(3,iNode) + Zvv(iNode) = LZ(1,iNode)*vvN(1,iNode)+LZ(2,iNode)*vvN(2,iNode)+LZ(3,iNode)*vvN(3,iNode) + Zww(iNode) = LZ(1,iNode)*wwN(1,iNode)+LZ(2,iNode)*wwN(2,iNode)+LZ(3,iNode)*wwN(3,iNode) + Zhh(iNode) = LZ(1,iNode)*hhN(1,iNode)+LZ(2,iNode)*hhN(2,iNode)+LZ(3,iNode)*hhN(3,iNode) + EndDo + !2. Interpolate in Y direction 3 times + !2.1. - find the Lagrange coefficient formula + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Do m=1,3 + if (m==1) then + P1 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode)-yyN(1,iNode+1))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode)-yyN(1,iNode+2))) + elseif (m==2) then + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+1)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+2))/(yyN(1,iNode+1)-yyN(1,iNode+2))) + else + P1 = ((yp-yyN(1,iNode))/(yyN(1,iNode+2)-yyN(1,iNode))) + P2 = ((yp-yyN(1,iNode+1))/(yyN(1,iNode+2)-yyN(1,iNode+1))) + Endif + LY(m,cont)=P1*P2 + EndDo + soma = LY(1,cont)+LY(2,cont)+LY(3,cont) + if (isnan(P1).or.isnan(P2)) then + continue + endif + EndDo + !2.2. - Interpolating velocties (u, v, w) to the btrack particle yt + cont=0 + Do iNode=1,7,3 + cont=cont+1 + Yuu(cont) = LY(1,cont)*Zuu(iNode)+LY(2,cont)*Zuu(iNode+1)+LY(3,cont)*Zuu(iNode+2) + Yvv(cont) = LY(1,cont)*Zvv(iNode)+LY(2,cont)*Zvv(iNode+1)+LY(3,cont)*Zvv(iNode+2) + Yww(cont) = LY(1,cont)*Zww(iNode)+LY(2,cont)*Zww(iNode+1)+LY(3,cont)*Zww(iNode+2) + Yhh(cont) = LY(1,cont)*Zhh(iNode)+LY(2,cont)*Zhh(iNode+1)+LY(3,cont)*Zhh(iNode+2) + EndDo + !3. Interpolate in X direction one times + !3.1. - find the Lagrange coefficient formula + Do m=1,3 + if (m==1) then + P1 = ((xp-xxN(1,4))/(xxN(1,1)-xxN(1,4))) + P2 = ((xp-xxN(1,7))/(xxN(1,1)-xxN(1,7))) + elseif (m==2) then + P1 = ((xp-xxN(1,1))/(xxN(1,4)-xxN(1,1))) + P2 = ((xp-xxN(1,7))/(xxN(1,4)-xxN(1,7))) + else + P1 = ((xp-xxN(1,1))/(xxN(1,7)-xxN(1,1))) + P2 = ((xp-xxN(1,4))/(xxN(1,7)-xxN(1,4))) + Endif + LX(m) = P1*P2 + EndDo + soma = LX(1)+LX(2)+LX(3) + if (isnan(P1).or.isnan(P2)) then + continue + endif + !3.2. - Interpolating velocties (u, v, w) to the btrack particle xt + Xuu = Lx(1)*Yuu(1)+Lx(2)*Yuu(2)+Lx(3)*Yuu(3) + Xvv = Lx(1)*Yvv(1)+Lx(2)*Yvv(2)+Lx(3)*Yvv(3) + Xww = Lx(1)*Yww(1)+Lx(2)*Yww(2)+Lx(3)*Yww(3) + Xhh = Lx(1)*Yhh(1)+Lx(2)*Yhh(2)+Lx(3)*Yhh(3) + + !4. Setting the Btrack velocities + uuBtrack = Xuu + vvBtrack = Xvv + wwBtrack = Xww + hhBtrack = Xhh + + return + End Subroutine iQuadraticCons + + + !Subroutine AdvectionVelocities(iLayer0, iLayer, iFace, iEdge0, l, r, uuNode, vvNode, xxNode, yyNode, zzNode, dzNode, hhNode, uuint, vvint, dt, psi_flag, epsGrad, HydroParam, MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + !Implicit none + ! + !Integer :: iLayer0, iLayer, iEdge0, iFace, l, r + !Real, intent(inout) :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), zzNode(5), dzNode(9), hhNode(9), dt, uuint, vvint + !Integer :: iEdgein, n7, n9, rElem, lElem, psi_flag, Face + !Real :: rj(2,4), psi(2,4), ru, epsGrad + !Real :: Courant, fi_small, NearZero + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !NearZero = 1e-10 + !psi_flag = 0 + !fi_small = 0.d0 + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + ! + !Face = MeshParam%Edge(iFace,l) + ! + !!1) Advection velocity in z-direction: + !!uuNode(11) = HydroParam%uxyL(iLayer,1,l); vvNode(11) = HydroParam%uxyL(iLayer,2,l) + !!uuNode(12) = HydroParam%ub(iLayer,1,l); vvNode(12) = HydroParam%ub(iLayer,2,l) + !!uuNode(13) = HydroParam%uxyL(iLayer+1,1,l); vvNode(13) = HydroParam%uxyL(iLayer+1,2,l) + ! + !uuNode(11) = HydroParam%ug(Face,iLayer); vvNode(11) = HydroParam%vg(Face,iLayer) + !uuNode(12) = HydroParam%uxy(iLayer,1,Face); vvNode(12) = HydroParam%uxy(iLayer,2,Face) + !uuNode(13) = HydroParam%ug(Face,iLayer + 1); vvNode(13) = HydroParam%vg(Face,iLayer + 1) + ! + !zzNode(2) = HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + !zzNode(3) = (HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + HydroParam%Z(iLayer+1,Face))*0.5d0 + !zzNode(4) = HydroParam%Z(iLayer+1,Face) + ! + !If (HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face) >= 0.d0) Then + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face)) + !Else + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer + 1) + HydroParam%wfc(iLayer,Face)) + !EndIf + ! + !uuint = uuint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(uuNode(12)-uuNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(uuNode(13) - uuNode(12))/(zzNode(4)-zzNode(3))) + !vvint = vvint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(vvNode(12)-vvNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(vvNode(13) - vvNode(12))/(zzNode(4)-zzNode(3))) + ! + !!2) Advection velocities in x-y direction: + !If (iFace==1) Then + ! + ! ! Set Stencil: + ! iEdgein = 3 + ! n7 = 2 + ! rElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(4,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + ! endif + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(2,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + ! endif + ! + ! ! Get Nodes data from stencil: + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(6))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*0.5*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(9) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*0.5*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7)) + ! + ! EndIf + ! !Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(1)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*0.5*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*0.5*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2)) + ! + ! EndIf + ! Else + ! !Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6))/(dzNode(7) + dzNode(8) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(9)*dzNode(9))/(dzNode(7) + dzNode(8) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! !Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1))/(dzNode(2) + dzNode(4) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(5)*dzNode(5) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(6))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(9) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(6))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(9) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dy) + ! ! + ! uuint = uuint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(2) + psi(1,3)*uuNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(4) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(2))/MeshParam%dy/2) + ! vvint = vvint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(7) + psi(2,1)*vvNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(8) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2))/MeshParam%dy/2) + ! + !ElseIf (iFace==2) Then + ! + ! iEdgein = 4 + ! n7 = 3 + ! rElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(1,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + ! endif + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(3,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + ! endif + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(5))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(5)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(4)) + uuNode(4) + 0.5*rj(1,1)*(uuNode(4) - uuNode(5))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(1) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(4)) + uuNode(2) + 0.5*rj(1,2)*(uuNode(2) - uuNode(3))) + ! + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(7)) + vvNode(7) + 0.5*rj(2,3)*(vvNode(7) - vvNode(6))) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(9) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(7)) + vvNode(8) + 0.5*rj(2,4)*(vvNode(8) - vvNode(3))) + ! + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(1)*dzNode(1) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(4) + dzNode(2) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6))/(dzNode(7) + dzNode(8) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(9)*dzNode(9) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(9) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(9) - vvNode(3))/MeshParam%dy) + ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(4) + psi(1,1)*uuNode(5))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(2) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(4))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(4) + psi(2,1)*vvNode(5))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(2) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(4))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy/2) + ! + ! + !ElseIf (iFace==3) Then + ! + ! iEdgein = 1 + ! n7 = 4 + ! rElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(2,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(2,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + ! endif + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(4,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(4,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + ! endif + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !x - direction: + ! If ((uuNode(3) - uuNode(9))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(9) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(9)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(8)) + uuNode(8) + 0.5*rj(1,1)*(uuNode(8) - uuNode(9))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(8)) + uuNode(7) + 0.5*rj(1,2)*(uuNode(7) - uuNode(3))) + ! + ! EndIf + ! ! y-direction: + ! If (vvNode(3) + vvNode(5) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(4)) + vvNode(4) + 0.5*rj(2,3)*(vvNode(4) - vvNode(5)) + NearZero ) + ! + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(1) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(4)) + vvNode(2) + 0.5*rj(2,4)*(vvNode(2) - vvNode(3))) + ! + ! EndIf + ! Else + ! ! x-direction: + ! If (uuNode(3)*0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)**0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9))/(dzNode(8) + dzNode(7) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(6)*dzNode(6) + uuNode(3)*0.5*(dzNode(8) + dzNode(7)))/(dzNode(8) + dzNode(7) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5))/(dzNode(2) + dzNode(4) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),xxNode(3),xxNode(4),xxNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(1)*dzNode(1) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dy) + ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(8) + psi(1,1)*uuNode(9))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(7) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(8))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(4) + psi(1,3)*uuNode(5))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(2) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(4))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(8) + psi(2,1)*vvNode(9))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(7) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(8))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(4) + psi(2,3)*vvNode(5))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(2) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(4))/MeshParam%dy/2) + ! + ! + !ElseIf (iFace==4) Then + ! + ! iEdgein = 2 + ! n7 = 1 + ! rElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(3,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) >= 110 - NearZero) then + ! relem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(3,l)) <= 90 + NearZero) then + ! relem = 0 + ! endif + ! endif + ! + ! !bench 02: + ! if ( 100-NearZero <= MeshParam%EdgeBary(1,MeshParam%Edge(1,l))<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) >= 110 - NearZero) then + ! lelem = 0 + ! elseif(MeshParam%EdgeBary(2,MeshParam%Edge(1,l)) <= 90 + NearZero) then + ! lelem = 0 + ! endif + ! endif + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(2)) + uuNode(2) + 0.5*rj(1,1)*(uuNode(2) - uuNode(1))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(5) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(2)) + uuNode(4) + 0.5*rj(1,2)*(uuNode(4) - uuNode(3))) + ! + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(9) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(8)) + vvNode(8) + 0.5*rj(2,3)*(vvNode(8) - vvNode(9))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(6) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(8)) + vvNode(7) + 0.5*rj(2,4)*(vvNode(7) - vvNode(3))) + ! + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(5)*dzNode(5) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9))/(dzNode(7) + dzNode(8) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(6)*dzNode(6) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8) + NearZero ) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dy) + ! ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(8) + psi(1,3)*uuNode(9))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(7) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(8))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(8) + psi(2,3)*vvNode(9))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(7) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(8))/MeshParam%dy/2) + ! + !EndIf + ! + !End Subroutine AdvectionVelocities + ! + + ! + !! UPWIND + Limiter in velocities + !Subroutine AdvectionVelocities(iLayer0, iLayer, iFace, iEdge0, l, r, uuNode, vvNode, xxNode, yyNode, zzNode, dzNode, hhNode, uuint, vvint, dt, psi_flag, epsGrad, HydroParam, MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + !Implicit none + ! + !Integer :: iLayer0, iLayer, iEdge0, iFace, l, r + !Real, intent(inout) :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), zzNode(5), dzNode(9), hhNode(9), dt, uuint, vvint + !Integer :: iEdgein, n7, n9, rElem, lElem, psi_flag, Face + !Real :: rj(2,4), psi(2,4), ru, epsGrad + !Real :: Courant, fi_small + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !psi_flag = 0 + !fi_small = 0.d0 + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + ! + !Face = MeshParam%Edge(iFace,l) + ! + !!1) Advection velocity in z-direction: + !!uuNode(11) = HydroParam%uxyL(iLayer,1,l); vvNode(11) = HydroParam%uxyL(iLayer,2,l) + !!uuNode(12) = HydroParam%ub(iLayer,1,l); vvNode(12) = HydroParam%ub(iLayer,2,l) + !!uuNode(13) = HydroParam%uxyL(iLayer+1,1,l); vvNode(13) = HydroParam%uxyL(iLayer+1,2,l) + ! + !uuNode(11) = HydroParam%ug(Face,iLayer); vvNode(11) = HydroParam%vg(Face,iLayer) + !uuNode(12) = HydroParam%uxy(iLayer,1,Face); vvNode(12) = HydroParam%uxy(iLayer,2,Face) + !uuNode(13) = HydroParam%ug(Face,iLayer + 1); vvNode(13) = HydroParam%vg(Face,iLayer + 1) + ! + !zzNode(2) = HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + !zzNode(3) = (HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + HydroParam%Z(iLayer+1,Face))*0.5d0 + !zzNode(4) = HydroParam%Z(iLayer+1,Face) + ! + !If (HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face) >= 0.d0) Then + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face)) + !Else + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer + 1) + HydroParam%wfc(iLayer,Face)) + !EndIf + ! + !uuint = uuint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(uuNode(12)-uuNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(uuNode(13) - uuNode(12))/(zzNode(4)-zzNode(3))) + !vvint = vvint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(vvNode(12)-vvNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(vvNode(13) - vvNode(12))/(zzNode(4)-zzNode(3))) + ! + !!2) Advection velocities in x-y direction: + !If (iFace==1) Then + ! + ! ! Set Stencil: + ! iEdgein = 3 + ! n7 = 2 + ! rElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! + ! ! Get Nodes data from stencil: + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(6))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(9) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! !Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(1)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! !Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(9)*dzNode(9))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! !Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(5)*dzNode(5) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(6))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(9) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(6))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(9) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dy) + ! ! + ! uuint = uuint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(2) + psi(1,3)*uuNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(4) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(2))/MeshParam%dy/2) + ! vvint = vvint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(7) + psi(2,1)*vvNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(8) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2))/MeshParam%dy/2) + ! + !ElseIf (iFace==2) Then + ! + ! iEdgein = 4 + ! n7 = 3 + ! rElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(5))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(5)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(1) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(9) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(1)*dzNode(1) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(9)*dzNode(9) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(9) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(9) - vvNode(3))/MeshParam%dy) + ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(4) + psi(1,1)*uuNode(5))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(2) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(4))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(4) + psi(2,1)*vvNode(5))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(2) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(4))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy/2) + ! + ! + !ElseIf (iFace==3) Then + ! + ! iEdgein = 1 + ! n7 = 4 + ! rElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !x - direction: + ! If ((uuNode(3) - uuNode(9))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(9) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(9)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! y-direction: + ! If (vvNode(3) + vvNode(5) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(1) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! ! x-direction: + ! If (uuNode(3)*0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)**0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9))/(dzNode(8) + dzNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(6)*dzNode(6) + uuNode(3)*0.5*(dzNode(8) + dzNode(7)))/(dzNode(8) + dzNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),xxNode(3),xxNode(4),xxNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(1)*dzNode(1) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dy) + ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(8) + psi(1,1)*uuNode(9))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(7) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(8))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(4) + psi(1,3)*uuNode(5))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(2) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(4))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(8) + psi(2,1)*vvNode(9))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(7) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(8))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(4) + psi(2,3)*vvNode(5))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(2) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(4))/MeshParam%dy/2) + ! + ! + !ElseIf (iFace==4) Then + ! + ! iEdgein = 2 + ! n7 = 1 + ! rElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(5) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(9) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(6) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(5)*dzNode(5) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(6)*dzNode(6) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dy) + ! ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(8) + psi(1,3)*uuNode(9))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(7) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(8))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(8) + psi(2,3)*vvNode(9))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(7) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(8))/MeshParam%dy/2) + ! + !EndIf + ! + !End Subroutine AdvectionVelocities + ! + + ! UPWIND + ! + !Subroutine AdvectionVelocities(iLayer0, iLayer, iFace, iEdge0, l, r, uuNode, vvNode, xxNode, yyNode, zzNode, dzNode, hhNode, uuint, vvint, dt, psi_flag, epsGrad, HydroParam, MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + !Implicit none + ! + !Integer :: iLayer0, iLayer, iEdge0, iFace, l, r + !Real, intent(inout) :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), zzNode(5), dzNode(9), hhNode(9), dt, uuint, vvint + !Integer :: iEdgein, n7, n9, rElem, lElem, psi_flag, Face + !Real :: rj(2,4), psi(2,4), ru, epsGrad + !Real :: Courant, fi_small + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !psi_flag = 0 + !fi_small = 0.d0 + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + ! + !Face = MeshParam%Edge(iFace,l) + ! + !!1) Advection velocity in z-direction: + !!uuNode(11) = HydroParam%uxyL(iLayer,1,l); vvNode(11) = HydroParam%uxyL(iLayer,2,l) + !!uuNode(12) = HydroParam%ub(iLayer,1,l); vvNode(12) = HydroParam%ub(iLayer,2,l) + !!uuNode(13) = HydroParam%uxyL(iLayer+1,1,l); vvNode(13) = HydroParam%uxyL(iLayer+1,2,l) + ! + !uuNode(11) = HydroParam%ug(Face,iLayer); vvNode(11) = HydroParam%vg(Face,iLayer) + !uuNode(12) = HydroParam%uxy(iLayer,1,Face); vvNode(12) = HydroParam%uxy(iLayer,2,Face) + !uuNode(13) = HydroParam%ug(Face,iLayer + 1); vvNode(13) = HydroParam%vg(Face,iLayer + 1) + ! + !zzNode(2) = HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + !zzNode(3) = (HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + HydroParam%Z(iLayer+1,Face))*0.5d0 + !zzNode(4) = HydroParam%Z(iLayer+1,Face) + ! + !If (HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face) >= 0.d0) Then + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face)) + !Else + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer + 1) + HydroParam%wfc(iLayer,Face)) + !EndIf + ! + !uuint = uuint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(uuNode(12)-uuNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(uuNode(13) - uuNode(12))/(zzNode(4)-zzNode(3))) + !vvint = vvint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(vvNode(12)-vvNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(vvNode(13) - vvNode(12))/(zzNode(4)-zzNode(3))) + ! + !!2) Advection velocities in x-y direction: + !If (iFace==1) Then + ! + ! ! Set Stencil: + ! iEdgein = 3 + ! n7 = 2 + ! rElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! + ! ! Get Nodes data from stencil: + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(6))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(9) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! !Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(1)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! !Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(6)*dzNode(6))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(9)*dzNode(9))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! !Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(1)*dzNode(1))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(5)*dzNode(5) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(6))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(9) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dy) + ! vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(6))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(9) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dy) + ! + !! uuint = uuint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(2) + psi(1,3)*uuNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(4) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(2))/MeshParam%dy/2) + !! vvint = vvint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(7) + psi(2,1)*vvNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(8) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2))/MeshParam%dy/2) + ! + !ElseIf (iFace==2) Then + ! + ! iEdgein = 4 + ! n7 = 3 + ! rElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(5))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(5)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(1) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(9) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(1)*dzNode(1) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(6)*dzNode(6))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(9)*dzNode(9) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(9) - uuNode(3))/MeshParam%dy) + ! vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(9) - vvNode(3))/MeshParam%dy) + ! + ! !uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + ! !vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + ! !wwint = wwint + ! + !ElseIf (iFace==3) Then + ! + ! iEdgein = 1 + ! n7 = 4 + ! rElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !x - direction: + ! If ((uuNode(3) - uuNode(9))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(9) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(9)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(6) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! y-direction: + ! If (vvNode(3) + vvNode(5) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(5)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(1) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! ! x-direction: + ! If (uuNode(3)*0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)**0.5*(dzNode(8) + dzNode(7)) + uuNode(9)*dzNode(9))/(dzNode(8) + dzNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(6)*dzNode(6) + uuNode(3)*0.5*(dzNode(8) + dzNode(7)))/(dzNode(8) + dzNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(5)*dzNode(5))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),xxNode(3),xxNode(4),xxNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(1)*dzNode(1) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dy) + ! vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dy) + ! + ! !uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + ! !vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + ! !wwint = wwint + ! + !ElseIf (iFace==4) Then + ! + ! iEdgein = 2 + ! n7 = 1 + ! rElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(5) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(9) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(6) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(5)*dzNode(5) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(9)*dzNode(9))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(6)*dzNode(6) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + ! EndIf + ! + ! uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dy) + ! vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dy) + ! + ! !uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + ! !vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + ! !wwint = wwint + ! + !EndIf + ! + !End Subroutine AdvectionVelocities + + ! + !Subroutine AdvectionVelocities(iLayer0, iLayer, iFace, iEdge0, l, r, uuNode, vvNode, xxNode, yyNode, zzNode, dzNode, hhNode, uuint, vvint, dt, psi_flag, epsGrad, HydroParam, MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + !Implicit none + ! + !Integer :: iLayer0, iLayer, iEdge0, iFace, l, r + !Real, intent(inout) :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), zzNode(5), dzNode(9), hhNode(9), dt, uuint, vvint + !Integer :: iEdgein, n7, n9, rElem, lElem, psi_flag, Face + !Real :: rj(2,4), etarj(2), psi(2,4), ru, epsGrad + !Real :: Courant, fi_small + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !psi_flag = 0 + !fi_small = 0.d0 + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + ! + !Face = MeshParam%Edge(iFace,l) + ! + !!1) Advection velocity in z-direction: + !!uuNode(11) = HydroParam%uxyL(iLayer,1,l); vvNode(11) = HydroParam%uxyL(iLayer,2,l) + !!uuNode(12) = HydroParam%ub(iLayer,1,l); vvNode(12) = HydroParam%ub(iLayer,2,l) + !!uuNode(13) = HydroParam%uxyL(iLayer+1,1,l); vvNode(13) = HydroParam%uxyL(iLayer+1,2,l) + ! + !uuNode(11) = HydroParam%ug(Face,iLayer); vvNode(11) = HydroParam%vg(Face,iLayer) + !uuNode(12) = HydroParam%uxy(iLayer,1,Face); vvNode(12) = HydroParam%uxy(iLayer,2,Face) + !uuNode(13) = HydroParam%ug(Face,iLayer + 1); vvNode(13) = HydroParam%vg(Face,iLayer + 1) + ! + !zzNode(2) = HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + !zzNode(3) = (HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + HydroParam%Z(iLayer+1,Face))*0.5d0 + !zzNode(4) = HydroParam%Z(iLayer+1,Face) + ! + !If (HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face) >= 0.d0) Then + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer) + HydroParam%wfc(iLayer,Face)) + !Else + ! HydroParam%uArrow(iLayer0,3,iEdge0) = 0.5*(HydroParam%wg(Face,iLayer + 1) + HydroParam%wfc(iLayer,Face)) + !EndIf + ! + !uuint = uuint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(uuNode(12)-uuNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(uuNode(13) - uuNode(12))/(zzNode(4)-zzNode(3))) + !vvint = vvint - dt*(max(HydroParam%uArrow(iLayer0,3,iEdge0), 0.d0)*(vvNode(12)-vvNode(11))/(zzNode(3)-zzNode(2)) + min(HydroParam%uArrow(iLayer0,3,iEdge0),0.d0)*(vvNode(13) - vvNode(12))/(zzNode(4)-zzNode(3))) + ! + !!2) Advection velocities in x-y direction: + !If (iFace==1) Then + ! + ! ! Set Stencil: + ! iEdgein = 3 + ! n7 = 2 + ! rElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! + ! ! Get Nodes data from stencil: + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(7))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(7) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(7) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*0.5*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(8) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*0.5*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7)) + ! + ! EndIf + ! !Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(2)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*0.5*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1)) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*0.5*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2)) + ! + ! EndIf + ! Else + ! !Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(7)*dzNode(7) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(7)*dzNode(7))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! + ! etarj(1) = ru(hhNode(3),hhNode(7),hhNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! etarj(2) = ru(hhNode(8),hhNode(3),hhNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(7))) + uuNode(7)*(dzNode(7) + 0.5*etarj(1)*(hhNode(7)-hhNode(6))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(7))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(7) + dzNode(8)) + uuNode(8)*dzNode(8))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(8),hhNode(3),hhNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! etarj(2) = ru(hhNode(9),hhNode(8),hhNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(7))) + uuNode(8)*(dzNode(8) + 0.5*etarj(2)*(hhNode(8)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(7))) + ! + ! EndIf + ! + ! !Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(2)*dzNode(2)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(2)*dzNode(2))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(2),hhNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! etarj(2) = ru(hhNode(4),hhNode(3),hhNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(2))) + uuNode(2)*(dzNode(2) + 0.5*etarj(1)*(hhNode(2)-hhNode(1))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(2))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(4)*dzNode(4) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(4),hhNode(3),hhNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! etarj(2) = ru(hhNode(5),hhNode(4),hhNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(2))) + uuNode(4)*(dzNode(4) + 0.5*etarj(2)*(hhNode(4)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(2))) + ! + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(7))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(8) - uuNode(3))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(2))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(4) - uuNode(3))/MeshParam%dy/2) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(7))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(8) - vvNode(3))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(2))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(4) - vvNode(3))/MeshParam%dy/2) + ! ! + ! uuint = uuint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(7) + psi(1,1)*uuNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(8) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(2) + psi(1,3)*uuNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(4) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(2))/MeshParam%dy/2) + ! vvint = vvint - dt*0.5*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(7) + psi(2,1)*vvNode(6))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(8) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(7))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(2) + psi(2,3)*vvNode(1))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(4) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(2))/MeshParam%dy/2) + ! + !ElseIf (iFace==2) Then + ! + ! iEdgein = 4 + ! n7 = 3 + ! rElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(5))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(4)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(4)) + uuNode(4) + 0.5*rj(1,1)*(uuNode(4) - uuNode(5))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(2) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(4)) + uuNode(2) + 0.5*rj(1,2)*(uuNode(2) - uuNode(3))) + ! + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(7) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(7)) + vvNode(7) + 0.5*rj(2,3)*(vvNode(7) - vvNode(6))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(8) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(7)) + vvNode(8) + 0.5*rj(2,4)*(vvNode(8) - vvNode(3))) + ! + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(4)*dzNode(4) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(4)*dzNode(4))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(4),hhNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! etarj(2) = ru(hhNode(2),hhNode(3),hhNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(4))) + uuNode(4)*(dzNode(4) + 0.5*etarj(1)*(hhNode(4)-hhNode(5))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(4))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(2)*dzNode(2) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(2),hhNode(3),hhNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! etarj(2) = ru(hhNode(1),hhNode(2),hhNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(4))) + uuNode(2)*(dzNode(2) + 0.5*etarj(2)*(hhNode(2)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(4))) + ! + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(7)*dzNode(7)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(7)*dzNode(7))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(7),hhNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! etarj(2) = ru(hhNode(8),hhNode(3),hhNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(7))) + uuNode(7)*(dzNode(7) + 0.5*etarj(1)*(hhNode(7)-hhNode(6))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(7))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(8)*dzNode(8) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(8),hhNode(3),hhNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! etarj(2) = ru(hhNode(9),hhNode(8),hhNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(7))) + uuNode(8)*(dzNode(8) + 0.5*etarj(2)*(hhNode(8)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(7))) + ! + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(4))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(2) - uuNode(3))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(7))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(8) - uuNode(3))/MeshParam%dy/2) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(4))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(2) - vvNode(3))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(7))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(8) - vvNode(3))/MeshParam%dy/2) + ! ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(4) + psi(1,1)*uuNode(5))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(2) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(4))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(4) + psi(2,1)*vvNode(5))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(2) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(4))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy/2) + ! + !ElseIf (iFace==3) Then + ! + ! iEdgein = 1 + ! n7 = 4 + ! rElem = MeshParam%Right(MeshParam%Edge(2,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(4,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! !x - direction: + ! If ((uuNode(3) - uuNode(8))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(8) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(8)) + uuNode(8) + 0.5*rj(1,1)*(uuNode(8) - uuNode(9))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(7) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(8)) + uuNode(7) + 0.5*rj(1,2)*(uuNode(7) - uuNode(3))) + ! + ! EndIf + ! ! y-direction: + ! If (vvNode(3) + vvNode(4) >= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(4)) + vvNode(4) + 0.5*rj(2,3)*(vvNode(4) - vvNode(5))) + ! + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(2) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(4)) + vvNode(2) + 0.5*rj(2,4)*(vvNode(2) - vvNode(3))) + ! + ! EndIf + ! Else + ! ! x-direction: + ! If (uuNode(3)*0.5*(dzNode(8) + dzNode(7)) + uuNode(8)*dzNode(8) >= 0 ) Then + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)**0.5*(dzNode(8) + dzNode(7)) + uuNode(8)*dzNode(8))/(dzNode(8) + dzNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(8),hhNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! etarj(2) = ru(hhNode(7),hhNode(3),hhNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(8))) + uuNode(8)*(dzNode(8) + 0.5*etarj(1)*(hhNode(8)-hhNode(9))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(8))) + ! + ! Else + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(7)*dzNode(7) + uuNode(3)*0.5*(dzNode(8) + dzNode(7)))/(dzNode(8) + dzNode(7)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(7),hhNode(3),hhNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! etarj(2) = ru(hhNode(6),hhNode(7),hhNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(8))) + uuNode(7)*(dzNode(7) + 0.5*etarj(2)*(hhNode(7)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(8))) + ! + ! EndIf + ! + ! ! y-direction: + ! If (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(4)*dzNode(4)>= 0) Then + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(2) + dzNode(4)) + vvNode(4)*dzNode(4))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(4),uuNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(4),vvNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(2),vvNode(3),vvNode(4),yyNode(2),xxNode(3),xxNode(4),xxNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(4),hhNode(5),xxNode(3),xxNode(4),xxNode(5),yyNode(3),yyNode(4),yyNode(5)) + ! etarj(2) = ru(hhNode(2),hhNode(3),hhNode(4),yyNode(2),xxNode(3),xxNode(4),xxNode(2),yyNode(3),yyNode(4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(4))) + uuNode(4)*(dzNode(4) + 0.5*etarj(1)*(hhNode(4)-hhNode(5))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(4))) + ! + ! Else + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(2)*dzNode(2) + vvNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(2),uuNode(3),uuNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(1),uuNode(2),uuNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(2),vvNode(3),vvNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(1),vvNode(2),vvNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(2),hhNode(3),hhNode(4),xxNode(2),xxNode(3),xxNode(4),yyNode(2),yyNode(3),yyNode(4)) + ! etarj(2) = ru(hhNode(1),hhNode(2),hhNode(3),xxNode(1),xxNode(2),xxNode(3),yyNode(1),yyNode(2),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(4))) + uuNode(2)*(dzNode(2) + 0.5*etarj(2)*(hhNode(2)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(4))) + ! + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(1) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(5))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(1) - vvNode(3))/MeshParam%dy) + ! ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(8) + psi(1,1)*uuNode(9))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(7) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(8))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(4) + psi(1,3)*uuNode(5))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(2) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(4))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(8) + psi(2,1)*vvNode(9))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(7) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(8))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(4) + psi(2,3)*vvNode(5))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(2) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(4))/MeshParam%dy/2) + ! + !ElseIf (iFace==4) Then + ! + ! iEdgein = 2 + ! n7 = 1 + ! rElem = MeshParam%Right(MeshParam%Edge(3,l)) + ! lElem = MeshParam%Right(MeshParam%Edge(1,l)) + ! + ! Call NodeValues(iEdgein, iFace, Face, iLayer, rElem, lElem, n7, r, l, uuNode(:), vvNode(:), xxNode(:), yyNode(:), dzNode(:), hhNode(:), HydroParam, MeshParam) + ! + ! ! Energy Conservation x - direction: + ! If ((uuNode(3) - uuNode(2))/MeshParam%CirDistance(Face) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(1)>= 0) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + uuNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,2)*(uuNode(3) - uuNode(2)) + uuNode(2) + 0.5*rj(1,1)*(uuNode(2) - uuNode(1))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(4) + uuNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = 0.5*(uuNode(3) + 0.5*rj(1,1)*(uuNode(3) - uuNode(2)) + uuNode(4) + 0.5*rj(1,2)*(uuNode(4) - uuNode(3))) + ! + ! EndIf + ! ! Energy Conservation y-direction: + ! If (vvNode(3) + vvNode(8) >= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + vvNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,4)*(vvNode(3) - vvNode(8)) + vvNode(8) + 0.5*rj(2,3)*(vvNode(8) - vvNode(9))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(7) + vvNode(3)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = 0.5*(vvNode(3) + 0.5*rj(2,3)*(vvNode(3) - vvNode(8)) + vvNode(7) + 0.5*rj(2,4)*(vvNode(7) - vvNode(3))) + ! + ! EndIf + ! Else + ! ! Momentum Conservation x-direction: + ! If (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(2)*dzNode(2) >= 0 ) Then + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*0.5*(dzNode(2) + dzNode(4)) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(2),hhNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! etarj(2) = ru(hhNode(4),hhNode(3),hhNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(2))) + uuNode(2)*(dzNode(2) + 0.5*etarj(1)*(hhNode(2)-hhNode(1))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(2))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(4)*dzNode(4) + uuNode(3)*0.5*(dzNode(2) + dzNode(4)))/(dzNode(2) + dzNode(4)) + ! + ! Courant = HydroParam%uArrow(iLayer0,1,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! + ! etarj(1) = ru(hhNode(4),hhNode(3),hhNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! etarj(2) = ru(hhNode(5),hhNode(4),hhNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,1,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(2))) + uuNode(4)*(dzNode(4) + 0.5*etarj(2)*(hhNode(4)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(2))) + ! + ! EndIf + ! + ! ! Momentum Conservation y-direction: + ! If (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(8)*dzNode(8)>= 0) Then + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(3)*0.5*(dzNode(7) + dzNode(8)) + vvNode(8)*dzNode(8))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(8),uuNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(8),vvNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(3),hhNode(8),hhNode(9),xxNode(3),xxNode(8),xxNode(9),yyNode(3),yyNode(8),yyNode(9)) + ! etarj(2) = ru(hhNode(7),hhNode(3),hhNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(8))) + uuNode(8)*(dzNode(8) + 0.5*etarj(1)*(hhNode(8)-hhNode(9))))/(dzNode(3) + 0.5*etarj(2)*(hhNode(3)-hhNode(8))) + ! + ! Else + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (vvNode(7)*dzNode(7) + vvNode(3)*0.5*(dzNode(7) + dzNode(8)))/(dzNode(7) + dzNode(8)) + ! + ! Courant = HydroParam%uArrow(iLayer0,2,iEdge0)*dt/MeshParam%CirDistance(Face) + ! + ! rj(1,3) = ru(uuNode(7),uuNode(3),uuNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(6),uuNode(7),uuNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(7),vvNode(3),vvNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! + ! etarj(1) = ru(hhNode(7),hhNode(3),hhNode(8),xxNode(7),xxNode(3),xxNode(8),yyNode(7),yyNode(3),yyNode(8)) + ! etarj(2) = ru(vvNode(6),vvNode(7),vvNode(3),xxNode(6),xxNode(7),xxNode(3),yyNode(6),yyNode(7),yyNode(3)) + ! + ! HydroParam%uArrow(iLayer0,2,iEdge0) = (uuNode(3)*(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(8))) + uuNode(7)*(dzNode(7) + 0.5*etarj(2)*(hhNode(7)-hhNode(3))))/(dzNode(3) + 0.5*etarj(1)*(hhNode(3)-hhNode(8))) + ! + ! EndIf + ! EndIf + ! + ! !uuint = uuint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(3) - uuNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(uuNode(5) - uuNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(3) - uuNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(uuNode(6) - uuNode(3))/MeshParam%dy) + ! !vvint = vvint - dt*(Max(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(3) - vvNode(1))/MeshParam%dx + Min(HydroParam%uArrow(iLayer0,1,iEdge0),0.d0)*(vvNode(5) - vvNode(3))/MeshParam%dx + Max(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(3) - vvNode(9))/MeshParam%dy + Min(HydroParam%uArrow(iLayer0,2,iEdge0),0.d0)*(vvNode(6) - vvNode(3))/MeshParam%dy) + ! ! + ! uuint = uuint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(8) + psi(1,3)*uuNode(9))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(1,4))*uuNode(7) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(8))/MeshParam%dy/2) + ! vvint = vvint - 0.5*dt*(Max(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx/2 + Min(HydroParam%uArrow(iLayer,1,iEdge0),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx/2 + Max(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(8) + psi(2,3)*vvNode(9))/MeshParam%dy/2 + Min(HydroParam%uArrow(iLayer,2,iEdge0),0.d0)*((2 + psi(2,4))*vvNode(7) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(8))/MeshParam%dy/2) + ! + !EndIf + + + !End Subroutine AdvectionVelocities + + + Subroutine NodeValues(iEdgein, iEdge, Face, iLayer, rElem, lElem, n7, r, l, uuNode, vvNode, xxNode, yyNode, dzNode, hhNode, HydroParam, MeshParam) + + Use MeshVars + Use Hydrodynamic + + Implicit None + + Real, intent(inout) :: uuNode(14), vvNode(14), xxNode(9), yyNode(9), dzNode(9), hhNode(9) + Real :: Nodes(9) + Integer:: iEdgein,iEdge,Face,rElem,lElem,n7,r,l,iLayer + Integer:: n1,n2,n3,nu,nu1,nl,n8,nr + Real :: NearZero = 1e-20 + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + n1 = MeshParam%Edge(iEdgein,l) !Oposite Edge + n2 = l !Baricenter from Element which contais the Edge + n3 = Face !Edge to evaluate + n7 = MeshParam%Quadri(n7,l) + 1 !Node in n3's left side + n8 = MeshParam%Quadri(iEdge,l) + 1 !Node in n3's right side + + Nodes(1:9)= (/n1, n2, n3, 0, 0, 0, n7, n8, 0 /) + + uuNode(1) = HydroParam%uxy(iLayer,1,Nodes(1)); vvNode(1) = HydroParam%uxy(iLayer,2,Nodes(1)); hhNode(1) = HydroParam%H(MeshParam%Edge(iEdgein,l)) + uuNode(2) = HydroParam%ub(iLayer,1,Nodes(2)); vvNode(2) = HydroParam%ub(iLayer,2,Nodes(2)); hhNode(2) = HydroParam%eta(l) + uuNode(8) = HydroParam%ubV(iLayer,1,Nodes(8)); vvNode(8) = HydroParam%ubV(iLayer,2,Nodes(8)); hhNode(8) = HydroParam%peta(Nodes(8)) + uuNode(3) = HydroParam%uxy(iLayer,1,Nodes(3)); vvNode(3) = HydroParam%uxy(iLayer,2,Nodes(3)); hhNode(3) = HydroParam%H(Face) + uuNode(7) = HydroParam%ubV(iLayer,1,Nodes(7)); vvNode(7) = HydroParam%ubV(iLayer,2,Nodes(7)); hhNode(7) = HydroParam%peta(Nodes(7)) + + xxNode(1) = MeshParam%EdgeBary(1,Nodes(1)); yyNode(1) = MeshParam%EdgeBary(2,Nodes(1)); dzNode(1) = HydroParam%Z(iLayer+1,Nodes(1)) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + xxNode(2) = MeshParam%xb(Nodes(2)); yyNode(2) = MeshParam%yb(Nodes(2)); dzNode(2) = HydroParam%Ze(iLayer+1,l) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + xxNode(8) = MeshParam%xNode(Nodes(8)); yyNode(8) = MeshParam%yNode(Nodes(8)); dzNode(8) = HydroParam%Ze(iLayer+1,l) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + xxNode(3) = MeshParam%EdgeBary(1,Nodes(3)); yyNode(3) = MeshParam%EdgeBary(2,Nodes(3)); dzNode(3) = HydroParam%Z(iLayer+1,Nodes(3)) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + xxNode(7) = MeshParam%xNode(Nodes(7)); yyNode(7) = MeshParam%yNode(Nodes(7)); dzNode(7) = HydroParam%Ze(iLayer+1,l) - HydroParam%Ze(iLayer,l) + sum(HydroParam%DZsi(:,l)) + + ! Right neighbour element: + !nr = n9, nu = n4, nu1 = n5, nl = n6 + + If (rElem==0) Then + nr = n8 + uuNode(9) = uuNode(8); vvNode(9) = vvNode(8); hhNode(9) = hhNode(8) + xxNode(9) = xxNode(8); yyNode(9) = yyNode(8); dzNode(9) = dzNode(8) + ElseIf (ilayer= 110 - NearZero) then + r = 0 + elseif(MeshParam%EdgeBary(2,n3) <= 90 + NearZero) then + r = 0 + endif + endif + + nu = r + If (nu == 0) Then + nu = l + nu1 = l + uuNode(4) = uuNode(3); vvNode(4) = vvNode(3); hhNode(4) = hhNode(3) + xxNode(4) = xxNode(3); yyNode(4) = yyNode(3); dzNode(4) = dzNode(3) + uuNode(5) = uuNode(3); vvNode(5) = vvNode(3); hhNode(5) = hhNode(3) + xxNode(5) = xxNode(3); yyNode(5) = yyNode(3); dzNode(5) = dzNode(3) + ElseIf (ilayer Compute signed area formed by vertices 1,2,3 + Function signa(x1,x2,x3,y1,y2,y3) + + Implicit none + Real:: x1,x2,x3,y1,y2,y3,signa + + signa=((x1-x3)*(y2-y3)-(x2-x3)*(y1-y3))/2 + + + End Function signa + + EndModule ELMConservative \ No newline at end of file diff --git a/Functions.f90 b/Functions.f90 index f6542c9..3f412c7 100644 --- a/Functions.f90 +++ b/Functions.f90 @@ -301,4 +301,67 @@ Function V(eta,h) V = Max( 0., eta - h ) -End Function V \ No newline at end of file + End Function V + + + Function ru(u,ux1,ux2,x,x1,x2,y,y1,y2) + ! Compute the Water Elevation + ! Based on: + ! [1] + ! Input: + ! u -> u velocity, eta or concentration + ! ux1 -> u in position -1/2 + ! ux2 -> u in position -3/2 + ! x -> u position + ! x1 -> u-1/2 position + ! x2 -> u-3/2 position + ! Output: + ! r -> Ratio of consecutive gradients + ! List of Modifications: + ! -> 04.08.2020: Routine Implementation + ! Programmer: + + Implicit None + Real:: ru, u, ux1, ux2, x, x1, x2, y, y1, y2, d1,d2 + Real:: NearZero = 1e-5 + + d1 = sqrt((x-x1)**2 + (y-y1)**2) + d2 = sqrt((x1-x2)**2 + (y1-y2)**2) + + If(abs(ux1 - ux2) <= NearZero .or. d1 <= NearZero) Then + ru = 0.d0 + Else + ru = (u - ux1)/(ux1-ux2)*(d2/d1) + EndIf + Return + End Function ru + + !Function pointInElem(nElem, n1Elem, xt, yt, MeshParam) + ! + !Use MeshVars + ! + !Real :: xt, yt + !Integer :: nElem,n1Elem + !Integer :: ELFlag + !Real :: acumulatedArea, areaError, Small + !Integer :: n1, n2, i34 + !type(MeshGridParam) :: MeshParam + ! + !Small = 1e-5 + !i34 = 4 + !acumulateArea = 0.d0 + ! + !Do i = 1,i34 + ! n1 = MeshParam%Quadri(MeshParam%EdgeDef(1,i),nElem) + 1 + ! n2 = MeshParam%Quadri(MeshParam%EdgeDef(2,i),nElem) + 1 + ! acumulatedArea = acumulatedArea + dabs(signa(MeshParam%xNode(n1),MeshParam%xNode(n2),xt,MeshParam%yNode(n1),MeshParam%yNode(n2),yt)) + !EndDo + ! + !areaError = dabs(acumulatedArea-MeshParam%Area(nElem))/MeshParam%Area(nElem) + !!If is inside, the acumulated area is lower than %Area(iElement): + !If(areaError >= Small .and. n1Elem =/0) Then + ! nElem = n1Elem + !EndIf + ! + !Return + !End Function pointInElem \ No newline at end of file diff --git a/GetHydroBoundaryConditions.f90 b/GetHydroBoundaryConditions.f90 index ade9653..7f0d24d 100644 --- a/GetHydroBoundaryConditions.f90 +++ b/GetHydroBoundaryConditions.f90 @@ -1,8 +1,9 @@ !> This subroutine reads the hydrodynamic boundaru conditions. -Subroutine GetHydroBoundaryConditions(HydroParam,MeshParam,time) +Subroutine GetHydroBoundaryConditions(HydroParam,MeshParam,dt,time,SimTime) Use Hydrodynamic Use MeshVars + Implicit none @@ -10,9 +11,9 @@ Subroutine GetHydroBoundaryConditions(HydroParam,MeshParam,time) Real:: t_interp(1) Real:: p_interp(1,1) Real:: NearZero = 1e-10 - Real:: Q_aux - Integer:: Sig,l - Real:: time + Real:: Q_aux,SimTime,dt + Integer:: Sig,l,Small + Real:: time, H type(HydrodynamicParam) :: HydroParam type(MeshGridParam) :: MeshParam @@ -22,21 +23,29 @@ Subroutine GetHydroBoundaryConditions(HydroParam,MeshParam,time) Call interp_linear( 1, HydroParam%WaterLevelnTime(i), HydroParam%WaterLevelTime(i,1:HydroParam%WaterLevelnTime(i)), HydroParam%WaterLevelValue(i,1:HydroParam%WaterLevelnTime(i)), 1, t_interp, p_interp ) HydroParam%WaterLevel(i) = p_interp(1,1) EndDo - + + !HydroParam%WaterLevel(1) = 0.214 + 0.06*cos(2*HydroParam%pi*(Simtime-dt)/(355.0d0)) !CAYO + !HydroParam%WaterLevel(1) = 2.14 + 0.6*cos(2*HydroParam%pi*(Simtime-dt)/(355.0d0)) !CAYO !2. Reading inflow/outflow Do i =1,HydroParam%NInflow iElem = HydroParam%IndexInflow(i,2) iEdge = HydroParam%IndexInflow(i,1) - Do iLayer = HydroParam%InFlowSmallm(i), HydroParam%InFlowCapitalM(i) + Small = Max(HydroParam%InFlowSmallm(i),HydroParam%SmallM(iEdge)) + Do iLayer = Small, HydroParam%InFlowCapitalM(i) If (HydroParam%InflownTime(i)==-999) Then + H = HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge) !Surface Water Height If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant - HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(HydroParam%Pcri,HydroParam%H(iEdge))**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(Max(HydroParam%Pcri,HydroParam%H(iEdge))**(1./6.)/(HydroParam%Rug(iElem)+NearZero)) + !HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(HydroParam%Pcri,H)**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(Max(HydroParam%Pcri,H)**(1./6.)/(HydroParam%Rug(iElem)+NearZero)) + HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(0.d0,H)**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(Max(HydroParam%Pcri,H)**(1./6.)/(HydroParam%Rug(iElem)+NearZero)) + HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*sqrt(HydroParam%g*Max(0.d0,H)) !Critical Depth Cayo ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant - HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(HydroParam%Pcri,HydroParam%H(iEdge))**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(HydroParam%Rug(iElem)+NearZero) + !HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(HydroParam%Pcri,H)**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(HydroParam%Rug(iElem)+NearZero) !Gradient/Zero-Depth Gradient Condition + HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(0.d0,H)**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(HydroParam%Rug(iElem)+NearZero) !Gradient/Zero-Depth Gradient Condition + HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*sqrt(HydroParam%g*Max(0.0d0,H)) !Critical Depth Cayo ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant - HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(HydroParam%Pcri,HydroParam%H(iEdge))**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(Max(HydroParam%Pcri,HydroParam%H(iEdge))**(1./6.)/((18.*log10(12.*Max(HydroParam%Pcri,HydroParam%H(iEdge))/(HydroParam%Rug(iElem)/30.+NearZero)))+NearZero)) + !HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(HydroParam%Pcri,H)**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(Max(HydroParam%Pcri,H)**(1./6.)/((18.*log10(12.*Max(HydroParam%Pcri,H)/(HydroParam%Rug(iElem)/30.+NearZero)))+NearZero)) + HydroParam%Fu(iLayer,iEdge) = (Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(Max(0.d0,H)**(2./3.))*(HydroParam%InflowValue(i,1)**(1./2.))/(Max(HydroParam%Pcri,H)**(1./6.)/((18.*log10(12.*Max(HydroParam%Pcri,H)/(HydroParam%Rug(iElem)/30.+NearZero)))+NearZero)) EndIf - Else Call interp_linear( 1, HydroParam%InflownTime(i), HydroParam%InflowTime(i,1:HydroParam%InflownTime(i)), HydroParam%InflowValue(i,1:HydroParam%InflownTime(i)), 1, t_interp, p_interp ) HydroParam%Fu(iLayer,iEdge) = -(Sig(iElem,MeshParam%Right(iEdge),MeshParam%Left(iEdge)))*(p_interp(1,1))/(sum(HydroParam%DZj(HydroParam%InFlowSmallm(i):HydroParam%InFlowCapitalM(i),iEdge))*MeshParam%EdgeLength(iEdge)) @@ -45,7 +54,7 @@ Subroutine GetHydroBoundaryConditions(HydroParam,MeshParam,time) EndDo !!------------------------------------------------------------------------- - ! ! Vertedor + !! Vertedor !If ( iEdge == 8048.AND.l == 3777 ) Then ! If ( HydroParam%eta(l) > (698.00) ) Then ! If ( HydroParam%eta(l) > (700.00 + HydroParam%PCri) ) Then ! Q_aux = 1.6 * 25.0 * ( HydroParam%eta(l) - 698.00 )**(3/2.) diff --git a/Hydro.f90 b/Hydro.f90 index 8411abe..2b6e6be 100644 --- a/Hydro.f90 +++ b/Hydro.f90 @@ -18,6 +18,7 @@ Subroutine Hydro(HydroParam,MeshParam,MeteoParam,dt,time,Simtime) ! List of Modifications: ! 16.12.2014: Routine Implementation (Rafael Cavalcanti) ! 16.12.2014: Routine Implementation (Carlos Ruberto) + ! 07.05.2020: Subsurface flows adaptation (Cayo Lopes) ! Programmer: Rafael Cavalcanti !$ use omp_lib @@ -25,66 +26,77 @@ Subroutine Hydro(HydroParam,MeshParam,MeteoParam,dt,time,Simtime) Use Hydrodynamic Use Meteorological Use ELM + Use ELMConservative + !Use AdvConservativeScheme Implicit None - Integer:: iElem, iEdge, lEdge, iNode, iNewton, iLayer, INFO, iLayer_bar + Integer:: iElem, iEdge, lEdge, iNode, iNewton, iLayer, INFO, iLayer_bar, Small, FlagLayer, innerNewton + Integer:: llElem, rrElem, psi_flag, indEdge + Real:: Courant,fi_small, DZjAcum,Futn,Fvtn Integer:: r, l, Sig, Face, Pij, DIM, ie, j, k, iNode1,iNode2, cont - Real:: V, DV, SumRHS, SumH, res, SumLhS,gamma,teste - Real:: dzp, dzm, SumW, rAux, Aux, VerEddyViscUp,VerEddyViscDown, vel - Real:: Chezy,sum1,sum0,rhoairCell + Real:: V, DV, SumRHS, SumH, res, SumLhS,gamma, teste + Real:: dzp, dzm, SumW, rAux, Aux, VerEddyViscUp,VerEddyViscDown, vel, e0, k0, H + Real:: Chezy,sum1,sum2,sum3,sum4,sum0,rhoairCell Real:: NearZero = 1e-10 Real:: dt, man,raioh,slope,SimTime,time type(HydrodynamicParam) :: HydroParam type(MeshGridParam) :: MeshParam type(MeteorologicalParam) :: MeteoParam Real:: aTh(MeshParam%KMax), bTh(MeshParam%KMax), cTh(MeshParam%KMax), iBGhost(3,3,MeshParam%KMax,MeshParam%nElem) + + !Do iEdge = 1,MeshParam%nEdge + ! HydroParam%epson(:,iEdge) = 0. + ! !Sponge layer + ! If (iEdge>2641) Then !2641 for dx=dy=0.025 !5281 for dx=dy=0.0125 + ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! HydroParam%epson(iLayer,iEdge) = 0.5*(((MeshParam%EdgeBary(1,iEdge)-MeshParam%EdgeBary(1,2641))/(MeshParam%EdgeBary(1,MeshParam%nEdge)-MeshParam%EdgeBary(1,2641)))**2.)*((HydroParam%Z(HydroParam%Smallm(iEdge),iEdge)-HydroParam%Z(iLayer,iEdge))/(HydroParam%Z(HydroParam%Smallm(iEdge),iEdge)-HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge))) + ! EndDo + ! Else + ! HydroParam%epson(:,iEdge) = 0. + ! EndIf + !EndDo - Do iEdge = 1,MeshParam%nEdge - HydroParam%epson(:,iEdge) = 0. - !!Sponge layer - !If (iEdge>2641) Then !2641 for dx=dy=0.025 !5281 for dx=dy=0.0125 - ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) - ! HydroParam%epson(iLayer,iEdge) = 0.5*(((MeshParam%EdgeBary(1,iEdge)-MeshParam%EdgeBary(1,2641))/(MeshParam%EdgeBary(1,MeshParam%nEdge)-MeshParam%EdgeBary(1,2641)))**2.)*((HydroParam%Z(HydroParam%Smallm(iEdge),iEdge)-HydroParam%Z(iLayer,iEdge))/(HydroParam%Z(HydroParam%Smallm(iEdge),iEdge)-HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge))) - ! EndDo - !Else - ! HydroParam%epson(:,iEdge) = 0. - !EndIf - EndDo - ! - ! 0. Compute turbulence - Call Turbulence(HydroParam,MeshParam,MeteoParam,dt) - !HydroParam%iConv = 3 - + !MeshParam%ei = 0.1 !e0 0.3 b01 + !MeshParam%Ksat = 0.00005!k0 0.01 b01 0.00005 + !e0 = 0.3 !e0 0.3 b01 + e0 = 0.1 !e0 0.1 b02 + HydroParam%iConv = 0 + !HydroParam%iConv = 5 + !HydroParam%iNonHydro=0 + ! 0. Compute turbulence + Call Turbulence(HydroParam,MeshParam,MeteoParam,dt) - !! 1. Convective Term - If (HydroParam%iConv == 0) Then + ! 1. Convective Term + If (HydroParam%iConv == 0.or.HydroParam%iConv == 4) Then HydroParam%Fw = HydroParam%w HydroParam%Fu = HydroParam%u - call FuFv(HydroParam,MeshParam,dt) - Do iEdge = 1,MeshParam%nEdge - Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) - HydroParam%Fu(iLayer,iEdge) = (1.-HydroParam%epson(iLayer,iEdge))*HydroParam%Fu(iLayer,iEdge) - EndDo + HydroParam%Fv = HydroParam%utang + Call FuFv(HydroParam,MeshParam,dt) + !Do iEdge = 1,MeshParam%nEdge - if (HydroParam%IndexWaterLevelEdge(iEdge)>0) then - l = MeshParam%Left(iEdge) - Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) - cont=0 - vel=0 - Do lEdge=1,4 - If (HydroParam%Fu(iLayer,MeshParam%Edge(lEdge,l))>0.and.HydroParam%IndexWaterLevelEdge(MeshParam%Edge(lEdge,l))==0) Then - cont=cont+1 - vel = vel + HydroParam%Fu(iLayer,MeshParam%Edge(lEdge,l)) - EndIf - EndDo - if (cont>0) then - HydroParam%Fu(iLayer,iEdge) = vel/cont - endif - EndDo - endif - EndDo + !Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! HydroParam%Fu(iLayer,iEdge) = (1.-HydroParam%epson(iLayer,iEdge))*HydroParam%Fu(iLayer,iEdge) + !EndDo + + !if (HydroParam%IndexWaterLevelEdge(iEdge)>0) then + ! l = MeshParam%Left(iEdge) + ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! cont=0 + ! vel=0 + ! Do lEdge=1,4 + ! If (HydroParam%Fu(iLayer,MeshParam%Edge(lEdge,l))>0.and.HydroParam%IndexWaterLevelEdge(MeshParam%Edge(lEdge,l))==0) Then + ! cont=cont+1 + ! vel = vel + HydroParam%Fu(iLayer,MeshParam%Edge(lEdge,l)) + ! EndIf + ! EndDo + ! if (cont>0) then + ! HydroParam%Fu(iLayer,iEdge) = vel/cont + ! endif + ! EndDo + !Endif + !EndDo ElseIf (HydroParam%iConv == 1) Then @@ -95,419 +107,507 @@ Subroutine Hydro(HydroParam,MeshParam,MeteoParam,dt,time,Simtime) Do iEdge = 1,MeshParam%nEdge Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) HydroParam%Fu(iLayer,iEdge) = (1.-HydroParam%epson(iLayer,iEdge))*HydroParam%u(iLayer,iEdge) + HydroParam%Fu(iLayer,iEdge) = (1.-HydroParam%epson(iLayer,iEdge))*HydroParam%um(iLayer,iEdge) EndDo EndDo HydroParam%Fw = HydroParam%w - !!$OMP end parallel do + !!$OMP end parallel do + ElseIf (HydroParam%iConv == 5) Then + + HydroParam%Fw = HydroParam%w + HydroParam%Fu = HydroParam%u + HydroParam%Fv = HydroParam%utang + !Call FuFvConservative(HydroParam,MeshParam,dt) + !Do iEdge = 1,MeshParam%nEdge + ! + ! !Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! ! HydroParam%Fu(iLayer,iEdge) = (1.-HydroParam%epson(iLayer,iEdge))*HydroParam%Fu(iLayer,iEdge) + ! !EndDo + ! + ! if (HydroParam%IndexWaterLevelEdge(iEdge)>0) then + ! l = MeshParam%Left(iEdge) + ! Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) + ! cont=0 + ! vel=0 + ! Do lEdge=1,4 + ! If (HydroParam%Fu(iLayer,MeshParam%Edge(lEdge,l))>0.and.HydroParam%IndexWaterLevelEdge(MeshParam%Edge(lEdge,l))==0) Then + ! cont=cont+1 + ! vel = vel + HydroParam%Fu(iLayer,MeshParam%Edge(lEdge,l)) + ! EndIf + ! EndDo + ! If (cont>0) then + ! HydroParam%Fu(iLayer,iEdge) = vel/cont + ! Endif + ! EndDo + ! endif + !EndDo + EndIf - !Getting hydrodynamic boundary condition values at current step time - Call GetHydroBoundaryConditions(HydroParam,MeshParam,time) - + ! 2. Getting hydrodynamic boundary condition values at current step time + Call GetHydroBoundaryConditions(HydroParam,MeshParam,dt,time,SimTime) - ! 2. Baroclinic pressure effect + if(simtime == dt*4) then + continue + endif + + ! 3. Baroclinic pressure effect Call Pressure(HydroParam,MeshParam,dt) - ! 3. Viscosity and Coriolis effect + ! 4. Viscosity and Coriolis effect Call ExplicitTerms(HydroParam,MeshParam,dt) - ! 4. Get wind velocity components + ! 5. Get wind velocity components Call WindVelocity(HydroParam,MeshParam,MeteoParam) - ! 5. Vertical Water Balance (Precipitation and Evaporation) - Call VerticalWB(HydroParam,MeshParam,MeteoParam,dt) - - - ! 6. Assemble Matrix + !! 6. Vertical Water Balance (Precipitation and Evaporation) + !Call VerticalWB(HydroParam,MeshParam,MeteoParam,dt,SimTime) + + ! 7. Assemble Matrix !!$OMP parallel do default(none) shared(MeshParam,HydroParam,MeteoParam) private(iEdge,iLayer,l,r,Chezy,rhoairCell,aTh,bTh,cTh,dzp,dzm,DIM,NearZero,dt) + !If (MeshParam%iBedrock == 1) Then Do iEdge = 1,MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) + + !!bench 02: + !if ( 100-NearZero <= MeshParam%EdgeBary(1,iEdge)<= 100 + NearZero) then + ! if (MeshParam%EdgeBary(2,iEdge) >= 110 - NearZero) then + ! HydroParam%u(:,iEdge) = 0. + ! HydroParam%Fu(:,iEdge) = 0. + ! r = 0 + ! elseif(MeshParam%EdgeBary(2,iEdge) <= 90 + NearZero) then + ! HydroParam%u(:,iEdge) = 0. + ! HydroParam%Fu(:,iEdge) = 0. + ! r = 0 + ! endif + !endif + ! - ! 6.1 Get roughness + ! 7.1 Get roughness + H = HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge) !Surface Water Height If (r == 0) Then If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant Chezy = HydroParam%Rug(l) ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant - Chezy = Max(HydroParam%Pcri,HydroParam%H(iEdge))**(1./6.)/(HydroParam%Rug(l)+NearZero) + Chezy = Max(HydroParam%Pcri,H)**(1./6.)/(HydroParam%Rug(l)+NearZero) ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant - Chezy = 18.*log10(12.*Max(HydroParam%Pcri,HydroParam%H(iEdge))/(HydroParam%Rug(l)/30.+NearZero)) + Chezy = 18.*log10(12.*Max(HydroParam%Pcri,H)/(HydroParam%Rug(l)/30.+NearZero)) EndIf rhoairCell = MeteoParam%rhoair(l) Else If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant Chezy = 0.5*(HydroParam%Rug(l) + HydroParam%Rug(r)) ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant - Chezy = Max(HydroParam%Pcri,HydroParam%H(iEdge))**(1./6.)/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))+NearZero) + Chezy = Max(HydroParam%Pcri,H)**(1./6.)/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))+NearZero) ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant - Chezy = 18.*log10(12.*Max(HydroParam%Pcri,HydroParam%H(iEdge))/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))/30.+NearZero)) + Chezy = 18.*log10(12.*Max(HydroParam%Pcri,H)/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))/30.+NearZero)) EndIf rhoairCell = 0.5*(MeteoParam%rhoair(l) + MeteoParam%rhoair(r)) EndIf - - - ! 6.2 Get Inflow/Outflow and Normal Depth Boundary Condition + + ! 7.2 Get Inflow/Outflow and Normal Depth Boundary Condition ! If a face is dry, set the normal velocity to zero - If (HydroParam%H(iEdge) <= HydroParam%PCRI+NearZero) Then + If (HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero) Then HydroParam%u(:,iEdge) = 0. HydroParam%Fu(:,iEdge) = 0. EndIf - ! 6.3 Get Shear stresses in the edges + If(r==0)Then + r = l + EndIf + If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and. H >HydroParam%PCRI+NearZero) Then + Futn = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInf(l) - HydroParam%eta(l))) + Else + Futn = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%eta(r) - HydroParam%eta(l))) + EndIf + Fvtn = HydroParam%Fv(HydroParam%Smallm(iEdge),iEdge) - dt/MeshParam%CirDistance(iEdge)*HydroParam%g*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge)) ) + !Fvtn = HydroParam%uxy(HydroParam%Smallm(iEdge),2,iEdge) - dt/MeshParam%CirDistance(iEdge)*HydroParam%g*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge)) ) + + Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,HydroParam%uxy(HydroParam%Smallm(iEdge),1,iEdge),HydroParam%uxy(HydroParam%Smallm(iEdge),2,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) + !Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,Futn,Fvtn,HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) + r = MeshParam%Right(iEdge) + + !! 7.3 Get Shear stresses in the edges + !Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,HydroParam%uxy(HydroParam%Smallm(iEdge),1,iEdge),HydroParam%uxy(HydroParam%Smallm(iEdge),2,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) - ! 6.4 Assemble Matrix G + ! 7.4 Assemble Matrix G ! Different from the article [1] ! Here the multiplication by DZj is done when we calculate iAG ! Only at the First Layer the Wind force takes place ! When there is no neighbour, there is no flux ( (1-Theta)*g*(dt/CirDistance(iEdge))*(eta(r) - eta(l)) == 0 ) Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) If ( iLayer == HydroParam%CapitalM(iEdge) ) Then - If ( r == 0 .or. HydroParam%H(iEdge) <= HydroParam%PCRI+NearZero) Then - HydroParam%Gu(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge)*HydroParam%Fu(iLayer,iEdge) !+ dt*GammaT*WindVel + If ( r == 0 .or. HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge)<= HydroParam%PCRI+NearZero) Then + HydroParam%Gu(iLayer,iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)*HydroParam%Fu(iLayer,iEdge) !+ dt*GammaT*WindVel Else - HydroParam%Gu(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*( HydroParam%g*(HydroParam%eta(r) - HydroParam%eta(l)) + (HydroParam%q(iLayer,r) - HydroParam%q(iLayer,l)))) + dt*HydroParam%GammaT*HydroParam%WindVel(1,iEdge) + HydroParam%Gu(iLayer,iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*( HydroParam%g*(HydroParam%eta(r) - HydroParam%eta(l)) + (HydroParam%q(iLayer,r) - HydroParam%q(iLayer,l)))) + dt*HydroParam%GammaT*HydroParam%WindVel(1,iEdge) EndIf Else - If ( r == 0 .or. HydroParam%H(iEdge) <= HydroParam%PCRI+NearZero) Then - HydroParam%Gu(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge)*HydroParam%Fu(iLayer,iEdge) + If ( r == 0 .or. HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge)<= HydroParam%PCRI+NearZero) Then + HydroParam%Gu(iLayer,iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)*HydroParam%Fu(iLayer,iEdge) Else - HydroParam%Gu(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*( HydroParam%g*(HydroParam%eta(r) - HydroParam%eta(l)) + (HydroParam%q(iLayer,r) - HydroParam%q(iLayer,l)))) + HydroParam%Gu(iLayer,iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*( HydroParam%g*(HydroParam%eta(r) - HydroParam%eta(l)) + (HydroParam%q(iLayer,r) - HydroParam%q(iLayer,l)))) EndIf EndIf EndDo - ! 6.5 Assemble the TriDiagonal System in Vertical Direction + ! 7.5 Assemble the TriDiagonal System in Vertical Direction If ( HydroParam%Smallm(iEdge) == HydroParam%CapitalM(iEdge) ) Then ! Only One Vertical Layer - If ( r == 0 .or. HydroParam%H(iEdge) <= HydroParam%PCRI+NearZero) Then + !If no neighbour or the edge's surface layer is dry: + If ( r == 0 .or. HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero) Then HydroParam%GammaB = 0. EndIf - HydroParam%iADZ(HydroParam%Smallm(iEdge),iEdge) = HydroParam%H(iEdge)/( HydroParam%H(iEdge) + dt*HydroParam%GammaB + NearZero) - HydroParam%iAG(HydroParam%Smallm(iEdge),iEdge) = HydroParam%Gu(HydroParam%Smallm(iEdge),iEdge)/( HydroParam%H(iEdge) + dt*HydroParam%GammaB + NearZero ) - HydroParam%DZiADZ(iEdge) = HydroParam%H(iEdge)*HydroParam%H(iEdge)/( HydroParam%H(iEdge) + dt*HydroParam%GammaB + NearZero ) - HydroParam%DZiAG (iEdge) = HydroParam%H(iEdge)*HydroParam%Gu(HydroParam%Smallm(iEdge),iEdge)/( HydroParam%H(iEdge) + dt*HydroParam%GammaB + NearZero ) - + !DZhj is surface water thickness, in following formulation DZhj is equivalent H in [2]: + HydroParam%iADZ(HydroParam%Smallm(iEdge),iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)/( HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge) + dt*(HydroParam%GammaB - HydroParam%GammaT) + NearZero) + HydroParam%iAG(HydroParam%Smallm(iEdge),iEdge) = HydroParam%Gu(HydroParam%Smallm(iEdge),iEdge)/(HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge) + dt*(HydroParam%GammaB - HydroParam%GammaT) + NearZero ) + HydroParam%DZiADZ(iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)*HydroParam%iADZ(HydroParam%Smallm(iEdge),iEdge) + !In 2D Model iADZ = DZiA, which implies DZiAG = iADZG: + HydroParam%DZiAG(iEdge) = HydroParam%DZhj(HydroParam%Smallm(iEdge),iEdge)*HydroParam%iAG(HydroParam%Smallm(iEdge),iEdge) + Else - ! 6.5.1 Assemble Matrix A - If ( r == 0 .or. HydroParam%H(iEdge) <= HydroParam%PCRI+NearZero) Then + ! 7.5.1 Assemble Matrix A + If ( r == 0 .or. HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge)<= HydroParam%PCRI+NearZero) Then HydroParam%GammaB = 0. EndIf Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) If ( iLayer == HydroParam%Smallm(iEdge) ) Then - dzp = 0.5*( HydroParam%DZj(iLayer,iEdge) + HydroParam%DZj(iLayer+1,iEdge) ) ! Dz at Upper Interface + dzp = 0.5*( HydroParam%DZhj(iLayer,iEdge) + HydroParam%DZhj(iLayer+1,iEdge) ) ! Dz at Upper Interface aTh(iLayer) = 0. !-dt*VerEddyVisc(iLayer+1,iEdge)/dzp !-dt*nuz/dzp ! ! Lower Diagonal - bTh(iLayer) = HydroParam%DZj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)*( 1/dzp ) + HydroParam%GammaB*dt + NearZero!DZj(iLayer,iEdge) + dt*nuz*( 1/dzp ) + GammaB*dt ! Diagonal - cTh(iLayer) = -dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzp !0. ! Upper Diagonal + bTh(iLayer) = MeshParam%EdgeLength(iEdge)*(HydroParam%DZhj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)*( 1/dzp ) + HydroParam%GammaB*dt) + NearZero!DZj(iLayer,iEdge) + dt*nuz*( 1/dzp ) + GammaB*dt ! Diagonal + cTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzp !0. ! Upper Diagonal Elseif ( iLayer == HydroParam%CapitalM(iEdge) ) Then - dzm = 0.5*( HydroParam%DZj(iLayer,iEdge) + HydroParam%DZj(iLayer-1,iEdge) ) ! Dz at Lower Interface - aTh(iLayer) = -dt*HydroParam%VerEddyVisc(iLayer,iEdge)/dzm !0. ! Lower Diagonal - bTh(iLayer) = Max(HydroParam%Pcri,HydroParam%DZj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer,iEdge)*( 1/dzm ) + HydroParam%GammaT*dt + NearZero) !DZj(iLayer,iEdge) + dt*nuz*( 1/dzm ) + GammaT*dt ! Diagonal + dzm = 0.5*( HydroParam%DZhj(iLayer,iEdge) + HydroParam%DZhj(iLayer-1,iEdge) ) ! Dz at Lower Interface + aTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*HydroParam%VerEddyVisc(iLayer,iEdge)/dzm !0. ! Lower Diagonal + !bTh(iLayer) = Max(HydroParam%Pcri,MeshParam%EdgeLength(iEdge)*(HydroParam%DZhj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer,iEdge)*( 1/dzm )) + HydroParam%GammaT*dt + NearZero) !DZj(iLayer,iEdge) + dt*nuz*( 1/dzm ) + GammaT*dt ! Diagonal + bTh(iLayer) = Max(NearZero,MeshParam%EdgeLength(iEdge)*(HydroParam%DZhj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer,iEdge)*( 1/dzm )) + HydroParam%GammaT*dt + NearZero) !DZj(iLayer,iEdge) + dt*nuz*( 1/dzm ) + GammaT*dt ! Diagonal cTh(iLayer) = 0. !-dt*VerEddyVisc(iLayer,iEdge)/dzm !-dt*nuz/dzm ! Upper Diagonal Else - dzp = 0.5*( HydroParam%DZj(iLayer,iEdge) + HydroParam%DZj(iLayer+1,iEdge) ) ! Dz at Upper Interface - dzm = 0.5*( HydroParam%DZj(iLayer,iEdge) + HydroParam%DZj(iLayer-1,iEdge) ) ! Dz at Lower Interface - aTh(iLayer) = -dt*HydroParam%VerEddyVisc(iLayer,iEdge)/dzm !-dt*VerEddyVisc(iLayer+1,iEdge)/dzp !-dt*nuz/dzm ! Lower Diagonal - bTh(iLayer) = HydroParam%DZj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer,iEdge)*( 1/dzm ) + dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)*( 1/dzp ) + NearZero ! Diagonal - cTh(iLayer) = -dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzp !-dt*VerEddyVisc(iLayer,iEdge)/dzm !-dt*nuz/dzp ! Upper Diagonal + dzp = 0.5*( HydroParam%DZhj(iLayer,iEdge) + HydroParam%DZhj(iLayer+1,iEdge) ) ! Dz at Upper Interface + dzm = 0.5*( HydroParam%DZhj(iLayer,iEdge) + HydroParam%DZhj(iLayer-1,iEdge) ) ! Dz at Lower Interface + aTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*HydroParam%VerEddyVisc(iLayer,iEdge)/dzm !-dt*VerEddyVisc(iLayer+1,iEdge)/dzp !-dt*nuz/dzm ! Lower Diagonal + bTh(iLayer) = MeshParam%EdgeLength(iEdge)*(HydroParam%DZhj(iLayer,iEdge) + dt*HydroParam%VerEddyVisc(iLayer,iEdge)*( 1/dzm ) + dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)*( 1/dzp )) + NearZero ! Diagonal + cTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzp !-dt*VerEddyVisc(iLayer,iEdge)/dzm !-dt*nuz/dzp ! Upper Diagonal EndIf EndDo - ! 6.5.2 Assemble Matrix: iAG, iADZ, DZiADZ, DZiAG - DIM = size(HydroParam%DZj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) + ! 7.5.2 Assemble Matrix: iAG, iADZ, DZiADZ, DZiAG + DIM = size(HydroParam%DZhj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) Call solve_tridiag(cTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),bTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),aTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),HydroParam%DZj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),HydroParam%iADZ(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),DIM) Call solve_tridiag(cTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),bTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),aTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),HydroParam%Gu(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),HydroParam%iAG(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),DIM) - HydroParam%DZiADZ(iEdge) = Dot_Product(HydroParam%DZj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),HydroParam%iADZ(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iedge),iEdge) ) - HydroParam%DZiAG (iEdge) = Dot_Product(HydroParam%DZj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),HydroParam%iAG (HydroParam%Smallm(iEdge):HydroParam%CapitalM(iedge),iEdge) ) - EndIf ! If ( Smallm(iEdge) == CapitalM(iEdge) ) Then + HydroParam%DZiADZ(iEdge) = Dot_Product(HydroParam%DZhj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),HydroParam%iADZ(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iedge),iEdge) ) + HydroParam%DZiAG (iEdge) = Dot_Product(HydroParam%DZhj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),HydroParam%iAG(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iedge),iEdge) ) + EndIf EndDo !!$OMP end parallel do - - !6.6 Assemble Matrix DZK !CAYO - Do iEdge = 1,MeshParam%nEdge - l = MeshParam%Left(iEdge) - r = MeshParam%Right(iEdge) - If ( HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge) ) Then - HydroParam%DZK(iEdge) = HydroParam%DZj(HydroParam%Smallms(iEdge),iEdge)*MeshParam%Kj(HydroParam%Smallms(iEdge),iEdge) !Sediment Layer - Else - HydroParam%DZK(iEdge) = Dot_Product(HydroParam%DZj(HydroParam%Smallms(iEdge):HydroParam%CapitalMs(iEdge),iEdge),MeshParam%Kj(HydroParam%Smallms(iEdge):HydroParam%CapitalMs(iEdge),iEdge) ) - EndIf - EndDo - - Call Volume(HydroParam,MeshParam) !CAYO - - - - ! 7. Compute the New Free-Surface Elevation - ! 7.1 Assemble the Right Hand Side (RHS) - !!$OMP parallel do default(none) shared(MeshParam,HydroParam,NearZero,dt) private(iElem,iEdge,SumRHS,SumLhS,gamma,Face,Pij) - !HydroParam%etan = HydroParam%eta + ! !7.6 Assemble Matrix DZK + !HydroParam%DZK(:) = 0.d0 + ! If (MeshParam%iBedrock == 1) Then + ! Do iEdge = 1,MeshParam%nEdge + ! If (HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge).and.HydroParam%Smallms(iEdge) == HydroParam%CapitalM(iEdge)) Then + ! HydroParam%DZK(iEdge) = HydroParam%DZsj(HydroParam%Smallms(iEdge),iEdge)*MeshParam%Kj(HydroParam%Smallms(iEdge),iEdge) !Sediment Layer + ! Else + ! HydroParam%DZK(iEdge) = Dot_Product(HydroParam%DZsj(HydroParam%Smallms(iEdge):HydroParam%CapitalMs(iEdge),iEdge),MeshParam%Kj(HydroParam%Smallms(iEdge):HydroParam%CapitalMs(iEdge),iEdge) ) + ! EndIf + ! EndDo + ! EndIf + + !Call Volume(HydroParam,MeshParam) + !Do iElem = 1,MeshParam%nElem + ! Call MoistureContent(HydroParam%eta(iElem),HydroParam%etaplus(iElem),iElem,HydroParam,MeshParam) + !EndDo + ! 8. Compute the New Free-Surface Elevation + ! 8.1 Assemble the Right Hand Side (RHS) + !!$OMP parallel do default(none) shared(MeshParam,HydroParam,NearZero,dt,simtime) private(iElem,iEdge,SumRHS,SumLhS,gamma,Face,Pij) Do iElem = 1, MeshParam%nElem - SumRHS = 0d0 SumLhS = 0.d0 gamma = 0.d0 - HydroParam%etaInf(iElem) = 0.d0 - Do iEdge = 1,4 - Face = MeshParam%Edge(iEdge,iElem) - SumRHS = SumRHS + Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%EdgeLength(Face)*((1.d0-HydroParam%Theta)*(Dot_product( HydroParam%DZj(HydroParam%Smallm(Face):HydroParam%CapitalM(Face),Face),HydroParam%u(HydroParam%Smallm(Face):HydroParam%CapitalM(Face),Face)) + Dot_product(HydroParam%DZj(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face),HydroParam%us(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face)))+ HydroParam%Theta*HydroParam%DZiAG(Face)) - - ! 6.1.1 If there is a Pressure Boundary Condition + SumRHS = SumRHS + Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%EdgeLength(Face)*((1.d0-HydroParam%Theta)*(Dot_product( HydroParam%DZhj(HydroParam%Smallm(Face):HydroParam%CapitalM(Face),Face),HydroParam%u(HydroParam%Smallm(Face):HydroParam%CapitalM(Face),Face)) + Dot_product(HydroParam%DZsj(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face),HydroParam%us(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face))) + HydroParam%Theta*HydroParam%DZiAG(Face)) + !SumRHS = SumRHS + Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%EdgeLength(Face)*((1.d0-HydroParam%Theta)*(Dot_product( HydroParam%DZhj(HydroParam%Smallm(Face):HydroParam%CapitalM(Face),Face),HydroParam%u(HydroParam%Smallm(Face):HydroParam%CapitalM(Face),Face)) + Dot_product(HydroParam%DZsj(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face),HydroParam%us(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face))) + HydroParam%Theta*(HydroParam%DZiAG(Face) + Dot_product(HydroParam%DZsj(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face),HydroParam%Gusub(HydroParam%Smallms(Face):HydroParam%CapitalMs(Face),Face)))) + ! 8.1.1 If there is a Pressure Boundary Condition Pij = MeshParam%Neighbor(iEdge,iElem) - - If (Pij == 0.and.HydroParam%IndexWaterLevelEdge(Face)>0) Then - If ((HydroParam%WaterLevel(HydroParam%IndexWaterLevelEdge(Face))-HydroParam%hj(Face))0) Then + HydroParam%etaInfn(iElem) = HydroParam%etaInf(iElem) + If ((HydroParam%WaterLevel(HydroParam%IndexWaterLevelEdge(Face))-HydroParam%hj(Face))0) Then - ! HydroParam%rhs(iElem) = MeshParam%Area(iElem)*V(0.01*cos(2.0*HydroParam%pi*(Simtime-2.02d0/4.0d0)/2.02d0) ,HydroParam%hb(iElem)) - ! EndIf - !EndDo - ! !!$OMP end parallel do - - ! 7.2 Newton Loop for Non-Linear Wet- and Dry-ing Algorithm [2] + ! + ! + !! 8.2 Newton-Casulli-Zanolli Non-Linear System Solver Algorithm: + !! The Volume Sistem is rewritten such that: V(eta) + T.eta = b -> V1(eta) - V2(eta) + T.eta = b + !! The Volume function V(eta) can be defined by the difference between two nonnegative, bounded functions of eta. HydroParam%etan = HydroParam%eta - - Do iNewton = 1,100 - ! 7.2.1 Assemble Matrices F (System Matrix - Newton Method) and P (Derivative Matrix) - HydroParam%P = 0. - HydroParam%F = 0. - Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) - Call Volume(HydroParam,MeshParam) !CAYO - - Do iElem = 1,MeshParam%nElem - !HydroParam%F(iElem) = MeshParam%Area(iElem)*V(HydroParam%eta(iElem),HydroParam%hb(iElem)) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) - HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) !CAYO - EndDo + !HydroParam%eta = Max(HydroParam%eta - HydroParam%Pcri,0.0d0) + HydroParam%eta = HydroParam%eta + + Do iNewton = 1,200 + !x.x.x Outer iteration - V2(eta) is linearized such that: + !V1(k) - V2(k-1) - Q(k-1).[eta(k) - eta(k-1)] + T.eta(k) = rhs -> V1(k) + [T-Q(k-1)].eta(k) = rhs + V2(k-1) + Q(k-1).eta(k-1) + + !x.x.x Set eta(k-1) = eta(k,m): + HydroParam%etak = HydroParam%eta + + !x.x.x Compute Q(k-1) and rhs(k) Matrices: + HydroParam%P = 0.0d0 + HydroParam%Qk = 0.d0 !always in k-1 (%etak) + HydroParam%Ci = 0.d0 + HydroParam%Vol1 = 0.d0 + HydroParam%Vol2 = 0.d0 + + !x.x.x Compute T.eta Matrix: + Call MatOp(HydroParam%etak,HydroParam%Aeta,dt,HydroParam,MeshParam) - !!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iElem,sumH) Do iElem = 1, MeshParam%nElem - HydroParam%P(iElem) = MeshParam%Area(iElem)*dV(HydroParam%eta(iElem),HydroParam%sb(iElem)) !CAYO - sumH = Sum( HydroParam%H(MeshParam%Edge(:,iElem)) ) - If (V(HydroParam%eta(iElem),HydroParam%hb(iElem)) < HydroParam%PCRI+NearZero) Then - ! The Cell is Dry. The Solution is V(eta^(n+1)) = V(eta^(n)) - HydroParam%P(iElem) = MeshParam%Area(iElem) ! We can't allow the row to have zeros in all elements - If P = 1, the water level remains the same + + !x.x.x. Compute Q(k-1) and V2(k-1): + Call MoistureContent(HydroParam%etak(iElem),0.d0,iElem,HydroParam,MeshParam) + + !V2 = V1 - V + HydroParam%Vol2(iElem) = HydroParam%Vol1(iElem) - HydroParam%Vol(iElem) + ! Q = P - A.e.S, Q >=0 + !HydroParam%Qk(iElem) = Max(0.d0, HydroParam%P(iElem) - HydroParam%Vol(iElem)/HydroParam%eta(iElem)) + !!HydroParam%Qk(iElem) = Max(0.d0, HydroParam%P(iElem) - MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)) + !If(HydroParam%etak(iElem) - HydroParam%hb(iElem) < 0.d0) Then + ! HydroParam%Qk(iElem) = HydroParam%Vol2(iElem)/HydroParam%etak(iElem) + !Else + ! HydroParam%Qk(iElem) = Max(0.d0, HydroParam%P(iElem) - HydroParam%Ci(iElem)) + !EndIf + If (MeshParam%iBedrock == 0) Then + HydroParam%Qk(iElem) = 0.d0 + Else + HydroParam%Qk(iElem) = Max(0.d0, HydroParam%P(iElem) - HydroParam%Ci(iElem)) EndIf - EndDo - !!$OMP end parallel do + !HydroParam%Qk(iElem) = Max(0.d0, HydroParam%P(iElem) - MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)) + !x.x.x. Compute d(k) == rhs(k): + !d(k) == rhs(k) = rhs + V2(k-1) - Q(k-1).eta(k-1) + HydroParam%d(iElem) = HydroParam%rhs(iElem) + HydroParam%Vol2(iElem) - HydroParam%Qk(iElem)*V(HydroParam%etak(iElem),HydroParam%sb(iElem)) + + !!x.x.x. outer residual + !HydroParam%F(iElem) = HydroParam%Vol1(iElem) - HydroParam%Vol2(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + EndDo + + !res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !!Print*, 'iNewton = ',iNewton , 'res = ',res + !If ( res < 1e-8 ) Then + ! !x.x.x Set eta(k) = eta(k,m) + ! continue + ! exit + !EndIf + + HydroParam%eta = HydroParam%etak + !HydroParam%etam = HydroParam%etak + Do innerNewton = 1,200 + !x.x.x Inner iteration - V1(eta) is linearized such that: + !V1(m-1) + P(k,m-1).[eta(k,m) - eta(k,m-1)] + [T-Q(k-1)].eta(k,m) = rhs(k) -> [T + P(m,k-1) - Q(k-1)].eta(k,m) = rhs(k) - V1(m-1) + P(k,m-1).eta(k,m-1) + !From here, we get the system: [T + P(k,m-1) - Q(k-1)].eta(k,m) = rhs(k,m-1) + + !x.x.x Compute (T + P(k,m-1) - Q(k)).eta(k,m) Matrix: + !(T + P(k,m-1) - Q(k)).eta(k,m) == A.eta -> A == Jacobian Matrix + Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) - res = sqrt(sum(HydroParam%f**2)) ! Residual of the Method + !x.x.x Set A.eta - rhs(k,m) = 0 to conjugate gradient method: + !HydroParam%Aeta = HydroParam%Aeta - HydroParam%d + HydroParam%Vol1 - HydroParam%P*V(HydroParam%eta,HydroParam%sb) + Do iElem = 1,MeshParam%nElem + HydroParam%Aeta(iElem) = HydroParam%Aeta(iElem) - HydroParam%d(iElem) + HydroParam%Vol1(iElem) - HydroParam%P(iElem)*V(HydroParam%eta(iElem),HydroParam%sb(iElem)) + EndDo + !x.x.x Compute the New Free-Surface Elevation eta(k,m): + Call CGOp(HydroParam%Aeta,HydroParam%Deta,dt,HydroParam,MeshParam) + + !$OMP parallel do default(none) shared(HydroParam,MeshParam) private(iElem) + Do iElem = 1, MeshParam%nElem + HydroParam%F(iElem) = HydroParam%P(iElem)*HydroParam%Deta(iElem) - HydroParam%Vol1(iElem) + !x.x.x New Free Surface Elevation: + !HydroParam%eta(iElem) = max(0.d0,HydroParam%eta(iElem) - HydroParam%Deta(iElem)) + HydroParam%eta(iElem) = HydroParam%eta(iElem) - HydroParam%Deta(iElem) + Call MoistureContent(HydroParam%eta(iElem),0.d0,iElem,HydroParam,MeshParam) + HydroParam%F(iElem) = HydroParam%F(iElem) + HydroParam%Vol1(iElem) + EndDo + !$OMP end parallel do + + res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !Print*, 'iNewton = ',iNewton , 'res = ',res + If ( res < 1e-5 ) Then + !x.x.x Set eta(k) = eta(k,m) + continue + exit + EndIf + + EndDo + + HydroParam%F = HydroParam%Qk*(HydroParam%etak-HydroParam%eta) - HydroParam%Vol2 + (HydroParam%Vol1 - HydroParam%Vol) + res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method !Print*, 'iNewton = ',iNewton , 'res = ',res - If ( res < 1e-8 ) Then + If ( res < 1e-5 ) Then + !x.x.x Set eta(k) = eta(k,m) continue exit EndIf - ! 7.2.2 Compute the New Free-Surface Elevation - Call CGOp(HydroParam%F,HydroParam%Deta,dt,HydroParam,MeshParam) - !!$OMP parallel do default(none) shared(HydroParam,MeshParam) private(iElem) - Do iElem = 1, MeshParam%nElem - HydroParam%eta(iElem) = HydroParam%eta(iElem) - HydroParam%Deta(iElem) - EndDo - !!$OMP end parallel do + EndDo + !!HydroParam%eta = HydroParam%eta + HydroParam%sb + !!! 8.2 Newton Loop for Non-Linear Wet- and Dry-ing Algorithm [2] + !HydroParam%etan = HydroParam%eta + !HydroParam%eta = HydroParam%eta - HydroParam%sb + !HydroParam%Qk = 0.d0 + !!HydroParam%etak = HydroParam%eta + HydroParam%etaplus + !Do iNewton = 1,200 + ! ! 8.2.1 Assemble Matrices F (System Matrix - Newton Method) and P (Derivative Matrix) + ! HydroParam%P = 0. + ! HydroParam%F = 0. + ! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + ! !Call Volume(HydroParam,MeshParam) + ! !$OMP parallel do default(none) shared(HydroParam,MeshParam) private(iElem) + ! Do iElem = 1, MeshParam%nElem + ! !8.2.2 Volume with Eta at tn+1: + ! Call MoistureContent(HydroParam%eta(iElem),0.d0,iElem,HydroParam,MeshParam) + ! + ! !8.2.3 Compute Newton Method's Residue for each iElem: + ! !In this point, MatOp Output = (T-Matrix)Eta + ! !We want F = 0 condition satisfied: V(nt+1) + T*n(t+1) = rhs :: F = V(n(t+1)) + T*n(t+1) - rhs -> 0 + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*V(HydroParam%eta(iElem),0.d0) + ! + ! HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + ! + ! !8.2.4 Fill P values in dry cell for CGOp computation: + ! !HydroP = A*dn/dn, if cell is dry dn/dn = 0, else dn/dn = 1 + ! HydroParam%P(iElem) = MeshParam%Area(iElem) + ! !If(HydroParam%eta(iElem) >= HydroParam%hb(iElem) .and. HydroParam%etan(iElem) >= HydroParam%hb(iElem) ) Then + ! ! HydroParam%P(iElem) = MeshParam%Area(iElem) ! Vol = eta.Area -> Vol = (eta - hb)*Area + (hb-sb)*Area*e = Area*(eta-hb +hb*e -sb*e) + ! ! !HydroParam%P(iElem) = (HydroParam%Vol(iElem)/(HydroParam%eta(iElem) + HydroParam%hb(iElem)*(MeshParam%epson(HydroParam%ElCapitalMs(iElem)) - 1) - HydroParam%sb(iElem)*MeshParam%epson(HydroParam%ElCapitalMs(iElem)) + ! !ElseIf(HydroParam%eta(iElem) < HydroParam%hb(iElem) .and. HydroParam%etan(iElem) < HydroParam%hb(iElem) ) Then + ! ! HydroParam%P(iElem) = (HydroParam%Vol(iElem)/HydroParam%eta(iElem)) + ! !ElseIf ( HydroParam%eta(iElem) >= HydroParam%hb(iElem) .and. HydroParam%etan(iElem) < HydroParam%hb(iElem) ) Then + ! ! HydroParam%P(iElem) = MeshParam%Area(iElem)/(HydroParam%eta(iElem) - HydroParam%etan(iElem))*( (HydroParam%eta(iElem) - HydroParam%hb(iElem)) + MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*(HydroParam%hb(iElem) - HydroParam%etan(iElem))) + ! !ElseIf ( HydroParam%eta(iElem) < HydroParam%hb(iElem) .and. HydroParam%etan(iElem) >= HydroParam%hb(iElem) ) Then + ! ! HydroParam%P(iElem) = MeshParam%Area(iElem)/(HydroParam%etan(iElem) - HydroParam%eta(iElem))*( (HydroParam%etan(iElem) - HydroParam%hb(iElem)) + MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*(HydroParam%hb(iElem) - HydroParam%eta(iElem))) + ! !EndIf + ! + ! !If(HydroParam%eta(iElem) >= HydroParam%hb(iElem) ) Then + ! ! HydroParam%P(iElem) = MeshParam%Area(iElem) ! Vol = eta.Area -> Vol = (eta - hb)*Area + (hb-sb)*Area*e = Area*(eta-hb +hb*e -sb*e) + ! ! !HydroParam%P(iElem) = (HydroParam%Vol(iElem)/(HydroParam%eta(iElem) + HydroParam%hb(iElem)*(MeshParam%epson(HydroParam%ElCapitalMs(iElem)) - 1) - HydroParam%sb(iElem)*MeshParam%epson(HydroParam%ElCapitalMs(iElem)) + ! !ElseIf(HydroParam%eta(iElem) < HydroParam%hb(iElem) ) Then + ! ! HydroParam%P(iElem) = (HydroParam%Vol(iElem)/HydroParam%eta(iElem)) + ! !EndIf + ! + ! EndDo + ! + ! !$OMP end parallel do + ! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + ! !Print*, 'iNewton = ',iNewton , 'res = ',res + ! If ( res < 1e-5 ) Then + ! continue + ! exit + ! EndIf + ! + ! !! 8.2.5 Compute the New Free-Surface Elevation + ! !!CGOp is used to minimize F value :: F = V(n(t+1)) + T*n(t+1) - rhs == 0 + ! Call CGOp(HydroParam%F,HydroParam%Deta,dt,HydroParam,MeshParam) + ! + ! !$OMP parallel do default(none) shared(HydroParam,MeshParam) private(iElem) + ! Do iElem = 1, MeshParam%nElem + ! HydroParam%eta(iElem) = HydroParam%eta(iElem) - HydroParam%Deta(iElem) + ! EndDo + ! !$OMP end parallel do + !EndDo + ! + HydroParam%eta = Max(HydroParam%eta + HydroParam%sb, HydroParam%sb) - - ! 7.3 Compute nodal elevations for tang. vel. + !! 9. Water Level Corrective Step + + !!$OMP parallel do default(none) shared(MeshParam,HydroParam,NearZero) private(iElem) + !Do iElem = 1,MeshParam%nElem + ! If ( HydroParam%eta(iElem) - HydroParam%sb(iElem) <= HydroParam%PCRI + NearZero ) Then + ! HydroParam%eta(iElem) = HydroParam%sb(iElem) + HydroParam%PCRI/2.0d0 + ! EndIf + !EndDo + + !!$OMP end parallel do + + ! 9.1 Compute nodal elevations for tang. vel. HydroParam%petan=HydroParam%peta !store for transport eqs. - !!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iNode,sum1,sum0,ie,j) - Do iNode=1,MeshParam%nNode + !$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iNode,sum1,sum0,ie,j) + Do iNode=1,MeshParam%nNode sum1=0 !sum of elemental elevations - sum0=0 !sum of areas + sum0=0 !sum of Areas + HydroParam%peta(iNode) = HydroParam%eta(MeshParam%VertexElem(1,iNode)) do j=1,MeshParam%nVertexElem(iNode) ie=MeshParam%VertexElem(j,iNode) sum1=sum1+MeshParam%Area(ie)*HydroParam%eta(ie) sum0=sum0+MeshParam%Area(ie) Enddo !j=1,nne(i) HydroParam%peta(iNode)=sum1/sum0 + !do j = 2,MeshParam%nVertexElem(iNode)!CAYO get max eta + ! if(HydroParam%peta(iNode) < HydroParam%eta(MeshParam%VertexElem(j,iNode))) Then + ! HydroParam%peta(iNode) = HydroParam%eta(MeshParam%VertexElem(j,iNode)) + ! endif + !enddo EndDo !i=1,np - !!$OMP end parallel do + !$OMP end parallel do - ! 8. Water Level Corrective Step - !!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iElem) - Do iElem = 1,MeshParam%nElem - If ( HydroParam%eta(iElem) - HydroParam%hb(iElem) < HydroParam%PCRI/2. ) Then - HydroParam%eta(iElem) = HydroParam%hb(iElem) + HydroParam%PCRI/2. - EndIf - EndDo - !!$OMP end parallel do + ! 10. Updating Vertical Mesh Spacing + HydroParam%DZjt = HydroParam%DZj + HydroParam%DZhjt = HydroParam%DZhj + HydroParam%DZsjt = HydroParam%DZsj - ! 10. Updating free-surface water level and Vertical Mesh Spacing - HydroParam%DZjt = HydroParam%DZj - !!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iLayer,iEdge,l,r,NearZero) - Do iEdge = 1,MeshParam%nEdge - - l = MeshParam%Left(iEdge) - r = MeshParam%Right(iEdge) - ! 9.1 Compute Index Smallm(j) and CapitalM(j) - ! Smallm and CapitalM are related to mj and Mj in [1] - If (r == 0) Then - HydroParam%H(iEdge) = Max( HydroParam%PCRI, -HydroParam%hj(iEdge) + HydroParam%eta(l) ) - Else - HydroParam%H(iEdge) = Max( HydroParam%PCRI,-HydroParam%hj(iEdge) + HydroParam%eta(l), -HydroParam%hj(iEdge) + HydroParam%eta(r) ) !Max( PCRI,-hj(iEdge) + 0.5*(eta(l) + eta(r)) ) ! - EndIf - ! Lower Index - Superficial Flow Layer - Do iLayer = 1,MeshParam%KMax - If (iLayer == MeshParam%KMax) Then - If (HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%Smallm(iEdge) = iLayer - exit - EndIf - Else - If (HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%CapitalM(iEdge) = iLayer - exit - EndIf - Else - If (HydroParam%H(iEdge) + HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%H(iEdge) + HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%Smallms(iEdge) = iLayer - exit - EndIf - Else - If (HydroParam%sj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sj(iEdge) 1) Then ! Cayo - HydroParam%CapitalMs(iEdge) = HydroParam%Smallm(iEdge) - 1 - if (HydroParam%CapitalMs(iEdge)= HydroParam%Smallms(iEdge) .or. HydroParam%Smallms(iEdge) == HydroParam%Smallm(iEdge) ) Then - MeshParam%Kj(iLayer,iEdge) = 0.d0 - Else - MeshParam%Kj(iLayer,iEdge) = 0.001 - EndIf - EndDo - EndDo - !!$OMP end parallel do - - ! 11. Compute the New Vertical Velocity Field + ! xx. Compute the New Vertical Velocity Field ! w(Smallm-1,:) = 0. -> No flux through the Bottom ! w(CapitalM,:) = 0. -> No flux through the Surface ! The velocity is defined in the barycenter of the Top Face of each Cell ! *Obs: The outward direction is from Bottom to Top. + + ! xx. Vertical Water Balance (Precipitation and Evaporation) + Call VerticalWB(HydroParam,MeshParam,MeteoParam,dt,SimTime+dt) + HydroParam%DZit = HydroParam%DZi - HydroParam%wt = HydroParam%w - !!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iLayer,iElem,iEdge,Face,SumW,NearZero) + HydroParam%DZhit = HydroParam%DZhi + !!$OMP parallel do default(none) shared(MeshParam,HydroParam,e0) private(iLayer,iElem,iEdge,Face,SumW,NearZero) Do iElem = 1, MeshParam%nElem - ! 11.1 Define the range between Bottom and Top Layers. (Tricky part - Not explained in [1]) + ! 12.1 Define the range between Bottom and Top Layers. (Tricky part - Not explained in [1]) ! In a real world application, the bathymetry might change between the faces of the prism. ! We need to find "Max(Smallm(:))" and "Min(CapitalM(:))" in each face. ! Then we can calculate the Vertical Velocity only in those Layers ! *Obs: The velocity in faces with Smallm < Max(Smallm(:)) == 0. The same goes to faces with CapitalM > Min(CapitalM(:)) ! 4.1.1 Find "mi" and "Mi", the Bottom and Top Layers range for the Element, not for the faces ! Set mi - - ! Lower Index - Superficial Flow Layer + + ! Lower Index - Superficial Flow Layer Do iLayer = 1,MeshParam%KMax If (iLayer == MeshParam%KMax) Then If (HydroParam%hb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then @@ -523,21 +623,23 @@ Subroutine Hydro(HydroParam,MeshParam,MeteoParam,dt,time,Simtime) EndDo ! Upper Index - Superficial Flow Layer - Do iLayer = 1,MeshParam%KMax - If (iLayer == MeshParam%KMax) Then - If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%ElCapitalM(iElem) = iLayer - exit - EndIf - Else - If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%eta(iElem) 0.d0) Then + Do iLayer = 1,MeshParam%KMax + If (iLayer == MeshParam%KMax) Then + If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%ElCapitalM(iElem) = iLayer + exit + EndIf + Else + If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%eta(iElem)= HydroParam%ElSmallm(iElem).or.HydroParam%ElSmallms(iElem) == HydroParam%ElSmallm(iElem)) Then + continue + Else + MeshParam%ei(iLayer,iElem) = e0 + EndIf + + If (iLayer < HydroParam%ElSmallm(iElem)) Then + HydroParam%DZhi(iLayer,iElem) = 0.d0 + HydroParam%DZsi(iLayer,iElem) = HydroParam%DZi(iLayer,iElem) + ElseIf (iLayer > HydroParam%ElSmallm(iElem)) Then + HydroParam%DZhi(iLayer,iElem) = HydroParam%DZi(iLayer,iElem) + HydroParam%DZsi(iLayer,iElem) = 0.d0 + Else + If (HydroParam%Ze(iLayer+1,iElem) > HydroParam%hb(iElem) ) Then + HydroParam%DZhi(iLayer,iElem) = HydroParam%Ze(iLayer+1,iElem) - HydroParam%hb(iElem) + HydroParam%DZsi(iLayer,iElem) = HydroParam%hb(iElem) - HydroParam%Ze(iLayer,iElem) + Else + HydroParam%DZhi(iLayer,iElem) = 0.d0 + HydroParam%DZsi(iLayer,iElem) = HydroParam%Ze(iLayer+1,iElem) - HydroParam%Ze(iLayer,iElem) + !If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalM(iElem)) Then + ! If(HydroParam%eta(iElem) < HydroParam%hb(iElem) ) Then + ! HydroParam%DZsi(iLayer,iElem) = HydroParam%eta(iElem) + ! ElseIf (HydroParam%eta(iElem) <= HydroParam%sb(iElem)) Then + ! HydroParam%DZsi(iLayer,iElem) = 0.d0 + ! EndIf + !EndIf + EndIf + EndIf + + If(HydroParam%DZsi(iLayer,iElem)>0) Then + MeshParam%ei(iLayer,iElem) = e0 + EndIf + + EndDo + EndIf + Call MoistureContent(HydroParam%eta(iElem),HydroParam%etaplus(iElem),iElem,HydroParam,MeshParam) + EndDo + !!$OMP end parallel do + + + !!$OMP parallel do default(none) shared(MeshParam,HydroParam,k0) private(iLayer,Small,iEdge,l,r,NearZero) + Do iEdge = 1,MeshParam%nEdge + + ! 1.1 Compute Water Depth + l = MeshParam%Left(iEdge) + r = MeshParam%Right(iEdge) + + If (r==0) Then + r = l + EndIf + + !HydroParam%H(iEdge) = Max( HydroParam%PCRI,-HydroParam%sj(iEdge) + HydroParam%eta(l), -HydroParam%sj(iEdge) + HydroParam%eta(r) )!CAYO + If (Max( 0.d0,-HydroParam%sj(iEdge) + HydroParam%eta(l), -HydroParam%sj(iEdge) + HydroParam%eta(r) ) <= HydroParam%Pcri) Then + HydroParam%H(iEdge) = 0.d0 + Else + HydroParam%H(iEdge) = Max( 0.d0,-HydroParam%sj(iEdge) + HydroParam%eta(l), -HydroParam%sj(iEdge) + HydroParam%eta(r) )!CAY + EndIf - ! Lower Index - Subsuperficial Flow Layer !CAYO + If (HydroParam%IndexWaterLevelEdge(iEdge) > 0 .and. HydroParam%H(iEdge) > HydroParam%Pcri) Then + HydroParam%H(iEdge) = Max( HydroParam%H(iEdge), HydroParam%WaterLevel(HydroParam%IndexWaterLevelEdge(iEdge))) + endif + + ! Lower Index - Superficial Flow Layer Do iLayer = 1,MeshParam%KMax If (iLayer == MeshParam%KMax) Then - If (HydroParam%sb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%ElSmallms(iElem) = iLayer + If (HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%Smallm(iEdge) = iLayer exit EndIf Else - If (HydroParam%sb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sb(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hj(iEdge) 1 ) Then ! Cayo - HydroParam%ElCapitalMs(iElem) = HydroParam%ElSmallm(iElem) - 1 - if (HydroParam%ElCapitalMs(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%CapitalM(iEdge) = Max(iLayer,HydroParam%CapitalM(iEdge)) + exit + EndIf + Else + If (Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r))>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r))=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + ! HydroParam%CapitalM(iEdge) = iLayer + ! exit + ! EndIf + ! Else + ! If (HydroParam%H(iEdge) + HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%H(iEdge) -HydroParam%sj(iEdge)+ HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%Smallms(iEdge) = iLayer + exit + EndIf + Else + If (HydroParam%sj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sj(iEdge) 1) Then + HydroParam%CapitalMs(iEdge) = HydroParam%Smallm(iEdge) - 1 + if (HydroParam%CapitalMs(iEdge)= HydroParam%ElSmallm(iElem) .or. HydroParam%ElSmallms(iElem) == HydroParam%ElSmallm(iElem)) Then - MeshParam%ei(iLayer,iElem) = 1 + HydroParam%Z(HydroParam%Smallms(iEdge),iEdge) = HydroParam%sj(iEdge) ! Bottom + If (r == 0) Then + If ( HydroParam%eta(l) - HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero) Then + !HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = HydroParam%hj(iEdge) + HydroParam%PCRI + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = HydroParam%hj(iEdge) + Else + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = HydroParam%eta(l) + EndIf + Else + If ( Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r)) - HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero ) Then !( HydroParam%H(iEdge) <= HydroParam%PCRI/2 + NearZero ) Then + !HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = Max(HydroParam%eta(l),HydroParam%eta(r)) + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = Max(HydroParam%hb(l),HydroParam%hb(r)) Else - MeshParam%ei(iLayer,iElem) = 0.5 + !HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = (0.5d0)*(HydroParam%eta(l)+HydroParam%eta(r)) !Max(HydroParam%eta(l),HydroParam%eta(r)) !H(iEdge) + hj(iEdge) ! Free-Surface (verificar com Rafael) + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = Max(HydroParam%eta(l),HydroParam%eta(r)) EndIf - EndDo + EndIf + + ! 9.3 Compute the Vertical Mesh Spacing + Do iLayer = HydroParam%Smallms(iEdge), HydroParam%CapitalM(iEdge) + HydroParam%DZj(iLayer,iEdge) = HydroParam%Z(iLayer+1,iEdge) - HydroParam%Z(iLayer,iEdge) + !HydroParam%DZj(iLayer,iEdge) = Max(HydroParam%Pcri,HydroParam%DZj(iLayer,iEdge)) + HydroParam%DZj(iLayer,iEdge) = Max(0.0d0,HydroParam%DZj(iLayer,iEdge)) + EndDo + + !9.4 Compute Subsurface Parameters: + HydroParam%DZhj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) = HydroParam%DZj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) + HydroParam%DZsj(:,iEdge) = 0.d0 + MeshParam%Kj(:,iEdge) = 0.d0 + HydroParam%DZK(iEdge) = 0.d0 + If (MeshParam%iBedrock == 1) Then + Do iLayer = HydroParam%Smallms(iEdge), HydroParam%CapitalM(iEdge) ! + !xx. Layers thickness: + If (iLayer < HydroParam%Smallm(iEdge)) Then + HydroParam%DZhj(iLayer,iEdge) = 0. + HydroParam%DZsj(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge) + ElseIf (iLayer > HydroParam%Smallm(iEdge)) Then + HydroParam%DZhj(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge) + HydroParam%DZsj(iLayer,iEdge) = 0. + continue + Else + If ( HydroParam%Z(iLayer+1,iEdge) > HydroParam%hj(iEdge) ) Then + HydroParam%DZhj(iLayer,iEdge) = HydroParam%Z(iLayer+1,iEdge) - HydroParam%hj(iEdge) + HydroParam%DZsj(iLayer,iEdge) = HydroParam%hj(iEdge) - HydroParam%Z(iLayer,iEdge) + Else + HydroParam%DZhj(iLayer,iEdge) = 0. + HydroParam%DZsj(iLayer,iEdge) = Max(HydroParam%Pcri,HydroParam%Z(iLayer+1,iEdge) - HydroParam%Z(iLayer,iEdge)) + If(HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge) .and. MeshParam%iSaturation == 0) Then + If(HydroParam%H(iEdge) < HydroParam%hj(iEdge) ) Then + HydroParam%DZsj(iLayer,iEdge) = HydroParam%H(iEdge) + ElseIf(HydroParam%H(iEdge) <= HydroParam%sj(iEdge))Then + HydroParam%DZsj(iLayer,iEdge) = 0.d0 + EndIf + EndIf + EndIf + EndIf + + !If(HydroParam%DZhj(iLayer,iEdge) < HydroParam%Pcri) Then + ! HydroParam%DZhj(iLayer,iEdge) = 0.d0 + !EndIf + + !xx. Hydraulic Conductivity: + If (HydroParam%DZsj(iLayer,iEdge) > 0) Then + !If Neighbour lower layer is above Elem layer, the lower Element layer is + If (iLayer < HydroParam%ElSmallms(r) .and. MeshParam%Ki(iLayer,l) > 0) Then + MeshParam%Kj(iLayer,iEdge) = MeshParam%Ki(iLayer,l) + ElseIf (iLayer < HydroParam%ElSmallms(l) .and. MeshParam%Ki(iLayer,r) > 0) Then + MeshParam%Kj(iLayer,iEdge) = MeshParam%Ki(iLayer,r) + Else + MeshParam%Kj(iLayer,iEdge) = Max(MeshParam%Ki(iLayer,l),MeshParam%Ki(iLayer,r)) + EndIf + EndIf + + !xx. Subsurface Wet Area: + HydroParam%DZK(iEdge) = HydroParam%DZK(iEdge) + HydroParam%DZsj(iLayer,iEdge)*MeshParam%Kj(iLayer,iEdge) !Sediment Layer + EndDo + EndIf EndDo + !!$OMP end parallel do - - ! 9. Compute the New Horizontal and Vertical Velocity Field - HydroParam%ut = HydroParam%u - Call uvelocity(HydroParam,MeshParam,dt) - - !Call utangvelocity(HydroParam,MeshParam,dt) - + ! 13. Vertical Velocity Field: HydroParam%wt = HydroParam%w !Call wvelocity(HydroParam,MeshParam,dt) + ! 13.1 Vertical Velocity Field to Surface Flow: Do iElem = 1, MeshParam%nElem - !11.4 Evaluate the new Vertical Velocity Field + ! 13.1.1 Evaluate the new Vertical Velocity Field HydroParam%w(HydroParam%ElSmallm(iElem),iElem) = 0. ! No Flux through the Bottom Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) SumW = 0. Do iEdge = 1,4 Face = MeshParam%Edge(iEdge,iElem) - SumW = SumW + (Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%Edgelength(Face)*HydroParam%DZjt(iLayer,Face)*HydroParam%u(iLayer,Face)) + SumW = SumW + (Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%Edgelength(Face)*HydroParam%DZhjt(iLayer,Face)*HydroParam%u(iLayer,Face)) EndDo - HydroParam%w(iLayer+1,iElem) = HydroParam%w(iLayer,iElem) - SumW/MeshParam%Area(iElem) ! w(k+1/2,iElem) [1] + HydroParam%w(iLayer+1,iElem) = HydroParam%w(iLayer,iElem) - SumW/MeshParam%Area(iElem) ! w(k+1/2,iElem) [1] EndDo EndDo + + HydroParam%wmt = HydroParam%wm + ! 13.2 Averaged Vertical Velocity Field: + If (MeshParam%iBedrock == 1) Then + Do iElem = 1, MeshParam%nElem + !13.2.1 Evaluate the Averaged Vertical Velocity Field + HydroParam%wm(HydroParam%ElSmallms(iElem),iElem) = 0. ! No Flux through the Bottom + Do iLayer = HydroParam%ElSmallms(iElem), HydroParam%ElCapitalM(iElem) + SumW = 0. + Do iEdge = 1,4 + Face = MeshParam%Edge(iEdge,iElem) + HydroParam%um(iLayer,Face) = (HydroParam%u(iLayer,Face)*HydroParam%DZhjt(iLayer,Face) + HydroParam%us(iLayer,Face)*HydroParam%DZsjt(iLayer,Face))/(HydroParam%DZsjt(iLayer,Face) + HydroParam%DZhjt(iLayer,Face)) + SumW = SumW + (Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%Edgelength(Face)*(HydroParam%DZsjt(iLayer,Face) + HydroParam%DZhjt(iLayer,Face))*HydroParam%um(iLayer,Face)) + EndDo + HydroParam%wm(iLayer+1,iElem) = HydroParam%wm(iLayer,iElem) - SumW/MeshParam%Area(iElem) ! w(k+1/2,iElem) [1] + EndDo + EndDo + Else + HydroParam%wm = HydroParam%w + EndIf - !Do iElem = 1, MeshParam%nElem - ! If (iElem==5) Then - ! !Balanço de volume baseado na equação da continuidade - ! HydroParam%SumVer = 0. - ! Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) !ElSmallm(iElem), ElSmallm(iElem) !ElCapitalM(iElem), ElCapitalM(iElem) ! - ! If (iLayer==HydroParam%ElCapitalM(iElem)) Then - ! SumW = 0. - ! Do iEdge = 1,4 - ! Face = MeshParam%Edge(iEdge,iElem) - ! Do iLayer_bar = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) - ! SumW = SumW + (HydroParam%theta*dt*Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%Edgelength(Face)*HydroParam%DZjt(iLayer_bar,Face)*HydroParam%u(iLayer_bar,Face)) + ((1.-HydroParam%theta)*dt*Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%Edgelength(Face)*HydroParam%DZjt(iLayer_bar,Face)*HydroParam%ut(iLayer_bar,Face)) - ! EndDo - ! EndDo - ! HydroParam%SumVer = HydroParam%SumVer + SumW + (HydroParam%eta(iElem)-HydroParam%etan(iElem))*MeshParam%Area(iElem) - ! Else - ! SumW = 0. - ! Do iEdge = 1,4 - ! Face = MeshParam%Edge(iEdge,iElem) - ! SumW = SumW + (Sig(iElem,MeshParam%Right(Face),MeshParam%Left(Face))*MeshParam%Edgelength(Face)*HydroParam%DZjt(iLayer,Face)*HydroParam%u(iLayer,Face)) - ! EndDo - ! HydroParam%SumVer = HydroParam%SumVer + SumW + (HydroParam%w(iLayer+1,iElem)-HydroParam%w(iLayer,iElem))*MeshParam%Area(iElem) - ! EndIf - ! EndDo - ! HydroParam%SumVerAcum = HydroParam%SumVerAcum + HydroParam%SumVer - ! !!Balanço de volume baseado na equação da continuidade integrada - ! !SumVer = -Sig(iElem,Right(Edge(1,iElem)),MeshParam%Left(Edge(1,iElem)))*(Theta*u(1,Edge(1,iElem))*DZjt(1,Edge(1,iElem))+(1.-Theta)*ut(1,Edge(1,iElem))*DZjt(1,Edge(1,iElem)))*DX*DT-Sig(iElem,Right(Edge(2,iElem)),MeshParam%Left(Edge(2,iElem)))*(Theta*u(1,Edge(2,iElem))*DZjt(1,Edge(2,iElem))+ (1.-Theta)*ut(1,Edge(2,iElem))*DZjt(1,Edge(2,iElem)))*DY*simParam%DT-Sig(iElem,Right(Edge(3,iElem)),MeshParam%Left(Edge(3,iElem)))*(Theta*u(1,Edge(3,iElem))*DZjt(1,Edge(3,iElem))+ (1.-Theta)*ut(1,Edge(3,iElem))*DZjt(1,Edge(3,iElem)))*DY*simParam%DT-Sig(iElem,Right(Edge(4,iElem)),MeshParam%Left(Edge(4,iElem)))*(Theta*u(1,Edge(4,iElem))*DZjt(1,Edge(4,iElem))+(1.-Theta)*ut(1,Edge(4,iElem))*DZjt(1,Edge(4,iElem)))*DY*simParam%DT - (eta(iElem)-etaplus(ielem)-etan(iElem))*DX*DY - ! !SumVerAcum = SumVerAcum + SumVer - ! !Write(*,*) '1-',SumVer,eta(iElem),sDSal(1,iElem)!SumVer, SumVerAcum!, VT2(I,J+1,1), VT1(I,J+1,1) - ! Print*,HydroParam%SumVer,HydroParam%SumVerAcum - ! pause - ! EndIf - ! EndDo - - - - !print*, HydroParam%w - !!$OMP end parallel do - !10. Non-hydrostatic correction - + + ! 14. Non-hydrostatic correction: If (HydroParam%iNonHydro==0.and.MeshParam%Kmax>1) Then Call NonHydroPressure(HydroParam,MeshParam,dt) EndIf - HydroParam%um = HydroParam%u !CAYO - HydroParam%u = HydroParam%u + HydroParam%us !CAYO - - ! 12. Compute average and tangential velocities + ! 15. Compute Nodal Velocities: !Call Velocities(HydroParam,MeshParam) - Call VelocitiesSUB(HydroParam,MeshParam) !CAYO - - HydroParam%u = HydroParam%um !CAYO - HydroParam%um = HydroParam%u + HydroParam%us !CAYO - + Call VelocitiesSUB(HydroParam,MeshParam) ! Call ExchangeTime(HydroParam,MeshParam,MeteoParam,dt) diff --git a/MOD_Hydrodynamic.f90 b/MOD_Hydrodynamic.f90 index 7929fac..97437af 100644 --- a/MOD_Hydrodynamic.f90 +++ b/MOD_Hydrodynamic.f90 @@ -43,6 +43,11 @@ Module Hydrodynamic Real, Allocatable:: DZK(:) !Sediment Layer + Real, Allocatable:: PsiCrit(:) !Sediment Layer + Real, Allocatable:: Gusub(:,:) !Sediment Layer + + Real, Allocatable:: psij(:,:)!CAYO + Real, Allocatable:: rj(:,:)!CAYO Real, Allocatable:: DZsj(:,:)!CAYO Real, Allocatable:: DZsjt(:,:)!CAYO @@ -61,6 +66,7 @@ Module Hydrodynamic Real, Allocatable:: ut(:,:) !< Normal velocity at previous time step, dimension: Kmax,nEdge Real, Allocatable:: utang(:,:) !< Normal velocity at the edges in each layer, dimension: Kmax,nEdge Real, Allocatable:: uxyback(:,:,:) !< horizontal backtracking velocity components at the edges in each layer, dimension: Kmax,2,nEdge + Real, Allocatable:: uArrow(:,:,:) Real, Allocatable:: uNode(:,:,:) !< Nodal velocity , dimension: Kmax,2,nNode Real, Allocatable:: uxy(:,:,:) !< horizontal velocity components at current time step ,dimension: (Kmax,2,nEdge) Real, Allocatable:: uxyL(:,:,:) !< horizontal velocity components in the center of each k+1/2 Layer for eack Element ,dimension: (Kmax+1,2,nElem) @@ -78,17 +84,35 @@ Module Hydrodynamic Real, Allocatable:: epson(:,:) !< Normal velocity at the edges in each layer, dimension: Kmax,nEdge Real, Allocatable:: psi_edge(:,:) Real, Allocatable:: psi_cell(:,:) + + + Real, Allocatable:: uNodet(:,:,:) !< Nodal velocity , dimension: Kmax,2,nNode + Real, Allocatable:: uxyt(:,:,:) !< horizontal velocity components at current time step ,dimension: (Kmax,2,nEdge) + Real, Allocatable:: uxyLt(:,:,:) + Real, Allocatable:: ugt(:,:),vgt(:,:),wgt(:,:) !< Velocities in each face in k+1/2 Layer dimension: (nEdge,Kmax+1) + Real, Allocatable:: ubt(:,:,:) !< cell-centered three components of velocity, dimension: ub(Kmax,3,nElem) + Real, Allocatable:: ubVt(:,:,:) + Real, Allocatable:: wfct(:,:) + Integer, Allocatable:: utangNodes(:,:) + Real, Allocatable:: uxysub(:,:,:) + Real, Allocatable:: ubsub(:,:,:) Real, Allocatable:: us(:,:) !< Normal superficial flow velocity at the edges in each layer, dimension: Kmax,nEdge !CAYO Real, Allocatable:: ust(:,:) !< Normal superficial flow velocity at previous time step, dimension: Kmax,nEdge !CAYO + Real, Allocatable:: ustang(:,:) !< Normal superficial flow velocity at previous time step, dimension: Kmax,nEdge !CAYO Real, Allocatable:: um(:,:) !< Kmax,nEdge !CAYO Real, Allocatable:: umt(:,:) !< Kmax,nEdge !CAYO + Real, Allocatable:: umtang(:,:) !< Kmax,nEdge !CAYO + Real, Allocatable:: wm(:,:) + Real, Allocatable:: wmt(:,:) ! 3.1. Others Variables Real, Allocatable:: etaInf(:) !< Tidal boundary condition + Real, Allocatable:: etaInfn(:) !< Tidal boundary condition in time n-1 Real, Allocatable:: etaplus(:) !< Vertical water balance at current time step dimension: nElem Real, Allocatable:: peta(:) !< Nodal free-Surface Elevation at current time step dimension: nNode Real, Allocatable:: petan(:) ! Nodal Free-Surface Elevation from previous timestep n (Time Step N+1; Time Step N) dimension: nElem Real, Allocatable:: eta(:) !< Cell-centered Free-Surface Elevation at current time step dimension: nElem + Real, Allocatable:: etak(:) !< Cell-centered Free-Surface Elevation at current time step dimension: nElem Real, Allocatable:: etan(:) ! Cell-centered Free-Surface Elevation from previous timestep n (Time Step N+1; Time Step N) dimension: nElem Real, Allocatable:: hb(:) !< elevation at the center of each element dimension: nElem Real, Allocatable:: sb(:) @@ -110,6 +134,12 @@ Module Hydrodynamic Real, Allocatable:: Hs(:) !CAYO !Real, Allocatable:: Kj(:,:), ei(:,:) !Porosity and Hydraulic Conductivity !CAYO !MOD_Mesh Real, Allocatable:: Vol(:) ! Free-Surface Elevation Vector @@ -11,6 +14,7 @@ Subroutine MatOp(a,b,dt,HydroParam,MeshParam) ! List of Modifications: ! -> 10.03.2014: Routine Implementation (Rafael Cavalcanti) + ! -> 07.05.2019: Update - Subsurface Flow Term (Cayo Lopes) ! Programmer: Rafael Cavalcanti !$ use omp_lib @@ -28,27 +32,31 @@ Subroutine MatOp(a,b,dt,HydroParam,MeshParam) Real, intent(out) :: b(MeshParam%nElem) Real:: aGhost - - Coef = HydroParam%g*(HydroParam%Theta*dt)**2 + !Coef = HydroParam%g*(HydroParam%Theta*dt)**2 !call omp_set_num_threads(1) ! 1. Compute T Matrix (Casulli, 2009) - !!$OMP parallel do default(none) shared(a,b,MeshParam,HydroParam,NearZero,Coef) private(iElem,iEdge,Face,Pij,Sum) - Do iElem = 1, MeshParam%nElem - b(iElem) = HydroParam%P(iElem)*a(iElem) ! Initializing b - Sum1 = 0d0 - Do iEdge = 1, 4 + Do iElem = 1, MeshParam%nElem + + b(iElem) = (HydroParam%P(iElem)-HydroParam%Qk(iElem))*a(iElem) !Initializing b vector + Sum1 = 0.d0 + Do iEdge = 1,4 Face = MeshParam%Edge(iEdge,iElem) Pij = MeshParam%Neighbor(iEdge,iElem) If (HydroParam%IndexWaterLevelEdge(Face)>0) Then - !Sum1 = Sum1 !+ Coef*( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( ( - a(iElem) ) )*HydroParam%DZiADZ(Face) !( EdgeLength(Face)/CirDistance(Face) )* - Sum1 = Sum1 + Coef*( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( ( - a(iElem) ) )*HydroParam%DZiADZ(Face) + !Face with pressure head boundary condition: + !!Casulli,2015: + Sum1 = Sum1 + ( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( - a(iElem) )*(HydroParam%Theta*dt)*(HydroParam%Theta*HydroParam%g*dt*HydroParam%DZiADZ(Face) + HydroParam%DZK(Face)) + !Sum1 = Sum1 + ( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( - a(iElem) )*(HydroParam%Theta*dt)*(HydroParam%Theta*HydroParam%g*dt*HydroParam%DZiADZ(Face) + HydroParam%Theta*HydroParam%DZK(Face)) Else If (Pij == 0) Then Sum1 = Sum1 + continue Else - Sum1 = Sum1 + Coef*( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( ( a(Pij) - a(iElem) ) )*HydroParam%DZiADZ(Face) + !Casulli,2015: + Sum1 = Sum1 + ( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( ( a(Pij) - a(iElem) ) )*(HydroParam%Theta*dt)*(HydroParam%Theta*HydroParam%g*dt*HydroParam%DZiADZ(Face) + HydroParam%DZK(Face)) + !Sum1 = Sum1 + ( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( ( a(Pij) - a(iElem) ) )*(HydroParam%Theta*dt)*(HydroParam%Theta*HydroParam%g*dt*HydroParam%DZiADZ(Face) + HydroParam%Theta*HydroParam%DZK(Face)) EndIf EndIf !If (Pij == 0.or.HydroParam%H(Face) <= HydroParam%PCRI+NearZero) Then @@ -59,11 +67,11 @@ Subroutine MatOp(a,b,dt,HydroParam,MeshParam) ! Sum1 = Sum1 + Coef*( MeshParam%EdgeLength(Face)/MeshParam%CirDistance(Face) )*( ( a(Pij) - a(iElem) ) )*HydroParam%DZiADZ(Face) !EndIf EndDo + !b(iElem) = (P+T).eta b(iElem) = b(iElem) - Sum1 EndDo !!$OMP end parallel do - Return End Subroutine MatOp \ No newline at end of file diff --git a/Mod_Mesh.f90 b/Mod_Mesh.f90 index b64dde3..bd5b78c 100644 --- a/Mod_Mesh.f90 +++ b/Mod_Mesh.f90 @@ -37,6 +37,7 @@ Module MeshVars use domain_types + use Sorting implicit none type MeshGridParam @@ -64,7 +65,7 @@ Module MeshVars Integer, Allocatable:: indPoint(:,:),Connect(:),cell_type(:) Real, Allocatable:: LIMCAM(:) !< Layer levels (m) Real, Allocatable:: LIMCAMAUX(:) - Integer:: NCAMMAX !< Number of Vertical Layers + Integer:: NCAMMAX !< Number of Vertical Layers Real:: zL !< y-cell resolution (m) Real:: zR !< y-cell resolution (m) Integer:: KMax !< Maximum Number of Vertical Layers @@ -76,7 +77,7 @@ Module MeshVars Integer, Allocatable :: LeftAux(:), RightAux(:) Real, Allocatable:: AbsDelta(:), EdgeBaryAux(:,:) Integer:: nMaxVertexElem,nMaxEgdesatNode - + !2. Grid Data Integer:: iWindRed Integer:: iWetland @@ -89,8 +90,16 @@ Module MeshVars Real, Allocatable:: d50(:) Real, Allocatable:: OMfraction(:) Real, Allocatable:: eta0(:) + Real, Allocatable:: Ki(:,:) !CAYO Real, Allocatable:: Kj(:,:) !CAYO - Real, Allocatable:: ei(:,:) !CAYO + Real, Allocatable:: Ksat(:,:) !CAYO + Real, Allocatable:: Si(:,:) !CAYO + Real, Allocatable:: alpha(:,:) !CAYO + Real, Allocatable:: nSoil(:,:) !CAYO + Real, Allocatable:: ei(:,:) !CAYO + Integer:: subfactor + Integer:: iSaturation + Integer, Allocatable:: trv(:),NEIBN(:),NEIBL(:),NEIBS(:),NEIBO(:) @@ -116,50 +125,76 @@ subroutine initializeMeshParam(this, sim, StructuredMeshFeatures) integer(c_long_long), pointer :: verticeIds(:) Integer:: i,j,jEdge,jNode1,jNode2 Integer:: nMaxVertexElem,nMaxEgdesatNode - Real:: n3d(3), tempvec(3), Check(2), v(4,3), zn(3), Norm_n3d, CheckMesh, Det + Real:: n3d(3), tempvec(3), Check(2), v(4,3), zn(3), Norm_n3d, CheckMesh, Det, layersub(81)!bench 02: Integer:: l, r - + + call c_f_pointer(StructuredMeshFeatures%xCoordinates, xCoordinates, [StructuredMeshFeatures%numberOfElements]) call c_f_pointer(StructuredMeshFeatures%yCoordinates, yCoordinates, [StructuredMeshFeatures%numberOfElements]) call c_f_pointer(StructuredMeshFeatures%verticeIds, verticeIds, [StructuredMeshFeatures%verticeIdsLength]) call c_f_pointer(sim%label, simulationLabel, [sim%labelLength]) call c_f_pointer(sim%layers, layers, [sim%layersLength]) - this%nElem = StructuredMeshFeatures%numberOfElements + this%nElem = StructuredMeshFeatures%numberOfElements + this%dx = StructuredMeshFeatures%resolution - !Lock horizontal resolution test - this%dx = 0.02d0 - !! this%dy = this%dx - - + !Lock horizontal resolution test + this%dx = 20.0d0 !bench 02 + !this%dy = 6.48d0 !bench 01 + !this%dx = 0.020d0 !bench 01 + !this%nElem = StructuredMeshFeatures%numberOfElements - 36 !bench01 + this%subfactor = 100 Allocate(this%xb(this%nElem)) Allocate(this%yb(this%nElem)) Allocate(this%Quadri(4,this%nElem)) - + ! 1. Defining Mesh Vertex + ! Using NC and NL we can define a Mathematical Equation to save the vertex for each node without repetition + ! For nodes numeration, the Standard is this: + ! 4 3 + ! .-----. + ! | | + ! | | + ! .-----. + ! 1 2 + ! For nodes positions in the vector, the Standard is this: + ! 2 1 + ! .-----. + ! | | + ! | | + ! .-----. + ! 3 4 Do iElem = 1, this%nElem this%xb(iElem) = xCoordinates(iElem) - this%yb(iElem) = yCoordinates(iElem) + this%yb(iElem) = yCoordinates(iElem) + !this%yb(iElem) = this%dy/2 !yCoordinates(iElem) !CAYO b01 this%Quadri(3,iElem) = verticeIds(4*(iElem-1)+1) this%Quadri(4,iElem) = verticeIds(4*(iElem-1)+2) this%Quadri(1,iElem) = verticeIds(4*(iElem-1)+3) this%Quadri(2,iElem) = verticeIds(4*(iElem-1)+4) EndDo - - !transferir para Module Mesh - this%NCAMMAX = sim%layersLength + 1 !Cayo. Original: this%NCAMMAX = sim%layersLength ! Number of Vertical Layers - this%zL = sim%minimumVerticalLimit-0.001 !Cayo. Original: sim%minimumVerticalLimit-0.001 -16.001 + this%NCAMMAX = sim%layersLength ! Number of Vertical Layers + this%zL = sim%minimumVerticalLimit-0.001 this%zR = sim%maximumVerticalLimit - + Call SortDecreasing(layers,sim%layersLength) + + !this%NCAMMAX = 62 !bench02 1 surface + 11 subsurface + this%zL = 0.000 !bench02 + !layersub(1) = sim%maximumVerticalLimit-1 + !Do i = 2,this%NCAMMAX-1 + ! layersub(i) = sim%maximumVerticalLimit - i !the top ten layers have 1m thickness + !EndDo + !layersub(this%NCAMMAX) = this%zL + If (this%NCAMMAX > 0) Then ALLOCATE (this%LIMCAM(this%NCAMMAX)) ALLOCATE (this%LIMCAMAUX(this%NCAMMAX+1)) - Do i = 1,this%NCAMMAX-1 !Cayo. Original: sDo i = 1,this%NCAMMAX + Do i = 1,this%NCAMMAX this%LIMCAM(i) = layers(i) ! Layer levels (m) + this%LIMCAM(i) = layersub(i) !bench02 EndDo - !%LIMCAM(this%NCAMMAX) = -12 !Cayo (linha adicionada) Else ALLOCATE (this%LIMCAM(1)) ALLOCATE (this%LIMCAMAUX(1)) @@ -167,9 +202,8 @@ subroutine initializeMeshParam(this, sim, StructuredMeshFeatures) this%LIMCAMAUX = this%zL EndIf - ! Number of Vertical Layers - If (this%NCAMMAX ==0) then !Two-dimensional + If (this%NCAMMAX == 0) then !Two-dimensional this%KMax = 1 this%LIMCAMAUX(this%KMax)=this%zL ElseIf (this%NCAMMAX >= 1) then !Three-dimensional @@ -200,6 +234,7 @@ subroutine initializeMeshParam(this, sim, StructuredMeshFeatures) Else Stop 'Incorrect number of Layers' Endif + this%nNode = MAXVAL(this%Quadri) + 1 this%nPoint = this%nNode @@ -339,6 +374,7 @@ subroutine initializeMeshParam(this, sim, StructuredMeshFeatures) Allocate(this%Left(this%nEdge)) Allocate(this%Right(this%nEdge)) + Allocate(this%EdgeLength(this%nEdge)) Allocate(this%CirDistance(this%nEdge)) Allocate(this%AbsDelta(this%nEdge)) @@ -401,7 +437,7 @@ subroutine initializeMeshParam(this, sim, StructuredMeshFeatures) this%nMaxEgdesatNode = this%nMaxVertexElem + 1 - Allocate(this%EgdesatNode(this%nMaxEgdesatNode,this%nNode)) + Allocate(this%EgdesatNode(this%nMaxEgdesatNode,this%nNode)) Allocate(this%nEgdesatNode(this%nNode)) this%nEgdesatNode = 0 this%EgdesatNode = 0 @@ -444,6 +480,4 @@ subroutine initializeMeshParam(this, sim, StructuredMeshFeatures) end subroutine -End Module MeshVars - - \ No newline at end of file +End Module MeshVars \ No newline at end of file diff --git a/Mod_Simulation.f90 b/Mod_Simulation.f90 index 37d8f32..d52ddff 100644 --- a/Mod_Simulation.f90 +++ b/Mod_Simulation.f90 @@ -76,10 +76,11 @@ subroutine initializeSimulationParam(this,sim) this%dt = sim%stepTime !0.001 ! Step time of the simulation (seg) this%dtday = this%dt/86400. ! Step time of the simulation (day) call c_f_pointer(sim%wqoOutputParameters, this%wqoOutputParameters, [sim%wqoOutputParametersLength]) - + + allocate(this%start(int(this%FinalTime/this%dt)+1)) allocate(this%finish(int(this%FinalTime/this%dt)+1)) - + If (.not.associated(this%SaveVariables)) then Allocate(this%SaveVariables) this%RestartTime = 0 diff --git a/MoistureContent.f90 b/MoistureContent.f90 new file mode 100644 index 0000000..53079ab --- /dev/null +++ b/MoistureContent.f90 @@ -0,0 +1,498 @@ + Subroutine MoistureContent(eta,etaplus,iElem,HydroParam,MeshParam) + + Use MeshVars + Use Hydrodynamic + Implicit none + Real :: eta, etaplus, V + Integer :: iElem, iLayer + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + HydroParam%Vol(iElem) = MeshParam%Area(iElem)*etaplus + HydroParam%Vol1(iElem) = 0.d0 + MeshParam%Si(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalM(iElem),iElem) = 1.d0 + MeshParam%Ki(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + MeshParam%Ki(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) = MeshParam%Ksat(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) + HydroParam%Ci(iElem) = 0.d0 + If (V(eta,HydroParam%sb(iElem)) > 0.0d0 ) Then ! Wet Cell + If (V(eta,HydroParam%hb(iElem)) > 0.0d0) Then + ! Superficial Layer: + !HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem),HydroParam%DZsi(:,iElem)) + V(eta,HydroParam%hb(iElem)) ) !V1 = %Vol and V2 is zero. + !HydroParam%Vol1(iElem) = MeshParam%Area(iElem)*(sum(HydroParam%DZsi(:,iElem)) + V(eta,HydroParam%hb(iElem)) ) + HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem),HydroParam%DZsi(:,iElem)) + V(eta,HydroParam%hb(iElem)) ) + HydroParam%Vol1(iElem) = MeshParam%Area(iElem)*etaplus + MeshParam%Area(iElem)*V(eta,HydroParam%sb(iElem)) + !!! Subsurface Layer: + !Do iLayer = HydroParam%ElSmallms(iElem),HydroParam%ElCapitalMs(iElem) + ! If(HydroParam%DZsi(iLayer,iElem) > 0 ) Then + ! MeshParam%Si(iLayer,iElem) = 0.d0 + ! Call SoilSaturation(eta, HydroParam%Vol(iElem), HydroParam%Vol1(iElem), iLayer, iElem, HydroParam, MeshParam) + ! EndIf + !EndDo + HydroParam%P(iElem) = MeshParam%Area(iElem) + !HydroParam%Ci(iElem) = HydroParam%P(iElem) + HydroParam%Ci(iElem) = MeshParam%Area(iElem) + Else + HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*V(eta,HydroParam%sb(iElem)) !V1 = %Vol and V2 is zero. + HydroParam%Vol1(iElem) = MeshParam%Area(iElem)*V(eta,HydroParam%sb(iElem)) + HydroParam%P(iElem) = MeshParam%Area(iElem) + HydroParam%Ci(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem) + + !! Only Subsurface Flow: + !MeshParam%Si(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + !Do iLayer = HydroParam%ElSmallms(iElem),HydroParam%ElCapitalMs(iElem) + ! MeshParam%Si(iLayer,iElem) = 0.d0 + ! If(HydroParam%DZsi(iLayer,iElem) > 0 ) Then + ! MeshParam%Si(iLayer,iElem) = 0.d0 + ! Call SoilSaturation(eta, HydroParam%Vol(iElem), HydroParam%Vol1(iElem), iLayer, iElem, HydroParam, MeshParam) + ! EndIf + !EndDo + !HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*HydroParam%P(iElem) + !HydroParam%Ci(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*HydroParam%Ci(iElem) + !HydroParam%Ci(iElem) = 0.0d0 + EndIf + Else ! Dry Cell + MeshParam%Si(:,iElem) = 0.d0 + MeshParam%Ki(:,iElem) = 0.d0 + HydroParam%P(iElem) = MeshParam%Area(iElem) + HydroParam%Ci(iElem) = MeshParam%Area(iElem) + EndIf + + End Subroutine MoistureContent + + ! + !Subroutine Vol1(eta,Vol,iElem,HydroParam,MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + !Implicit none + !Real :: eta, etaplus, V, Vol + !Integer :: iElem, iLayer + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !Vol = 0.d0 + !MeshParam%Si(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalM(iElem),iElem) = 1.d0 + !MeshParam%Ki(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + !MeshParam%Ki(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) = MeshParam%Ksat(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) + ! + !If (V(eta,HydroParam%sb(iElem)) > 0.0d0 ) Then !Cell Wet + ! If (V(eta,HydroParam%hb(iElem) > HydroParam%Pcri)) Then ! Superficial Layer + ! HydroParam%P(iElem) = MeshParam%Area(iElem) + ! Vol = MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem),HydroParam%DZsi(:,iElem)) + V(eta,HydroParam%hb(iElem)) ) !V1 = %Vol and V2 is zero. + ! Else + ! !Subsurface Flow + ! MeshParam%Si(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + ! Do iLayer = HydroParam%ElSmallms(iElem),HydroParam%ElCapitalMs(iElem) + ! MeshParam%Si(iLayer,iElem) = 0.d0 + ! Call SoilSaturation(HydroParam%hb(iElem)-HydroParam%PsiCrit(iElem), Vol, iLayer, iElem, HydroParam, MeshParam) + ! EndDo + ! HydroParam%P = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*HydroParam%P(iElem) + ! Vol = Vol + HydroParam%P(iElem)*HydroParam%PsiCrit(iElem) + ! EndIf + ! + !EndIf + ! + !End Subroutine Vol1 + ! + + Subroutine SoilSaturation(eta,Vol,V1,iLayer,iElem,HydroParam,MeshParam) + + Use MeshVars + Use Hydrodynamic + + Implicit none + + Real :: SoilSat, mParam, eta, V, Kiaux, Z, Vol, V1, dz, iLayeraux + !Integer :: iElem, iLayer,subfactor + Integer :: iElem, iLayer + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + If(MeshParam%iSaturation == 0) Then !Darcy's Model + + If(HydroParam%Ze(iLayer,iElem) < eta < HydroParam%Ze(iLayer+1,iElem)) Then + + Vol = Vol + MeshParam%Area(iElem)*( V(eta,HydroParam%Ze(iLayer,iElem)) - V(eta,HydroParam%hb(iElem)))*MeshParam%ei(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*( V(eta,HydroParam%Ze(iLayer,iElem)) - V(eta,HydroParam%hb(iElem) )) + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem) + MeshParam%Si(iLayer,iElem) = 1.0d0 + HydroParam%Ci(iElem) = 1.0d0 + + ElseIf(eta >= HydroParam%Ze(iLayer+1,iElem)) Then + + Vol = Vol + MeshParam%Area(iElem)*(HydroParam%DZsi(iLayer,iElem))*MeshParam%ei(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*(HydroParam%DZsi(iLayer,iElem)) + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem) + MeshParam%Si(iLayer,iElem) = 1.0d0 + HydroParam%Ci(iElem) = 1.0d0/MeshParam%ei(iLayer,iElem) + + Else + MeshParam%Ki(iLayer,iElem) = 0.d0 + MeshParam%Si(iLayer,iElem) = 0.d0 + EndIf + HydroParam%P(iElem) = MeshParam%Si(iLayer,iElem)/MeshParam%ei(iLayer,iElem) + + ElseIf(MeshParam%iSaturation == 1) Then !Brooks and Corey's Model + + If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalMs(iElem)) Then + !subfactor = 100 + iLayeraux = 1 + Z = HydroParam%hb(iElem) + mParam = (1-1/MeshParam%nSoil(iLayeraux,iElem)) + !dz = (HydroParam%hb(iElem)-Z)/MeshParam%subfactor + dz = (Z - HydroParam%sb(iElem))/MeshParam%subfactor + !HydroParam%P(iElem) = 1/(MeshParam%alpha(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)))**(MeshParam%nSoil(iLayeraux,iElem)) + If(eta - HydroParam%hb(iElem) < 0.d0 .and. eta - HydroParam%hb(iElem) < -HydroParam%PsiCrit(iElem)) Then + Do While(Z > HydroParam%sb(iElem)) + Z = Z - dz + !Z = Z + HydroParam%DZsi(HydroParam%ElSmallms(iElem),iElem)/subfactor + If(eta - Z + dz/2 <= -HydroParam%PsiCrit(iElem)) Then + MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayeraux,iElem)*(Z + dz/2 - eta))**(MeshParam%nSoil(iLayeraux,iElem)) + MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + ! %P = Saturation(Critical Pressure) + HydroParam%P(iElem) = HydroParam%P(iElem) + dz*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta-Z+dz/2))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + dz*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta-Z+dz/2))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + !V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + !Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + Else + MeshParam%Si(iLayer,iElem) = 1.d0 + HydroParam%Ci(iElem) = 1.d0 + HydroParam%P(iElem) = HydroParam%P(iElem) + dz*MeshParam%nSoil(iLayeraux,iElem)/HydroParam%PsiCrit(iElem) + V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + EndIf + !V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + !Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + Kiaux = MeshParam%Ksat(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem)**(3+2/MeshParam%nSoil(iLayeraux,iElem)) + MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ki(iLayeraux,iElem) + Kiaux + iLayer = iLayer + 1 + + EndDo + MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ki(iLayeraux,iElem)/MeshParam%subfactor + Else + !Soil satured: + MeshParam%Si(:,iElem) = 1.d0 + HydroParam%P(iElem) = 1/MeshParam%ei(iLayeraux,iElem) + HydroParam%Ci(iElem) = 1.0d0 + + MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ksat(iLayeraux,iElem) + V1 = V1 + MeshParam%Area(iElem)*Min(eta - HydroParam%sb(iElem),HydroParam%DZsi(iLayeraux,iElem)) + Vol = Vol + MeshParam%Area(iElem)*Min(eta - HydroParam%sb(iElem),HydroParam%DZsi(iLayeraux,iElem))*MeshParam%ei(iLayeraux,iElem) + Endif + ! + !If(eta - HydroParam%hb(iElem) < 0.d0 .and. eta - HydroParam%hb(iElem) < -HydroParam%PsiCrit(iElem)) Then + ! Do While(Z <= HydroParam%hb(iElem)) + ! !Z = Z + HydroParam%DZsi(HydroParam%ElSmallms(iElem),iElem)/subfactor + ! Z = Z + dz + ! If(eta - Z - dz/2 <= -HydroParam%PsiCrit(iElem)) Then + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayeraux,iElem)*(Z-dz/2 - eta))**(MeshParam%nSoil(iLayeraux,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + ! ! %P = Saturation(Critical Pressure) + ! HydroParam%P(iElem) = HydroParam%P(iElem) + dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta-Z-dz/2))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + ! HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta-Z-dz/2))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + ! V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + ! Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + ! Else + ! MeshParam%Si(iLayer,iElem) = 1.d0 + ! !HydroParam%Ci(iElem) = 1.d0 + ! HydroParam%P(iElem) = HydroParam%P(iElem) + dz*MeshParam%nSoil(iLayeraux,iElem)/HydroParam%PsiCrit(iElem) + ! V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + ! Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + ! EndIf + ! !V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + ! !Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + ! Kiaux = MeshParam%Ksat(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem)**(3+2/MeshParam%nSoil(iLayeraux,iElem)) + ! MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ki(iLayeraux,iElem) + Kiaux + ! iLayer = iLayer + 1 + ! EndDo + ! MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ki(iLayeraux,iElem)/MeshParam%subfactor + !Else + ! !Soil satured: + ! MeshParam%Si(:,iElem) = 1.d0 + ! HydroParam%P(iElem) = 1/MeshParam%ei(iLayeraux,iElem) + ! HydroParam%Ci(iElem) = 1.0d0 + ! + ! MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ksat(iLayeraux,iElem) + ! V1 = MeshParam%Area(iElem)*Min(eta - HydroParam%sb(iElem),HydroParam%DZsi(iLayeraux,iElem)) + ! Vol = MeshParam%Area(iElem)*Min(eta - HydroParam%sb(iElem),HydroParam%DZsi(iLayeraux,iElem))*MeshParam%ei(iLayeraux,iElem) + !Endif + ! + + Else + HydroParam%P(iElem) = 1.0d0 + If(eta - HydroParam%Zb(iLayer,iElem) <= -HydroParam%PsiCrit(iElem)) Then + MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Zb(iLayer+1,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta - HydroParam%Zb(iLayer,iElem)))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + !If(eta-HydroParam%Ze(iLayer+1,iElem) <= -HydroParam%PsiCrit(iElem)) Then + ! HydroParam%P(iElem) = 1.0d0 + ! !HydroParam%P(iElem) = 1/(MeshParam%alpha(iLayer,iElem)*(-HydroParam%PsiCrit(iElem)))**(MeshParam%nSoil(iLayer,iElem)) + ! + ! If(eta-HydroParam%Ze(iLayer,iElem) < -HydroParam%PsiCrit(iElem)) Then + ! ! eta < Ze & Pressure in Cell <= Critical Pressure + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + ! V1 = V1 + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + ! Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! + ! HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta - HydroParam%Ze(iLayer+1,iElem)))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + ! !HydroParam%Ci(iElem) = HydroParam%P(iElem) + ! Else + ! ! Ze < eta < Ze + 1: Cell Partially Wet + ! !Vol to Ze - eta: + ! V1 = V1 + MeshParam%Area(iElem)*(eta - HydroParam%Ze(iLayer,iElem) + HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem) + ! Vol = Vol + MeshParam%Area(iElem)*(eta - HydroParam%Ze(iLayer,iElem) + HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem) + ! + ! !Vol to eta - Ze + 1: + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta - HydroParam%PsiCrit(iElem)))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + ! Vol = Vol + MeshParam%Area(iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta - HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! V1 = V1 + MeshParam%Area(iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta - HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + ! + ! HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + (HydroParam%Ze(iLayer+1,iElem) - eta)*MeshParam%nSoil(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem)/(eta-HydroParam%Ze(iLayer+1,iElem)))**(MeshParam%nSoil(iLayeraux,iElem) + 1)/HydroParam%PsiCrit(iElem) + ! + ! !Saturation Weighted to calc the hydraulic conductivity: + ! MeshParam%Si(iLayer,iElem) = (MeshParam%Si(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta) + (eta - HydroParam%Ze(iLayer,iElem)))/HydroParam%DZsi(iLayer,iElem) + ! EndIf + Else + ! eta > Zb + 1 + MeshParam%Si(:,iElem) = 1.d0 + HydroParam%Ci(iElem) = HydroParam%P(iElem) + Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem) + EndIf + !Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*MeshParam%Si(iLayer,iElem)**(3+2/MeshParam%nSoil(iLayer,iElem)) + EndIf + + Else !van Genuchten's Model + mParam = (1-1/MeshParam%nSoil(iLayer,iElem)) + If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalMs(iElem)) Then + !subfactor = 100 + iLayeraux = 1 + Z = HydroParam%sb(iElem) + mParam = (1-1/MeshParam%nSoil(iLayer,iElem)) + dz = (HydroParam%hb(iElem)-Z)/MeshParam%subfactor + HydroParam%P(iElem) = 1.0d0 + Do While(Z <= HydroParam%hb(iElem)) + Z = Z + dz + If(eta - Z <= 0) Then + MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayeraux,iElem)*(Z - eta))**(MeshParam%nSoil(iLayeraux,iElem)) + MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + If(eta - Z <= -HydroParam%PsiCrit(iElem)) Then + ! (Theta)zz is stricly positive and increasing for all eta - Z < -Psicrit and decreasing for eta - Z >= -Psicrit + ! Which means that the Psicrit is the Inflection Point of Theta + !HydroParam%P(iElem) = 1/( 1 + MeshParam%alpha(iLayeraux,iElem)*(-HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayeraux,iElem)))**mParam + HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + dz*MeshParam%nSoil(iLayeraux,iElem)*MeshParam%alpha(iLayeraux,iElem)*mParam*abs(MeshParam%alpha(iLayeraux,iElem)*HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayeraux,iElem)-1)/(1 + abs(MeshParam%alpha(iLayeraux,iElem)*(Z - eta)**MeshParam%nSoil(iLayeraux,iElem)))**(mParam + 1) + Else + HydroParam%P(iElem) = MeshParam%Si(iLayer,iElem) + EndIf + Else + MeshParam%Si(iLayer,iElem) = 1.d0 + HydroParam%Ci(iElem) = HydroParam%P(iElem) + EndIf + + Vol = Vol + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*MeshParam%Si(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*dz*MeshParam%ei(iLayeraux,iElem)*HydroParam%P(iElem) + Kiaux = MeshParam%Ksat(iLayeraux,iElem)*(1-(1-MeshParam%Si(iLayer,iElem)**(1/mParam))**mParam)**2 + MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ki(iLayeraux,iElem) + Kiaux*(MeshParam%Si(iLayer,iElem))**0.5 + iLayer = iLayer + 1 + EndDo + + MeshParam%Ki(iLayeraux,iElem) = MeshParam%Ki(iLayeraux,iElem)/MeshParam%subfactor + + Else + HydroParam%P(iElem) = 1 + If(eta - HydroParam%Zb(iLayer,iElem) <= 0) Then + + MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Zb(iLayer+1,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + + If(eta - HydroParam%Zb(iLayer,iElem) < -HydroParam%PsiCrit(iElem)) Then + HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayeraux,iElem)*MeshParam%alpha(iLayeraux,iElem)*mParam*abs(MeshParam%alpha(iLayeraux,iElem)*HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayeraux,iElem)-1)/(1 + abs(MeshParam%alpha(iLayeraux,iElem)*(eta - HydroParam%Zb(iLayer,iElem))**MeshParam%nSoil(iLayeraux,iElem)))**(mParam + 1) + !HydroParam%P(iElem) = HydroParam%P(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%nSoil(iLayeraux,iElem)*MeshParam%alpha(iLayeraux,iElem)*mParam*abs(MeshParam%alpha(iLayeraux,iElem)*HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayeraux,iElem)-1)/(1 + abs(MeshParam%alpha(iLayeraux,iElem)*(eta - HydroParam%Zb(iLayer,iElem))**MeshParam%nSoil(iLayeraux,iElem)))**(mParam + 1) + Else + !HydroParam%P(iElem) = 1/( 1 + MeshParam%alpha(iLayer,iElem)*(-1.05*HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayer,iElem)))**mParam + EndIf + + + !If(eta - HydroParam%Ze(iLayer+1,iElem) <= 0) Then + ! + ! HydroParam%P(iElem) = 1/( 1 + MeshParam%alpha(iLayer,iElem)*(-HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayer,iElem)))**mParam + ! + ! If(eta-HydroParam%Ze(iLayer,iElem) <= 0) Then + ! ! eta < Ze + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + ! Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! V1 = V1 + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + ! Else + ! ! Ze < eta < Ze + 1: Cell Partially Wet + ! !Vol to Ze - eta: + ! V1 = V1 + MeshParam%Area(iElem)*(eta - HydroParam%Ze(iLayer,iElem) + HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem) + ! Vol = Vol + MeshParam%Area(iElem)*(eta - HydroParam%Ze(iLayer,iElem) + HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem) + ! + ! ! Ze < eta < Ze + 1: + ! Vol = Vol + MeshParam%Area(iElem)*(eta - HydroParam%Ze(iLayer,iElem))*MeshParam%ei(iLayer,iElem) + ! + ! !Vol to eta - Ze + 1: + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta - HydroParam%PsiCrit(iElem)))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + ! Vol = Vol + MeshParam%Area(iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta - HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! V1 = V1 + MeshParam%Area(iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta - HydroParam%PsiCrit(iElem))*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + ! + ! !Saturation Weighted to calc the hydraulic conductivity: + ! MeshParam%Si(iLayer,iElem) = (MeshParam%Si(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta) + (eta - HydroParam%Ze(iLayer,iElem)))/HydroParam%DZsi(iLayer,iElem) + ! EndIf + ! + ! + ! If(eta-HydroParam%Ze(iLayer,iElem) < -HydroParam%PsiCrit(iElem)) Then + ! + ! HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%nSoil(iLayeraux,iElem)*MeshParam%alpha(iLayeraux,iElem)*mParam*abs(MeshParam%alpha(iLayeraux,iElem)*HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayeraux,iElem)-1)/(1 + abs(MeshParam%alpha(iLayeraux,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta)**MeshParam%nSoil(iLayeraux,iElem)))**(mParam + 1) + ! + ! ElseIf(eta-HydroParam%Ze(iLayer+1,iElem) < -HydroParam%PsiCrit(iElem)) Then + ! + ! HydroParam%Ci(iElem) = HydroParam%Ci(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%nSoil(iLayeraux,iElem)*MeshParam%alpha(iLayeraux,iElem)*mParam*abs(MeshParam%alpha(iLayeraux,iElem)*HydroParam%PsiCrit(iElem))**(MeshParam%nSoil(iLayeraux,iElem)-1)/(1 + abs(MeshParam%alpha(iLayeraux,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta)**MeshParam%nSoil(iLayeraux,iElem)))**(mParam + 1) + ! + ! EndIf + ! + Else + MeshParam%Si(iLayer,iElem) = 1.d0 + Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem) + V1 = V1 + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem) + EndIf + + !Vol = Vol + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*(1-(1-MeshParam%Si(iLayer,iElem)**(1/mParam))**mParam)**2 + MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem)*(MeshParam%Si(iLayer,iElem))**0.5 + EndIf + EndIf + return + + End Subroutine SoilSaturation + + + !Subroutine MoistureContent(eta,etaplus,iElem,HydroParam,MeshParam) + ! + ! Use MeshVars + ! Use Hydrodynamic + ! Implicit none + ! Real :: eta, etaplus, V + ! Integer :: iElem, iLayer + ! type(MeshGridParam) :: MeshParam + ! type(HydrodynamicParam) :: HydroParam + ! HydroParam%PsiCrit(iElem) = 0.d0 + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*etaplus + ! MeshParam%Si(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalM(iElem),iElem) = 1.d0 + ! MeshParam%Ki(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + ! MeshParam%Ki(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) = MeshParam%Ksat(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) + ! If (eta <= HydroParam%hb(iElem) .and. eta > HydroParam%sb(iElem)) Then ! + ! MeshParam%Si(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + ! !If eta is above the bathmetry, the soil can be unsatured, calculate saturation by models: + ! Do iLayer = HydroParam%ElSmallms(iElem),HydroParam%ElCapitalMs(iElem) + ! MeshParam%Si(iLayer,iElem) = 0.d0 + ! Call SoilSaturation(eta, iLayer, iElem, HydroParam, MeshParam) + ! EndDo + ! ElseIf(eta > HydroParam%hb(iElem)) Then + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + V(eta,HydroParam%hb(iElem)) ) + ! Else + ! MeshParam%Si(:,iElem) = 0.d0 + ! MeshParam%Ki(:,iElem) = 0.d0 + ! EndIf + ! + ! End Subroutine MoistureContent + ! + ! Subroutine SoilSaturation(eta, iLayer, iElem, HydroParam, MeshParam) + ! + ! Use MeshVars + ! Use Hydrodynamic + ! + ! Implicit none + ! + ! Real :: SoilSat, mParam, eta, V, Kiaux, Z + ! Integer :: iElem, iLayer,subfactor + ! type(MeshGridParam) :: MeshParam + ! type(HydrodynamicParam) :: HydroParam + ! + ! If(MeshParam%iSaturation == 0) Then !Darcy's Model + ! HydroParam%PsiCrit(iElem) = 0.d0 + ! If(HydroParam%Ze(iLayer,iElem) < eta < HydroParam%Ze(iLayer+1,iElem)) Then + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(V(eta,HydroParam%Ze(iLayer,iElem)))*MeshParam%ei(iLayer,iElem) + ! MeshParam%Si(iLayer,iElem) = Min(1.d0,(eta - HydroParam%Ze(iLayer,iElem))/HydroParam%DZsi(iLayer,iElem)) !layer thickness wet percentage + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem) + ! ElseIf(eta >= HydroParam%Ze(iLayer+1,iElem)) Then + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem) + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem) + ! Else + ! MeshParam%Ki(iLayer,iElem) = 0.d0 + ! EndIf + ! ElseIf(MeshParam%iSaturation == 1) Then ! Brooks and Corey's Model + ! HydroParam%PsiCrit(iElem) = 1/MeshParam%alpha(HydroParam%ElCapitalMs(iElem),iElem) + ! If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalMs(iElem)) Then + ! subfactor = 100 + ! Z = 0.d0 + ! mParam = (1-1/MeshParam%nSoil(iLayer,iElem)) + ! Do While(Z <= HydroParam%hb(iElem)) + ! Z = Z + HydroParam%DZsi(HydroParam%ElSmallms(iElem),iElem)/subfactor + ! If(eta < Z) Then + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(Z - eta))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + ! Else + ! MeshParam%Si(iLayer,iElem) = 1.d0 + ! EndIf + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(HydroParam%DZsi(HydroParam%ElSmallms(iElem),iElem)/subfactor)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! Kiaux = MeshParam%Ksat(iLayer,iElem)*MeshParam%Si(iLayer,iElem)**(3+2/MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem) + Kiaux + ! EndDo + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem)/subfactor + ! Else + ! If(eta < HydroParam%Ze(iLayer+1,iElem) - 1/MeshParam%alpha(iLayer,iElem)) Then + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + ! Else + ! MeshParam%Si(iLayer,iElem) = 1.d0 + ! EndIf + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*MeshParam%Si(iLayer,iElem)**(3+2/MeshParam%nSoil(iLayer,iElem)) + ! EndIf + ! Else !van Genuchten's Model + ! HydroParam%PsiCrit(iElem) = (MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem) - 1)**(1/MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem))/(MeshParam%alpha(HydroParam%ElCapitalMs(iElem),iElem)*MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem)) + ! If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalMs(iElem)) Then + ! subfactor = 100 + ! Z = 0.d0 + ! mParam = (1-1/MeshParam%nSoil(iLayer,iElem)) + ! Do While(Z <= HydroParam%hb(iElem)) + ! Z = Z + HydroParam%DZsi(HydroParam%ElSmallms(iElem),iElem)/subfactor + ! If(eta < Z) Then + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(Z - eta))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + ! Else + ! MeshParam%Si(iLayer,iElem) = 1.d0 + ! EndIf + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(HydroParam%DZsi(HydroParam%ElSmallms(iElem),iElem)/subfactor)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! Kiaux = MeshParam%Ksat(iLayer,iElem)*(1-(1-MeshParam%Si(iLayer,iElem)**(1/mParam))**mParam)**2 + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem) + Kiaux*(MeshParam%Si(iLayer,iElem))**0.5 + ! EndDo + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem)/subfactor + ! Else + ! mParam = (1-1/MeshParam%nSoil(iLayer,iElem)) + ! If(eta < HydroParam%Ze(iLayer+1,iElem)) Then + ! MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Ze(iLayer+1,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + ! MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + ! Else + ! MeshParam%Si(iLayer,iElem) = 1.d0 + ! EndIf + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*(1-(1-MeshParam%Si(iLayer,iElem)**(1/mParam))**mParam)**2 + ! MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem)*(MeshParam%Si(iLayer,iElem))**0.5 + ! EndIf + ! EndIf + ! return + ! + ! End Subroutine SoilSaturation \ No newline at end of file diff --git a/ParticleTracking.f90 b/ParticleTracking.f90 index 4f17e31..f918747 100644 --- a/ParticleTracking.f90 +++ b/ParticleTracking.f90 @@ -409,6 +409,7 @@ Subroutine ParticleVelocity(nnel,jlev,staint,zt,upart,vpart,wpart,HydroParam,Mes upart = 0. vpart = 0. wpart = 0. + Do j=1,4 nd = MeshParam%Edge(j,nnel) nn = MeshParam%Quadri(j,nnel)+1 diff --git a/Pressure.f90 b/Pressure.f90 index 853e24f..467c900 100644 --- a/Pressure.f90 +++ b/Pressure.f90 @@ -23,13 +23,8 @@ Subroutine Pressure(HydroParam,MeshParam,dt) l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) - !if (iEdge==118.or.iEdge==124) Then - ! Continue - !Endif - ! - Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) - If ( r == 0 .or. HydroParam%H(iEdge) <= HydroParam%PCRI+NearZero) Then + If ( r == 0 .or. HydroParam%H(iEdge) + HydroParam%sj(iEdge)-HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero) Then HydroParam%PBarc(iLayer,iEdge) = 0.d0 Else HydroParam%PBarc(iLayer,iEdge) = 0.d0 diff --git a/Psi_value.F90 b/Psi_value.F90 index f4c956b..18c1ea8 100644 --- a/Psi_value.F90 +++ b/Psi_value.F90 @@ -17,7 +17,8 @@ Subroutine Psi_value(psi_flag,r_face,Courant,fi_small,psi_face) fi_big = Max(fi_small,Max(Min(1.d0, 2.d0*r_face),Min(2.d0, r_face))) !Max(fi_small, Max(Min(1., 2.*r_face), Min(2., r_face))) psi_face = fi_big - fi_small ElseIf (psi_flag == 3) Then !Van Leer - fi_big = Max(fi_small, (r_face + abs(r_face)/(1 + abs(r_face)))) + !fi_big = Max(fi_small, (r_face + abs(r_face)/(1 + abs(r_face)))) !HUGO + fi_big = Max(fi_small, (r_face + abs(r_face))/(1 + r_face)) psi_face = fi_big - fi_small ElseIf (psi_flag == 4) Then !MINMOD fi_big = Max(fi_small, Min(1., r_face)) diff --git a/ReadHydroBoundaryCondition.f90 b/ReadHydroBoundaryCondition.f90 index df6475b..a3a1bb7 100644 --- a/ReadHydroBoundaryCondition.f90 +++ b/ReadHydroBoundaryCondition.f90 @@ -25,7 +25,9 @@ Subroutine ReadHydroBoundaryCondition(HydroParam,hydroConfiguration,IniTime,Fina call c_f_pointer(hydroConfiguration%boundaryConditions, boundaryConditions, [hydroConfiguration%numberOfBoundaryConditions]) - + !Allocate(HydroParam%IndexInflow(HydroParam%NInflow,2)) + Allocate(HydroParam%IndexInflow(MeshParam%nEdge,2)) + HydroParam%IndexInflow = 0 HydroParam%IndexWaterLevel = 0.d0 @@ -103,7 +105,6 @@ Subroutine ReadHydroBoundaryCondition(HydroParam,hydroConfiguration,IniTime,Fina Allocate (HydroParam%InFlowValue(HydroParam%NInflow,NObjInflow)) Allocate (HydroParam%InFlowTime(HydroParam%NInflow,NObjInflow)) Allocate (HydroParam%InFlownTime(HydroParam%NInflow)) - Allocate(HydroParam%IndexInflow(HydroParam%NInflow,2)) Allocate (HydroParam%InFlowSmallm(HydroParam%NInflow)) Allocate (HydroParam%InFlowCapitalM(HydroParam%NInflow)) Allocate (HydroParam%NRange(HydroParam%NInflow)) @@ -111,7 +112,6 @@ Subroutine ReadHydroBoundaryCondition(HydroParam,hydroConfiguration,IniTime,Fina HydroParam%IndexWaterLevel = 0 HydroParam%IndexWaterLevelEdge = 0 - HydroParam%IndexInflow = 0 HydroParam%IndexInflowEdge = 0 HydroParam%NInflow = 0 HydroParam%NWaterLevel = 0 diff --git a/ReadHydroIniCond.f90 b/ReadHydroIniCond.f90 index 68a7081..9b39ec4 100644 --- a/ReadHydroIniCond.f90 +++ b/ReadHydroIniCond.f90 @@ -1,13 +1,13 @@ -!> This subroutine reads the hydrodynamic parameters. +!> This subroutine reads the hydrodynamic parameters. Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) - + Use domain_types Use SimulationModel Use MeshVars Use Hydrodynamic Use Sorting Use iso_c_binding - + Use Meteorological Implicit none Integer:: i,j,iElem,iEdge,iNode,iLayer,r,l,Face,ie,Sig @@ -16,10 +16,11 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) type(HydrodynamicParameter), pointer :: hydroParameters(:) type(SimulationParam) :: simParam character(len=200):: text - Real:: sum1,sum0,AuxVel,V + Real:: sum1,sum0,AuxVel,V, SimTime, e0, k0 Real:: NearZero = 1e-10 type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam + type(MeteorologicalParam) :: MeteoParam Real, Dimension(4,MeshParam%nElem):: HNeighbor Integer, Dimension(MeshParam%nElem):: nNeighbor Integer:: npit @@ -76,18 +77,52 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) HydroParam%Gu = 0.d0 !CAYO + HydroParam%ug = 0.d0 + HydroParam%vg = 0.d0 + HydroParam%wg = 0.d0 + HydroParam%ubV = 0.d0 + HydroParam%uxyL = 0.d0 + HydroParam%wfc = 0.d0 + MeshParam%Si = 0.d0 + MeshParam%ei = 1.d0 HydroParam%DZK = 0.d0 MeshParam%Kj = 0.d0 - HydroParam%DZsi = HydroParam%Pcri - HydroParam%DZsit = HydroParam%Pcri - HydroParam%DZhi = HydroParam%Pcri - HydroParam%DZhit = HydroParam%Pcri + HydroParam%DZsi = 0.d0 + HydroParam%DZhi = 0.d0 + HydroParam%DZhit = 0.d0 + HydroParam%DZhj = 0.d0 + HydroParam%DZsj = 0.d0 HydroParam%us = 0.d0 - HydroParam%um = 0.d0 + HydroParam%ustang = 0.d0 + HydroParam%um = 0.d0 + HydroParam%wm = 0.d0 + HydroParam%uxysub = 0.d0 + HydroParam%ubsub = 0.d0 + HydroParam%etaInfn = 0.d0 + HydroParam%etaInf = 0.d0 + MeshParam%ei = 1 HydroParam%rhsnonHydro = 0.d0 HydroParam%q = 0.d0 HydroParam%pq = 0.d0 + SimTime = 0.d0 + + MeshParam%iSaturation = 0 + + !!!Bench 01: + !e0 = 0.3 !e0 0.1 b01 0.3 + !MeshParam%Ksat = 0.01 !k0 0.01 b01 + !MeshParam%alpha = 29.0!Casulli == 1 Panday == 2.25 + !MeshParam%nSoil = 4.0 !Casulli == 1.4 Panday == 1.89 + + !!Bench 02: + e0 = 0.1 + MeshParam%Ksat = 0.00005 !k0 0.01 b01 0.00005 + MeshParam%alpha = 2.25 !Casulli == 1 Panday == 2.25 + MeshParam%nSoil = 1.89 !Casulli == 1.4 Panday == 1.89 + + !k0 = 0.01 !k0 0.01 b01 + HydroParam%PsiCrit = 0.0d0 ! Set Initial Conditions of Free-Surface Elevation If (MeshParam%ieta0 == 1) Then @@ -98,15 +133,17 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) HydroParam%eta = HydroParam%Zini EndIf - !HydroParam%eta(1) = 0.01 - - If (simParam%it > 0) Then HydroParam%eta = simParam%etasave EndIf - HydroParam%etan = HydroParam%eta + + !HydroParam%eta = HydroParam%eta -0.01 + !HydroParam%eta(3) = HydroParam%eta(3) + 0.01 + + + !!Filling sinks !npit = 1 !Do While (npit /= 0) @@ -157,74 +194,97 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) If (abs(HydroParam%hb(iElem)-MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1))1) Then ! Three-dimensional Do iLayer = 1,MeshParam%KMax-1 + ! Check if hb is between two layers If (HydroParam%hb(iElem)+0.001>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hb(iElem)+0.001=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sb(iElem)+0.001= 0.) Then - HydroParam%hb(iElem) = HydroParam%eta(iElem) - HydroParam%Pcri - EndIf + !If (HydroParam%eta(iElem) - HydroParam%hb(iElem) <= HydroParam%Pcri+NearZero.and.HydroParam%eta(iElem) - HydroParam%hb(iElem) >= 0.) Then + ! !HydroParam%hb(iElem) = HydroParam%eta(iElem) - HydroParam%Pcri/2.d0 + ! HydroParam%hb(iElem) = HydroParam%eta(iElem) + !EndIf - If (HydroParam%eta(iElem) - HydroParam%hb(iElem) < HydroParam%Pcri) Then - HydroParam%eta(iElem) = HydroParam%hb(iElem)+HydroParam%Pcri !*** Verificar sinal posteriormente, se já entrar como cota não precisa do sinal + If (HydroParam%eta(iElem) - HydroParam%sb(iElem) <= HydroParam%Pcri+NearZero) Then + !HydroParam%eta(iElem) = HydroParam%sb(iElem) + HydroParam%Pcri/2.d0 !*** Verificar sinal posteriormente, se já entrar como cota não precisa do sinal + HydroParam%eta(iElem) = HydroParam%sb(iElem)!*** Verificar sinal posteriormente, se já entrar como cota não precisa do sinal EndIf - EndDo - + + + If (MeshParam%iBedrock == 0) Then + HydroParam%sb = HydroParam%hb + EndIf !Compute nodal elevations for tang. vel. Do iNode=1,MeshParam%nNode - sum1=0 !sum of elemental elevations - sum0=0 !sum of areas + sum1 = 0.d0 !sum of elemental elevations + sum0 = 0.d0 !sum of areas do j=1,MeshParam%nVertexElem(iNode) ie=MeshParam%VertexElem(j,iNode) - sum1=sum1+MeshParam%Area(ie)*HydroParam%eta(ie) - sum0=sum0+MeshParam%Area(ie) - + sum1 = sum1 + MeshParam%Area(ie)*HydroParam%eta(ie) + sum0 = sum0 + MeshParam%Area(ie) Enddo !j=1,nne(i) - HydroParam%peta(iNode)=sum1/sum0 + HydroParam%peta(iNode) = sum1/sum0 EndDo !i=1,np - HydroParam%petan=HydroParam%peta !store for transport eqs. + HydroParam%petan = HydroParam%peta !store for transport eqs. ! Set Bathymetry in th edges - Do iElem = 1, MeshParam%nElem - + Do iElem = 1, MeshParam%nElem Do iEdge = 1, 4 Face = MeshParam%Edge(iEdge,iElem) l = MeshParam%Left(Face) r = MeshParam%Right(Face) If (r == 0) Then - HydroParam%hj(Face) = HydroParam%hb(l) !*** Verificar sinal posteriormente, se já entrar como cota não precisa do sinal + HydroParam%hj(Face) = HydroParam%hb(l) !*** Verificar sinal posteriormente, se j� entrar como cota n�o precisa do sinal HydroParam%sj(Face) = HydroParam%sb(l) Do iLayer = 1,MeshParam%KMax - If (abs(HydroParam%hj(Face)-MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1))=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%Smallm(iEdge) = iLayer - exit - EndIf - Else - If (HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%CapitalM(iEdge) = iLayer - exit - EndIf - Else - If (HydroParam%H(iEdge) + HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%H(iEdge) + HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%Smallms(iEdge) = iLayer - exit - EndIf - Else - If (HydroParam%sj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sj(iEdge) 1) Then ! Cayo - HydroParam%CapitalMs(iEdge) = HydroParam%Smallm(iEdge) - 1 - if (HydroParam%CapitalMs(iEdge)= HydroParam%Smallms(iEdge) .or. HydroParam%Smallms(iEdge) == HydroParam%Smallm(iEdge) ) Then - MeshParam%Kj(iLayer,iEdge) = 0.d0 - Else - MeshParam%Kj(iLayer,iEdge) = 0.01 - EndIf - EndDo - EndDo - - + !Do iElem = 1, MeshParam%nElem + ! If( 810.0d0 - 0.0001 <= MeshParam%xb(iElem)) Then + ! If( MeshParam%xb(iElem) <= 810.d0 + 0.0001 ) Then + ! HydroParam%hb(iElem) = -(10 - 0.02*MeshParam%yb(iElem)) + 10 + ! EndIf + ! endif + !EndDo + ! + !Do iEdge = 1, MeshParam%nEdge + ! If( 810.0d0 - 0.0001 <= MeshParam%EdgeBary(1,iEdge)) Then + ! If( MeshParam%EdgeBary(1,iEdge) <= 810.d0 + 0.0001 ) Then + ! HydroParam%hj(iEdge) = -(10 - 0.02*MeshParam%EdgeBary(2,iEdge)) + 10 + ! EndIf + ! endif + !EndDo + ! 4. Compute the New Vertical Velocity Field ! w(Smallm-1,:) = 0.d0 -> No flux through the Bottom ! w(CapitalM,:) = 0.d0 -> No flux through the Surface ! The velocity is defined in the barycenter of the Top Face of each Cell - ! *Obs: The outward direction is from Bottom to Top. + ! *Obs: The outward direction is from Bottom to Top. Do iElem = 1, MeshParam%nElem ! 4.1 Define the range between Bottom and Top Layers. (Tricky part - Not explained in [1]) ! In a real world application, the bathymetry might change between the faces of the prism. @@ -430,91 +362,324 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) EndDo ! Upper Index - Superficial Flow Layer - Do iLayer = 1,MeshParam%KMax - If (iLayer == MeshParam%KMax) Then - If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%ElCapitalM(iElem) = iLayer - exit - EndIf - Else - If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%eta(iElem) 0.d0) Then + Do iLayer = 1,MeshParam%KMax + If (iLayer == MeshParam%KMax) Then + If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%ElCapitalM(iElem) = iLayer + exit + EndIf + Else + If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%eta(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%ElSmallms(iElem) = iLayer + exit + EndIf + Else + If (HydroParam%sb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sb(iElem) 1) Then + HydroParam%ElCapitalMs(iElem) = HydroParam%ElSmallm(iElem) - 1 + if (HydroParam%ElCapitalMs(iElem)= HydroParam%ElSmallm(iElem) .or. HydroParam%ElSmallms(iElem) == HydroParam%ElSmallm(iElem)) Then + continue + Else + MeshParam%ei(iLayer,iElem) = e0 + EndIf + + If (iLayer < HydroParam%ElSmallm(iElem)) Then + HydroParam%DZhi(iLayer,iElem) = 0.d0 + HydroParam%DZsi(iLayer,iElem) = HydroParam%DZi(iLayer,iElem) + ElseIf (iLayer > HydroParam%ElSmallm(iElem)) Then + HydroParam%DZhi(iLayer,iElem) = HydroParam%DZi(iLayer,iElem) + HydroParam%DZsi(iLayer,iElem) = 0.d0 + Else + If (HydroParam%Ze(iLayer+1,iElem) > HydroParam%hb(iElem) ) Then + HydroParam%DZhi(iLayer,iElem) = HydroParam%Ze(iLayer+1,iElem) - HydroParam%hb(iElem) + HydroParam%DZsi(iLayer,iElem) = HydroParam%hb(iElem) - HydroParam%Ze(iLayer,iElem) + Else + HydroParam%DZhi(iLayer,iElem) = 0.d0 + HydroParam%DZsi(iLayer,iElem) = HydroParam%Ze(iLayer+1,iElem) - HydroParam%Ze(iLayer,iElem) + !If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalM(iElem)) Then + ! If(HydroParam%eta(iElem) < HydroParam%hb(iElem) ) Then + ! HydroParam%DZsi(iLayer,iElem) = HydroParam%eta(iElem) + ! ElseIf (HydroParam%eta(iElem) <= HydroParam%sb(iElem)) Then + ! HydroParam%DZsi(iLayer,iElem) = 0.d0 + ! EndIf + !EndIf + EndIf + EndIf + + If(HydroParam%DZsi(iLayer,iElem)>0) Then + MeshParam%ei(iLayer,iElem) = e0 + EndIf + EndDo + EndIf + + Call MoistureContent(HydroParam%eta(iElem),0.d0,iElem,HydroParam,MeshParam) + + EndDo + + + + !Compute Index Smallm(j) and CapitalM(j) + ! Smallm and CapitalM are related to mj and Mj in [1] + Do iEdge = 1,MeshParam%nEdge + + ! 1.1 Compute Water Depth + l = MeshParam%Left(iEdge) + r = MeshParam%Right(iEdge) - ! Lower Index - Subsuperficial Flow Layer !CAYO + If (r==0) Then + r = l + EndIf + ! + !If (r == 0) Then + ! HydroParam%H(iEdge) = Max( HydroParam%PCRI, -HydroParam%sj(iEdge) + HydroParam%eta(l) ) + !Else + ! HydroParam%H(iEdge) = Max( HydroParam%PCRI,-HydroParam%sj(iEdge) + HydroParam%eta(l), -HydroParam%sj(iEdge) + HydroParam%eta(r) )!CAYO + !EndIf + !HydroParam%H(iEdge) = Max( HydroParam%PCRI,-HydroParam%sj(iEdge) + HydroParam%eta(l), -HydroParam%sj(iEdge) + HydroParam%eta(r) )!CAYO + HydroParam%H(iEdge) = Max(0.d0,-HydroParam%sj(iEdge) + HydroParam%eta(l), -HydroParam%sj(iEdge) + HydroParam%eta(r) )!CAYO + + ! Lower Index - Superficial Flow Layer Do iLayer = 1,MeshParam%KMax If (iLayer == MeshParam%KMax) Then - If (HydroParam%sb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then - HydroParam%ElSmallms(iElem) = iLayer + If (HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%Smallm(iEdge) = iLayer exit EndIf Else - If (HydroParam%sb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sb(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hj(iEdge) 1) Then ! Cayo - HydroParam%ElCapitalMs(iElem) = HydroParam%ElSmallm(iElem) - 1 - if (HydroParam%ElCapitalMs(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + If (Max(0.d0, HydroParam%eta(l), HydroParam%eta(r))>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%CapitalM(iEdge) = Max(iLayer,HydroParam%CapitalM(iEdge)) + exit + EndIf + Else + !If (Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r))>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r))=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r))=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + ! HydroParam%CapitalM(iEdge) = iLayer + ! exit + ! EndIf + ! Else + ! If (HydroParam%H(iEdge) + HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%H(iEdge) -HydroParam%sj(iEdge)+ HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then + HydroParam%Smallms(iEdge) = iLayer + exit + EndIf + Else + If (HydroParam%sj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sj(iEdge) 1) Then + HydroParam%CapitalMs(iEdge) = HydroParam%Smallm(iEdge) - 1 + if (HydroParam%CapitalMs(iEdge)= HydroParam%ElSmallm(iElem) .or. HydroParam%ElSmallms(iElem) == HydroParam%ElSmallm(iElem)) Then - MeshParam%ei(iLayer,iElem) = 1 + HydroParam%Z(HydroParam%Smallms(iEdge),iEdge) = HydroParam%sj(iEdge) ! Bottom + If (r == 0) Then + !If ( HydroParam%eta(l) - HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero) Then + If ( HydroParam%eta(l) - HydroParam%hj(iEdge) <= NearZero) Then + !HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = HydroParam%hj(iEdge) + HydroParam%PCRI + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = HydroParam%hj(iEdge) + Else + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = HydroParam%eta(l) + EndIf + !H(iEdge) + hj(iEdge) ! Free-Surface (verificar com Rafael) + Else + !If ( HydroParam%H(iEdge) - HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero ) Then + !If ( Max(HydroParam%PCRI, HydroParam%eta(l), HydroParam%eta(r)) - HydroParam%hj(iEdge) <= HydroParam%PCRI+NearZero ) Then !( HydroParam%H(iEdge) <= HydroParam%PCRI/2 + NearZero ) Then + If ( Max(0.0d0, HydroParam%eta(l), HydroParam%eta(r)) - HydroParam%hj(iEdge) <= NearZero ) Then !( HydroParam%H(iEdge) <= HydroParam%PCRI/2 + NearZero ) Then + !HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = Max(HydroParam%eta(l),HydroParam%eta(r)) + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = Max(HydroParam%hb(l),HydroParam%hb(r)) Else - MeshParam%ei(iLayer,iElem) = 0.3 + !HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = (0.5d0)*(HydroParam%eta(l)+HydroParam%eta(r)) !Max(HydroParam%eta(l),HydroParam%eta(r)) !H(iEdge) + hj(iEdge) ! Free-Surface (verificar com Rafael) + HydroParam%Z(HydroParam%CapitalM(iEdge)+1,iEdge) = Max(HydroParam%eta(l),HydroParam%eta(r)) EndIf + EndIf + + ! 1.4 Compute the Vertical Mesh Spacing + Do iLayer = HydroParam%Smallms(iEdge), HydroParam%CapitalM(iEdge) + HydroParam%DZj(iLayer,iEdge) = HydroParam%Z(iLayer+1,iEdge) - HydroParam%Z(iLayer,iEdge) + HydroParam%DZj(iLayer,iEdge) = Max(HydroParam%Pcri,HydroParam%DZj(iLayer,iEdge)) EndDo - EndDo + !1.5 Compute Kj and DZhj/DZsj + HydroParam%DZhj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) = HydroParam%DZj(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) + HydroParam%DZsj(:,iEdge) = 0.d0 + MeshParam%Kj(:,iEdge) = 0.d0 + HydroParam%DZK(iEdge) = 0.d0 + If (MeshParam%iBedrock == 1) Then + Do iLayer = HydroParam%Smallms(iEdge), HydroParam%CapitalM(iEdge) ! + + If (iLayer < HydroParam%Smallm(iEdge)) Then + HydroParam%DZhj(iLayer,iEdge) = 0. + HydroParam%DZsj(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge) + ElseIf (iLayer > HydroParam%Smallm(iEdge)) Then + HydroParam%DZhj(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge) + HydroParam%DZsj(iLayer,iEdge) = 0. + continue + Else + If ( HydroParam%Z(iLayer+1,iEdge) > HydroParam%hj(iEdge) ) Then + HydroParam%DZhj(iLayer,iEdge) = HydroParam%Z(iLayer+1,iEdge) - HydroParam%hj(iEdge) + HydroParam%DZsj(iLayer,iEdge) = HydroParam%hj(iEdge) - HydroParam%Z(iLayer,iEdge) + Else + HydroParam%DZhj(iLayer,iEdge) = 0. + HydroParam%DZsj(iLayer,iEdge) = Max(HydroParam%Pcri,HydroParam%Z(iLayer+1,iEdge) - HydroParam%Z(iLayer,iEdge)) + If(HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge) .and. MeshParam%iSaturation == 0) Then + If(HydroParam%H(iEdge) < HydroParam%hj(iEdge) ) Then + HydroParam%DZsj(iLayer,iEdge) = HydroParam%H(iEdge) + ElseIf(HydroParam%H(iEdge) <= HydroParam%sj(iEdge))Then + HydroParam%DZsj(iLayer,iEdge) = 0.d0 + EndIf + EndIf + EndIf + EndIf + + If (HydroParam%DZsj(iLayer,iEdge) > 0) Then + !If Neighbour lower layer is above Elem layer, the lower Element layer is + If (iLayer < HydroParam%ElSmallms(r) .and. MeshParam%Ki(iLayer,l) > 0) Then + MeshParam%Kj(iLayer,iEdge) = MeshParam%Ki(iLayer,l) + ElseIf (iLayer < HydroParam%ElSmallms(l) .and. MeshParam%Ki(iLayer,r) > 0) Then + MeshParam%Kj(iLayer,iEdge) = MeshParam%Ki(iLayer,r) + Else + MeshParam%Kj(iLayer,iEdge) = Max(MeshParam%Ki(iLayer,l),MeshParam%Ki(iLayer,r)) + EndIf + EndIf + + HydroParam%DZK(iEdge) = HydroParam%DZK(iEdge) + HydroParam%DZsj(iLayer,iEdge)*MeshParam%Kj(iLayer,iEdge) !Sediment Layer + EndDo + EndIf + + EndDo + ! Set Initial Conditions of velocity components Do iElem = 1, MeshParam%nElem @@ -523,13 +688,16 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) r = MeshParam%Right(MeshParam%Edge(iEdge,iElem)) !uIniVec(iLayer,1) = -6*(EdgeBary(1,Edge(iEdge,iElem))/100.)**2. + 6*EdgeBary(1,Edge(iEdge,iElem))/100. !uIniVec(iLayer,2) = 0.d0 - If (r==0.or.HydroParam%H(MeshParam%Edge(iEdge,iElem))<=HydroParam%Pcri) Then ! No slip condition + !If (r==0.or.HydroParam%H(MeshParam%Edge(iEdge,iElem))<=HydroParam%Pcri+NearZero) Then ! No slip condition + If (r==0.or.HydroParam%H(MeshParam%Edge(iEdge,iElem))<=NearZero) Then ! No slip condition HydroParam%u(iLayer,MeshParam%Edge(iEdge,iElem)) = 0.d0 Else If (simParam%it > 0) Then HydroParam%u(iLayer,MeshParam%Edge(iEdge,iElem)) = simParam%usave(iLayer,MeshParam%Edge(iEdge,iElem)) + !HydroParam%utang(iLayer,MeshParam%Edge(iEdge,iElem)) = simParam%utangsave(iLayer,MeshParam%Edge(iEdge,iElem)) Else HydroParam%u(iLayer,MeshParam%Edge(iEdge,iElem)) = Dot_Product(HydroParam%uIniVec(iLayer,1:2),MeshParam%NormalVector(:,iEdge,iElem)) + HydroParam%utang(iLayer,MeshParam%Edge(iEdge,iElem)) = Dot_Product(HydroParam%uIniVec(iLayer,1:2),MeshParam%TangentVector(:,iEdge,iElem)) EndIf EndIf @@ -538,7 +706,7 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) EndDo If (simParam%it > 0) Then HydroParam%w = simParam%wsave - Call Velocities(HydroParam,MeshParam) + Call VelocitiesSub(HydroParam,MeshParam) Else HydroParam%w = HydroParam%Wini EndIf @@ -551,7 +719,6 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) If(.NOT.Allocated(HydroParam%DissipRate)) Allocate(HydroParam%DissipRate(MeshParam%Kmax+1,MeshParam%nElem)) If(.NOT.Allocated(HydroParam%ShearProd)) Allocate(HydroParam%ShearProd(MeshParam%Kmax+1,MeshParam%nElem)) If(.NOT.Allocated(HydroParam%BuoyancyProd)) Allocate(HydroParam%BuoyancyProd(MeshParam%Kmax+1,MeshParam%nElem)) - EndIf @@ -564,5 +731,649 @@ Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) -End Subroutine ReadHydroIniCond - \ No newline at end of file + End Subroutine ReadHydroIniCond + +! +! +! +!!> This subroutine reads the hydrodynamic parameters. +!Subroutine ReadHydroIniCond(HydroParam,hydroConfiguration,simParam,MeshParam) +! +! Use domain_types +! Use SimulationModel +! Use MeshVars +! Use Hydrodynamic +! Use Sorting +! Use iso_c_binding +! +! Implicit none +! +! Integer:: i,j,iElem,iEdge,iNode,iLayer,r,l,Face,ie,Sig +! !character, pointer :: hydroParametersName(:) +! type(HydrodynamicConfiguration) :: hydroConfiguration +! type(HydrodynamicParameter), pointer :: hydroParameters(:) +! type(SimulationParam) :: simParam +! character(len=200):: text +! Real:: sum1,sum0,AuxVel,V, SimTime, e0, k0 +! Real:: NearZero = 1e-10 +! type(MeshGridParam) :: MeshParam +! type(HydrodynamicParam) :: HydroParam +! Real, Dimension(4,MeshParam%nElem):: HNeighbor +! Integer, Dimension(MeshParam%nElem):: nNeighbor +! Integer:: npit +! +! call c_f_pointer(hydroConfiguration%parameters, hydroParameters, [hydroConfiguration%numberOfParameters]) +! +! Do i = 1, hydroConfiguration%numberOfParameters +! text = trim(hydroParameters(i)%name) +! +! !Flags +! If (trim(text) == 'envFreeSurfaceElevation') Then +! HydroParam%Zini = hydroParameters(i)%value +! ElseIf (trim(text) == 'envWaterVelocityX') Then +! HydroParam%Uini = hydroParameters(i)%value +! ElseIf (trim(text) == 'envWaterVelocityY') Then +! HydroParam%Vini = hydroParameters(i)%value +! ElseIf (trim(text) == 'envWaterVelocityW') Then +! HydroParam%Wini = hydroParameters(i)%value +! EndIf +! !print *, hydroParametersName, hydroParameters(i)%value +! EndDo +! HydroParam%uIniVec(:,1) = HydroParam%Uini +! HydroParam%uIniVec(:,2) = HydroParam%Vini +! HydroParam%uIniVec(:,3) = HydroParam%Wini +! HydroParam%uxyback = 0.d0 +! HydroParam%uxy = 0.d0 +! HydroParam%Fu = 0.d0 +! HydroParam%Fv = 0.d0 +! HydroParam%Fub = 0.d0 +! HydroParam%FuxyNode = 0.d0 +! HydroParam%u = 0.d0 +! HydroParam%utang = 0.d0 +! HydroParam%ub = 0.d0 +! HydroParam%uNode = 0.d0 +! HydroParam%HorViscosity = 0.d0 +! HydroParam%HorDiffusivity = 0.d0 +! If ( HydroParam%iVTurb == 0 ) Then +! HydroParam%VerEddyVisc = HydroParam%VerEddyVisc_Cte +! HydroParam%VerEddyDiff = HydroParam%VerEddyDiff_Cte +! HydroParam%VerEddyViscCell = HydroParam%VerEddyVisc_Cte +! HydroParam%VerEddyDiffCell = HydroParam%VerEddyDiff_Cte +! Elseif ( HydroParam%iVTurb == 1 ) Then +! HydroParam%VerEddyVisc = HydroParam%vmin +! HydroParam%VerEddyDiff = HydroParam%tdmin_pp +! HydroParam%VerEddyViscCell = HydroParam%vmin +! HydroParam%VerEddyDiffCell = HydroParam%tdmin_pp +! EndIf +! HydroParam%iAG = 0.d0 +! HydroParam%iADZ = 1. +! HydroParam%DZj = HydroParam%Pcri +! HydroParam%DZjt = HydroParam%Pcri +! HydroParam%DZi = HydroParam%Pcri +! HydroParam%DZit = HydroParam%Pcri +! HydroParam%Gu = 0.d0 +! +! !CAYO +! HydroParam%ug = 0.d0 +! HydroParam%vg = 0.d0 +! HydroParam%wg = 0.d0 +! HydroParam%ubV = 0.d0 +! HydroParam%uxyL = 0.d0 +! HydroParam%wfc = 0.d0 +! +! MeshParam%ei = 1.d0 +! HydroParam%DZK = 0.d0 +! MeshParam%Kj = 0.d0 +! HydroParam%DZsi = HydroParam%Pcri +! HydroParam%DZhi = HydroParam%Pcri +! HydroParam%DZhit = HydroParam%Pcri +! HydroParam%DZhj = HydroParam%Pcri +! HydroParam%DZsj = HydroParam%Pcri +! HydroParam%us = 0.d0 +! HydroParam%ustang = 0.d0 +! HydroParam%um = 0.d0 +! HydroParam%wm = 0.d0 +! HydroParam%uxysub = 0.d0 +! HydroParam%ubsub = 0.d0 +! HydroParam%etaInfn = 0.d0 +! HydroParam%etaInf = 0.d0 +! +! HydroParam%rhsnonHydro = 0.d0 +! HydroParam%q = 0.d0 +! HydroParam%pq = 0.d0 +! SimTime = 0.d0 +! +! e0 = 0.1 !e0 0.3 b01 +! k0 = 0.00005 !k0 0.01 b01 +! !e0 = 0.3 !e0 0.3 b01 +! !k0 = 0.01 !k0 0.01 b01 +! +! ! Set Initial Conditions of Free-Surface Elevation +! If (MeshParam%ieta0 == 1) Then +! Do iElem = 1, MeshParam%nElem +! HydroParam%eta(iElem) = MeshParam%eta0(iElem) +! EndDo +! Else +! HydroParam%eta = HydroParam%Zini +! EndIf +! +! If (simParam%it > 0) Then +! HydroParam%eta = simParam%etasave +! EndIf +! HydroParam%etan = HydroParam%eta +! +! !!Filling sinks +! !npit = 1 +! !Do While (npit /= 0) +! ! +! ! Do iElem = 1, MeshParam%nElem +! ! nNeighbor(iElem) = 0 +! ! Do iEdge = 1, 4 +! ! Face = MeshParam%Edge(iEdge,iElem) +! ! l = MeshParam%Left(Face) +! ! r = MeshParam%Right(Face) +! ! If (r == 0) Then +! ! nNeighbor(iElem) = nNeighbor(iElem) +! ! Else +! ! nNeighbor(iElem) = nNeighbor(iElem) +1 +! ! HNeighbor(nNeighbor(iElem),iElem) = HydroParam%hb(MeshParam%Neighbor(iEdge,iElem)) +! ! EndIf +! ! EndDo +! ! +! ! EndDo +! ! npit = 0 +! ! Do iElem = 1, MeshParam%nElem +! ! Call Sort(HNeighbor(:,iElem),nNeighbor(iElem)) +! ! If (nNeighbor(iElem) == 0) Then +! ! HydroParam%hb(iElem) = HydroParam%hb(iElem) +! ! Else +! ! If (HydroParam%hb(iElem)=2) Then +! ! HydroParam%hb(iElem) = MinVal(HNeighbor(2:nNeighbor(iElem),iElem)) +! ! npit = npit + 1 +! ! Else +! ! HydroParam%hb(iElem) = HydroParam%hb(iElem) +! ! EndIf +! ! Else +! ! HydroParam%hb(iElem) = HydroParam%hb(iElem) +! ! EndIf +! ! EndIf +! ! +! ! EndDo +! !EndDo +! ! +! +! Do iElem = 1, MeshParam%nElem +! +! Do iLayer = 1,MeshParam%KMax +! If (abs(HydroParam%hb(iElem)-MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1))1) Then ! Three-dimensional +! Do iLayer = 1,MeshParam%KMax-1 +! ! Check if hb is between two layers +! If (HydroParam%hb(iElem)+0.001>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hb(iElem)+0.0011) Then ! Three-dimensional +! Do iLayer = 1,MeshParam%KMaxsub-1 +! ! Same check for sb: +! If (HydroParam%sb(iElem)+0.001>=MeshParam%LIMCAMAUXsub(MeshParam%KMax-iLayer+1).and.HydroParam%sb(iElem)+0.001= 0.) Then +! HydroParam%hb(iElem) = HydroParam%eta(iElem) - HydroParam%Pcri/2.d0 +! EndIf +! +! If (HydroParam%eta(iElem) - HydroParam%sb(iElem) <= HydroParam%Pcri+NearZero) Then +! HydroParam%eta(iElem) = HydroParam%sb(iElem) + HydroParam%Pcri/2.d0 !*** Verificar sinal posteriormente, se j� entrar como cota n�o precisa do sinal +! EndIf +! +! EndDo +! +! +! If (MeshParam%iBedrock == 0) Then +! HydroParam%sb = HydroParam%hb +! EndIf +! +! !Compute nodal elevations for tang. vel. +! Do iNode=1,MeshParam%nNode +! sum1 = 0.d0 !sum of elemental elevations +! sum0 = 0.d0 !sum of areas +! do j=1,MeshParam%nVertexElem(iNode) +! ie=MeshParam%VertexElem(j,iNode) +! sum1 = sum1 + MeshParam%Area(ie)*HydroParam%eta(ie) +! sum0 = sum0 + MeshParam%Area(ie) +! Enddo !j=1,nne(i) +! HydroParam%peta(iNode) = sum1/sum0 +! EndDo !i=1,np +! HydroParam%petan = HydroParam%peta !store for transport eqs. +! +! ! Set Bathymetry in th edges +! Do iElem = 1, MeshParam%nElem +! Do iEdge = 1, 4 +! Face = MeshParam%Edge(iEdge,iElem) +! l = MeshParam%Left(Face) +! r = MeshParam%Right(Face) +! If (r == 0) Then +! HydroParam%hj(Face) = HydroParam%hb(l) !*** Verificar sinal posteriormente, se j� entrar como cota n�o precisa do sinal +! HydroParam%sj(Face) = HydroParam%sb(l) +! Do iLayer = 1,MeshParam%KMax +! If (abs(HydroParam%hj(Face)-MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1))<=HydroParam%PCRI+NearZero) then +! HydroParam%hj(Face)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1) +! EndIf +! EndDo +! Do iLayer = 1,MeshParam%KMaxsub +! If (abs(HydroParam%sj(Face)-MeshParam%LIMCAMAUXsub(MeshParam%KMaxsub-iLayer+1))<=HydroParam%PCRI+NearZero) then +! HydroParam%sj(Face)=MeshParam%LIMCAMAUXsub(MeshParam%KMaxsub-iLayer+1) +! EndIf +! EndDo +! Else +! HydroParam%hj(Face) = Max(HydroParam%hb(l),HydroParam%hb(r)) ! (0.5d0)*( Hbat(I,J) + HBat(IViz,JViz) ) !Max(Hbat(I,J),HBat(IViz,JViz))!*** !(0.5d0)*( Hbat(I,J) + HBat(IViz,JViz) ) Verificar sinal posteriormente, se j� entrar como cota n�o precisa do sinal +! HydroParam%sj(Face) = Max(HydroParam%sb(l),HydroParam%sb(r)) +! Do iLayer = 1,MeshParam%KMax +! If (abs(HydroParam%hj(Face)-MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1))=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then +! HydroParam%Smallm(iEdge) = iLayer +! exit +! EndIf +! Else +! If (HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hj(iEdge)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then +! HydroParam%CapitalM(iEdge) = iLayer +! exit +! EndIf +! Else +! If (HydroParam%H(iEdge) + HydroParam%hj(iEdge)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%H(iEdge) + HydroParam%hj(iEdge)=MeshParam%LIMCAMAUXsub(MeshParam%KMaxsub-iLayer+1)) then +! HydroParam%Smallms(iEdge) = iLayer +! exit +! EndIf +! Else +! If (HydroParam%sj(iEdge)>=MeshParam%LIMCAMAUXsub(MeshParam%KMaxsub-iLayer+1).and.HydroParam%sj(iEdge) 1) Then +! HydroParam%CapitalMs(iEdge) = HydroParam%Smallm(iEdge) - 1 +! if (HydroParam%CapitalMs(iEdge)= HydroParam%Smallm(iEdge) .or. HydroParam%Smallms(iEdge) == HydroParam%Smallm(iEdge) ) Then +! ! continue +! !Else +! ! MeshParam%Kj(iLayer,iEdge) = 0.01 +! !EndIf +! +! If (iLayer < HydroParam%Smallm(iEdge)) Then +! HydroParam%DZhj(iLayer,iEdge) = 0. +! HydroParam%DZsj(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge) +! ElseIf (iLayer > HydroParam%Smallm(iEdge)) Then +! HydroParam%DZhj(iLayer,iEdge) = HydroParam%DZj(iLayer,iEdge) +! HydroParam%DZsj(iLayer,iEdge) = 0. +! Else +! If ( HydroParam%Z(iLayer+1,iEdge) >= HydroParam%hj(iEdge) ) Then +! HydroParam%DZhj(iLayer,iEdge) = HydroParam%Z(iLayer+1,iEdge) - HydroParam%hj(iEdge) +! HydroParam%DZsj(iLayer,iEdge) = HydroParam%hj(iEdge) - HydroParam%Z(iLayer,iEdge) +! Else +! HydroParam%DZhj(iLayer,iEdge) = 0. +! HydroParam%DZsj(iLayer,iEdge) = HydroParam%Z(iLayer+1,iEdge) - HydroParam%Z(iLayer,iEdge) +! EndIf +! EndIf +! +! If (HydroParam%DZsj(iLayer,iEdge) > 0) Then +! MeshParam%Kj(iLayer,iEdge) = k0 +! EndIf +! +! EndDo +! EndIf +! +! EndDo +! +! ! 4. Compute the New Vertical Velocity Field +! ! w(Smallm-1,:) = 0.d0 -> No flux through the Bottom +! ! w(CapitalM,:) = 0.d0 -> No flux through the Surface +! ! The velocity is defined in the barycenter of the Top Face of each Cell +! ! *Obs: The outward direction is from Bottom to Top. +! Do iElem = 1, MeshParam%nElem +! ! 4.1 Define the range between Bottom and Top Layers. (Tricky part - Not explained in [1]) +! ! In a real world application, the bathymetry might change between the faces of the prism. +! ! We need to find "Max(Smallm(:))" and "Min(CapitalM(:))" in each face. +! ! Then we can calculate the Vertical Velocity only in those Layers +! ! *Obs: The velocity in faces with Smallm < Max(Smallm(:)) == 0. The same goes to faces with CapitalM > Min(CapitalM(:)) +! ! 4.1.1 Find "mi" and "Mi", the Bottom and Top Layers range for the Element, not for the faces +! ! Set mi +! !If ( Smallm(Edge(1,iElem))==Smallm(Edge(2,iElem)).AND.Smallm(Edge(2,iElem))==Smallm(Edge(3,iElem)).AND.Smallm(Edge(3,iElem))==Smallm(Edge(4,iElem)) ) Then +! ! ElSmallm(iElem) = Smallm(Edge(1,iElem)) ! All "mj" are equal. We can choose whatever we want! +! !Else +! ! ! If we have different Bottom Layers, we merge all in one cell! +! ! !ElSmallm(iElem) = Max( Smallm(Edge(1,iElem)),Smallm(Edge(2,iElem)),Smallm(Edge(3,iElem)),Smallm(Edge(4,iElem)) ) !- 1 +! ! ElSmallm(iElem) = Min( Smallm(Edge(1,iElem)),Smallm(Edge(2,iElem)),Smallm(Edge(3,iElem)),Smallm(Edge(4,iElem)) ) +! !EndIf +! !! Set Mi +! !If ( CapitalM(Edge(1,iElem))==CapitalM(Edge(2,iElem)).AND.CapitalM(Edge(2,iElem))==CapitalM(Edge(3,iElem)).AND.CapitalM(Edge(3,iElem))==CapitalM(Edge(4,iElem)) ) Then +! ! ElCapitalM(iElem) = CapitalM(Edge(1,iElem)) ! All "Mj" are equal. We can choose whatever we want! +! !Else +! ! ! If we have different Top Layers, we merge all in one cell! +! ! !ElCapitalM(iElem) = Min( CapitalM(Edge(1,iElem)),CapitalM(Edge(2,iElem)),CapitalM(Edge(3,iElem)),CapitalM(Edge(4,iElem)) ) !+ 1 +! ! ElCapitalM(iElem) = Max( CapitalM(Edge(1,iElem)),CapitalM(Edge(2,iElem)),CapitalM(Edge(3,iElem)),CapitalM(Edge(4,iElem)) ) +! !EndIf +! !If (HydroParam%hb(iElem)<-0.4) Then +! ! HydroParam%hb(iElem) = -0.4 +! !EndIf +! +! ! Lower Index - Superficial Flow Layer +! Do iLayer = 1,MeshParam%KMax +! If (iLayer == MeshParam%KMax) Then +! If (HydroParam%hb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then +! HydroParam%ElSmallm(iElem) = iLayer +! exit +! EndIf +! Else +! If (HydroParam%hb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%hb(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then +! HydroParam%ElCapitalM(iElem) = iLayer +! exit +! EndIf +! Else +! If (HydroParam%eta(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%eta(iElem)=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1)) then +! HydroParam%ElSmallms(iElem) = iLayer +! exit +! EndIf +! Else +! If (HydroParam%sb(iElem)>=MeshParam%LIMCAMAUX(MeshParam%KMax-iLayer+1).and.HydroParam%sb(iElem) 1) Then +! HydroParam%ElCapitalMs(iElem) = HydroParam%ElSmallm(iElem) - 1 +! if (HydroParam%ElCapitalMs(iElem)= HydroParam%ElSmallm(iElem) .or. HydroParam%ElSmallms(iElem) == HydroParam%ElSmallm(iElem)) Then +! continue +! Else +! MeshParam%ei(iLayer,iElem) = e0 +! EndIf +! +! If (iLayer < HydroParam%ElSmallm(iElem)) Then +! HydroParam%DZhi(iLayer,iElem) = 0.d0 +! HydroParam%DZsi(iLayer,iElem) = HydroParam%DZi(iLayer,iElem) +! ElseIf (iLayer > HydroParam%ElSmallm(iElem)) Then +! HydroParam%DZhi(iLayer,iElem) = HydroParam%DZi(iLayer,iElem) +! HydroParam%DZsi(iLayer,iElem) = 0.d0 +! Else +! If (HydroParam%Ze(iLayer+1,iElem) >= HydroParam%hb(iElem) ) Then +! HydroParam%DZhi(iLayer,iElem) = HydroParam%Ze(iLayer+1,iElem) - HydroParam%hb(iElem) +! HydroParam%DZsi(iLayer,iElem) = HydroParam%hb(iElem) - HydroParam%Ze(iLayer,iElem) +! Else +! HydroParam%DZhi(iLayer,iElem) = 0.d0 +! HydroParam%DZsi(iLayer,iElem) = HydroParam%Ze(iLayer+1,iElem) - HydroParam%Ze(iLayer,iElem) +! EndIf +! EndIf +! +! If(HydroParam%DZsi(iLayer,iElem)>0) Then +! MeshParam%ei(iLayer,iElem) = e0 +! EndIf +! +! EndDo +! EndIf +! +! EndDo +! +! ! Set Initial Conditions of velocity components +! Do iElem = 1, MeshParam%nElem +! Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) +! Do iEdge = 1,4 +! r = MeshParam%Right(MeshParam%Edge(iEdge,iElem)) +! !uIniVec(iLayer,1) = -6*(EdgeBary(1,Edge(iEdge,iElem))/100.)**2. + 6*EdgeBary(1,Edge(iEdge,iElem))/100. +! !uIniVec(iLayer,2) = 0.d0 +! If (r==0.or.HydroParam%H(MeshParam%Edge(iEdge,iElem))<=HydroParam%Pcri+NearZero) Then ! No slip condition +! HydroParam%u(iLayer,MeshParam%Edge(iEdge,iElem)) = 0.d0 +! Else +! If (simParam%it > 0) Then +! HydroParam%u(iLayer,MeshParam%Edge(iEdge,iElem)) = simParam%usave(iLayer,MeshParam%Edge(iEdge,iElem)) +! !HydroParam%utang(iLayer,MeshParam%Edge(iEdge,iElem)) = simParam%utangsave(iLayer,MeshParam%Edge(iEdge,iElem)) +! Else +! HydroParam%u(iLayer,MeshParam%Edge(iEdge,iElem)) = Dot_Product(HydroParam%uIniVec(iLayer,1:2),MeshParam%NormalVector(:,iEdge,iElem)) +! HydroParam%utang(iLayer,MeshParam%Edge(iEdge,iElem)) = Dot_Product(HydroParam%uIniVec(iLayer,1:2),MeshParam%TangentVector(:,iEdge,iElem)) +! EndIf +! +! EndIf +! EndDo +! EndDo +! EndDo +! If (simParam%it > 0) Then +! HydroParam%w = simParam%wsave +! Call VelocitiesSub(HydroParam,MeshParam) +! Else +! HydroParam%w = HydroParam%Wini +! EndIf +! +! If (HydroParam%iVTurb ==3 ) Then +! If(.NOT.Allocated(HydroParam%TKE)) Allocate(HydroParam%TKE(MeshParam%Kmax+1,MeshParam%nElem)) +! If(.NOT.Allocated(HydroParam%LengthScale)) Allocate(HydroParam%LengthScale(MeshParam%Kmax+1,MeshParam%nElem)) +! If(.NOT.Allocated(HydroParam%TKEP)) Allocate(HydroParam%TKEP(MeshParam%Kmax+1,MeshParam%nElem)) +! If(.NOT.Allocated(HydroParam%LengthScaleP)) Allocate(HydroParam%LengthScaleP(MeshParam%Kmax+1,MeshParam%nElem)) +! If(.NOT.Allocated(HydroParam%DissipRate)) Allocate(HydroParam%DissipRate(MeshParam%Kmax+1,MeshParam%nElem)) +! If(.NOT.Allocated(HydroParam%ShearProd)) Allocate(HydroParam%ShearProd(MeshParam%Kmax+1,MeshParam%nElem)) +! If(.NOT.Allocated(HydroParam%BuoyancyProd)) Allocate(HydroParam%BuoyancyProd(MeshParam%Kmax+1,MeshParam%nElem)) +! +! EndIf +! +! +! !Open(1001, File ='VelocityEdge.txt', Action='Write', Status='Replace') +! !Do iEdge = 1, nEdge +! ! AuxVel = -6*(EdgeBary(1,iEdge)/100.)**2. + 6*EdgeBary(1,iEdge)/100. +! ! Write(1001,'(i8.10,4F20.10)') iEdge, uxy(1,1,iEdge), AuxVel, uxy(1,2,iEdge), 0. +! !EndDo +! !Close(1001) +! +! +! +!End Subroutine ReadHydroIniCond +! \ No newline at end of file diff --git a/ReadOutputs.f90 b/ReadOutputs.f90 index e025e9c..b5fafa3 100644 --- a/ReadOutputs.f90 +++ b/ReadOutputs.f90 @@ -69,10 +69,11 @@ Subroutine ReadOutputs(sim,simParam,Kmax,nEdge,nElem) EndDo simParam%OutputWQ = 0 - if( c_associated(sim%wqOutputParameters) ) then + + If( c_associated(sim%wqOutputParameters) ) Then Do i = 1, sim%wqoutputParametersLength - + text = trim(wqOutputParameters(i)%name) !Hydrodynamic module @@ -158,7 +159,9 @@ Subroutine ReadOutputs(sim,simParam,Kmax,nEdge,nElem) simParam%OutputWQ(40) = 1 EndIf EndDo - end if + + EndIf + Return End Subroutine ReadOutputs diff --git a/SoilSaturation.f90 b/SoilSaturation.f90 new file mode 100644 index 0000000..97c55e5 --- /dev/null +++ b/SoilSaturation.f90 @@ -0,0 +1,82 @@ + Subroutine SoilSaturation(eta,iElem,HydroParam,MeshParam) + + Use MeshVars + Use Hydrodynamic + Implicit none + Real :: eta + Integer :: nLayers, iElem, iLayer + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + nLayers = 1 + MeshParam%Si(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalM(iElem),iElem) = 1.d0 + MeshParam%Ki(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + MeshParam%Ki(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) = MeshParam%Ksat(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) + If (eta - HydroParam%Pcri<= HydroParam%hb(iElem) .and. eta - HydroParam%Pcri >= HydroParam%sb(iElem)) Then ! Three-Dimensional + MeshParam%Si(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem),iElem) = 0.d0 + !If eta is above the bathmetry, the soil can be unsatured, calculate saturation by models: + nLayers = Max(INT((HydroParam%ElCapitalMs(iElem)-HydroParam%ElSmallms(iElem))/2),nLayers) + Do iLayer = HydroParam%ElSmallms(iElem),HydroParam%ElCapitalMs(iElem) + Call Saturation(eta, iLayer, iElem, HydroParam, MeshParam) + EndDo + EndIf + !If(HydroParam%ElSmallms(iElem) == HydroParam%ElCapitalMs(iElem)) Then !One- two-Dimensional, layer satured + ! MeshParam%Si(:,iElem) = 1.d0 + ! MeshParam%Ki(:,iElem) = MeshParam%Ksat(HydroParam%ElSmallms(iElem),iElem) + !ElseIf (eta - HydroParam%Pcri<= HydroParam%hb(iElem).and. eta - HydroParam%Pcri >= HydroParam%sb(iElem)) Then ! Three-Dimensional + ! !If eta is above the bathmetry, the soil can be unsatured, calculate saturation by models: + ! nLayers = Max(INT((HydroParam%ElCapitalMs(iElem)-HydroParam%ElSmallms(iElem))/2),nLayers) + ! Do iLayer = HydroParam%ElSmallms(iElem),HydroParam%ElCapitalMs(iElem) + ! Call Saturation(eta, iLayer, iElem, HydroParam, MeshParam) + ! EndDo + !Else + ! !Soil satured: + ! MeshParam%Si(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalM(iElem),iElem) = 1.d0 + ! MeshParam%Ki(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) = MeshParam%Ksat(HydroParam%ElSmallms(iElem):HydroParam%ElCapitalMs(iElem),iElem) + !EndIf + + End Subroutine SoilSaturation + + Subroutine Saturation(eta, iLayer, iElem, HydroParam, MeshParam) + + Use MeshVars + Use Hydrodynamic + + Implicit none + + Real :: SoilSat, mParam, eta + Integer :: iElem, iLayer + type(MeshGridParam) :: MeshParam + type(HydrodynamicParam) :: HydroParam + + If(MeshParam%iSaturation == 0) Then !Darcy's Model + If(eta > HydroParam%Ze(iLayer,iElem)) Then + MeshParam%Si(iLayer,iElem) = 1.d0 + Else + MeshParam%Si(iLayer,iElem) = 0.d0 + EndIf + + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ElseIf(MeshParam%iSaturation == 1) Then ! Brooks and Corey's Model + If(eta < HydroParam%Zb(iLayer,iElem) - 1/MeshParam%alpha(iLayer,iElem)) Then + MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Zb(iLayer,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + MeshParam%Si(iLayer,iElem) = 1/MeshParam%Si(iLayer,iElem) + Else + MeshParam%Si(iLayer,iElem) = 1.d0 + EndIf + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*MeshParam%Si(iLayer,iElem)**(3+2/MeshParam%nSoil(iLayer,iElem)) + Else !van Genuchten's Model + mParam = (1-1/MeshParam%nSoil(iLayer,iElem)) + If(eta < HydroParam%Zb(iLayer,iElem)) Then + MeshParam%Si(iLayer,iElem) = (MeshParam%alpha(iLayer,iElem)*(HydroParam%Zb(iLayer,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)) + MeshParam%Si(iLayer,iElem) = 1/(1 + MeshParam%Si(iLayer,iElem))**mParam + Else + MeshParam%Si(iLayer,iElem) = 1.d0 + EndIf + MeshParam%Ki(iLayer,iElem) = MeshParam%Ksat(iLayer,iElem)*(1-(1-MeshParam%Si(iLayer,iElem)**(1/mParam))**mParam)**2 + MeshParam%Ki(iLayer,iElem) = MeshParam%Ki(iLayer,iElem)*(MeshParam%Si(iLayer,iElem))**0.5 + EndIf + + + return + + End Subroutine Saturation \ No newline at end of file diff --git a/Source1.f90 b/Source1.f90 new file mode 100644 index 0000000..b2037bc --- /dev/null +++ b/Source1.f90 @@ -0,0 +1,1766 @@ + ! + !Subroutine ELMConservative4(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: uuint, vvint, wwint + !Integer :: rElem, uElem, dElem, lElem, nElem, ElFlag + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + !Real :: fi_small = 0.0d0 + !Real :: epsGrad = 10 !CAYO + !Real :: rj(2,4), psi(2,4), ru, soma + !Real :: Courant + ! + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + !HydroParam%uArrow(iLayer,:,iEdge) = 0.d0 + !Courant = uuNode(3)*dt/MeshParam%CirDistance(iEdge) !7 - Super-C/ 8 - Ultimate-Quickest/ 9 - Hyper-C + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for node n3: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + ! + !!2.2 - Velocities for node n2: + !nElem = bbElem + !Call pointInElem(nElem, lElem, xt - MeshParam%dx/2, yt, MeshParam) + !! If nElem =/ lElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! !u(2) == u(iEdge==2,bbElem) + ! nElem = bbElem + ! uuNodeBT(2) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(2,bbElem)); vvNodeBT(2) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(2,bbElem)); wwNodeBT(2) = HydroParam%wfc(bbLayer,MeshParam%Edge(2,bbElem)); xxNodeBT(2) = xxNodeBT(3) - MeshParam%dx/2; yyNodeBT(2) = yyNodeBT(3); zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%H(MeshParam%Edge(2,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(2,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.3 - Velocities for node n1: + !If (nElem == lElem) Then + ! lElem = MeshParam%Right(MeshParam%Edge(2,lElem)) + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! ! n1 == n2: + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2) - MeshParam%dx/2; yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.4 - Velocities for node n4: + !nElem = bbElem + !Call pointInElem(nElem, rElem, xt + MeshParam%dx/2, yt, MeshParam) + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! !u(4) == u(iEdge==4,bbElem) + ! nElem = bbElem + ! uuNodeBT(4) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(4,bbElem)); vvNodeBT(4) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(4,bbElem)); wwNodeBT(4) = HydroParam%wfc(bbLayer,MeshParam%Edge(4,bbElem)); xxNodeBT(4) = xxNodeBT(3) + MeshParam%dx/2; yyNodeBT(4) = yyNodeBT(3); zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%H(MeshParam%Edge(4,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(4,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!Energy conservation x - direction: + !If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + ! If (uuNode(3) + uuNode(1) >= 0) Then + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! + ! !2.5 - Velocities for node n5: + ! If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! EndIf + ! + ! ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + !Else + ! ! Momentum Conservation x - direction: + ! If (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1) >= 0 ) Then + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! !2.5 - Velocities for node n5: + ! If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + ! EndIf + ! + ! ! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4) + MeshParam%dx/2; yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + !EndIf + ! + ! + !! 2.6 - Velocities for node n7: + !nElem = bbElem + !Call pointInElem(nElem, dElem, xt, yt - MeshParam%dy/2, MeshParam) + ! + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! !u(7) == u(iEdge == 3, bbElem) + ! nElem = bbElem + ! uuNodeBT(7) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(3,bbElem)); vvNodeBT(7) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(3,bbElem)); wwNodeBT(7) = HydroParam%wfc(bbLayer,MeshParam%Edge(3,bbElem)); xxNodeBT(7) = xxNodeBT(3); yyNodeBT(7) = yyNodeBT(3) - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%H(MeshParam%Edge(3,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(3,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.7 - Velocities for node n6: + !If (nElem == dElem) Then + ! dElem = MeshParam%Right(MeshParam%Edge(3,dElem)) + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == dElem, this implies that dElem =/ 0 (condition checked in function pointInElem) + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! ! n6 == n7: + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7) - MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.8 - Velocities for node n8: + !nElem = bbElem + !Call pointInElem(nElem, uElem, xt, yt + MeshParam%dy/2, MeshParam) + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! !u(8) == u(iEdge == 1, bbElem) + ! nElem = bbElem + ! uuNodeBT(8) = HydroParam%uxy(bbLayer,1,MeshParam%Edge(1,bbElem)); vvNodeBT(8) = HydroParam%uxy(bbLayer,2,MeshParam%Edge(1,bbElem)); wwNodeBT(8) = HydroParam%wfc(bbLayer,MeshParam%Edge(1,bbElem)); xxNodeBT(8) = xxNodeBT(3); yyNodeBT(8) = yyNodeBT(3) + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%H(MeshParam%Edge(1,bbElem))-sum(HydroParam%DZsj(:,MeshParam%Edge(1,bbElem))),0.d0) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!Energy conservation y-direction: + !If ((vvNode(3) - vvNode(6))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + ! + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! + ! !2.9 - Velocities for node n9: + ! If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! EndIf + ! + ! ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !Else + ! ! Momentum Conservation y - direction: + ! If (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6)>= 0) Then + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! !2.9 - Velocities for node n9: + ! If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + ! EndIf + ! + ! ! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + ! If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8) + MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + ! + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(9)*dzNode(9))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !EndIf + ! + !uuint = HydroParam%uArrow(iLayer,1,iEdge) + !vvint = HydroParam%uArrow(iLayer,2,iEdge) + !wwint = wwNodeBT(3) + ! + !return + !End Subroutine ELMConservative4 + ! + !Subroutine ELMConservative3(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: uuint, vvint, wwint + !Integer :: rElem, uElem, dElem, lElem, nElem, ElFlag + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for node n3: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + ! + !!2.2 - Velocities for node n2: + !nElem = bbElem + !Call pointInElem(nElem, lElem, xt - MeshParam%dx/2, yt, MeshParam) + !! If nElem =/ lElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! nElem = bbElem + ! uuNodeBT(2) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(2,bbElem)); vvNodeBT(2) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(2,bbElem)); wwNodeBT(2) = HydroParam%wfc(bbLayer,MeshParam%Edge(2,bbElem)); xxNodeBT(2) = xxNodeBT(3); yyNodeBT(2) = yyNodeBT(3); zzNodeBT(2) = zt; hNodeBT(2) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - MeshParam%dx/2, yt, zt ) + ! uuNodeBT(2) = uuBtrack; vvNodeBT(2) = vvBtrack; wwNodeBT(2) = wwBtrack; xxNodeBT(2) = xt - MeshParam%dx/2; yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.3 - Velocities for node n1: + !If (nElem == lElem) Then + ! lElem = MeshParam%Right(MeshParam%Edge(2,lElem)) + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt - 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !If (nElem == lElem) Then + ! If (bbLayer > HydroParam%ElSmallms(lElem)) Then + ! ! n1 == n2: + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2); yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt - 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(1) = uuBtrack; vvNodeBT(1) = vvBtrack; wwNodeBT(1) = wwBtrack; xxNodeBT(1) = xt - 3*MeshParam%dx/2; yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.4 - Velocities for node n4: + !nElem = bbElem + !Call pointInElem(nElem, rElem, xt + MeshParam%dx/2, yt, MeshParam) + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! !n4 == n3: + ! !u(3) == u(iEdge==4,bbElem) + ! nElem = bbElem + ! uuNodeBT(4) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(4,bbElem)); vvNodeBT(4) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(4,bbElem)); wwNodeBT(4) = HydroParam%wfc(bbLayer,MeshParam%Edge(4,bbElem)); xxNodeBT(4) = xxNodeBT(3); yyNodeBT(4) = yyNodeBT(3); zzNodeBT(4) = zt; hNodeBT(4) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + MeshParam%dx/2, yt, zt ) + ! uuNodeBT(4) = uuBtrack; vvNodeBT(4) = vvBtrack; wwNodeBT(4) = wwBtrack; xxNodeBT(4) = xt + MeshParam%dx/2; yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.5 - Velocities for node n5: + !If (nElem == rElem) Then + ! rElem = MeshParam%Right(MeshParam%Edge(2,rElem)) + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + !Else + ! Call pointInElem(nElem, lElem, xt + 3*MeshParam%dx/2, yt, MeshParam) + !EndIf + ! + !! If nElem == rElem, this implies that lElem =/ 0 (condition checked in function pointInElem) + !If (nElem == rElem) Then + ! If (bbLayer > HydroParam%ElSmallms(rElem)) Then + ! ! n5 == n4: + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4); yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt + 3*MeshParam%dx/2, yt, zt ) + ! uuNodeBT(5) = uuBtrack; vvNodeBT(5) = vvBtrack; wwNodeBT(5) = wwBtrack; xxNodeBT(5) = xt + 3*MeshParam%dx/2; yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.6 - Velocities for node n7: + !nElem = bbElem + !Call pointInElem(nElem, dElem, xt, yt - MeshParam%dy/2, MeshParam) + ! + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! !n7 == n3: + ! !u(7) == u(iEdge == 3, bbElem) + ! nElem = bbElem + ! uuNodeBT(7) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(3,bbElem)); vvNodeBT(7) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(3,bbElem)); wwNodeBT(7) = HydroParam%wfc(bbLayer,MeshParam%Edge(3,bbElem)); xxNodeBT(7) = xxNodeBT(3); yyNodeBT(7) = yyNodeBT(3); zzNodeBT(7) = zt; hNodeBT(7) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - MeshParam%dy/2, zt ) + ! uuNodeBT(7) = uuBtrack; vvNodeBT(7) = vvBtrack; wwNodeBT(7) = wwBtrack; xxNodeBT(7) = xt; yyNodeBT(7) = yt - MeshParam%dy/2; zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.7 - Velocities for node n6: + !If (nElem == dElem) Then + ! dElem = MeshParam%Right(MeshParam%Edge(3,dElem)) + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, dElem, xt, yt - 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == dElem, this implies that dElem =/ 0 (condition checked in function pointInElem) + !If (nElem == dElem) Then + ! If (bbLayer > HydroParam%ElSmallms(dElem)) Then + ! ! n6 == n7: + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7); zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt - 3*MeshParam%dy/2, zt ) + ! uuNodeBT(6) = uuBtrack; vvNodeBT(6) = vvBtrack; wwNodeBT(6) = wwBtrack; xxNodeBT(6) = xt; yyNodeBT(6) = yt - 3*MeshParam%dy/2; zzNodeBT(6) = zt; hNodeBT(6) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 2.8 - Velocities for node n8: + !nElem = bbElem + !Call pointInElem(nElem, uElem, xt, yt + MeshParam%dy/2, MeshParam) + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! !n7 == n3: + ! !u(8) == u(iEdge == 1, bbElem) + ! nElem = bbElem + ! uuNodeBT(8) = HydroParam%uxyback(bbLayer,1,MeshParam%Edge(1,bbElem)); vvNodeBT(8) = HydroParam%uxyback(bbLayer,2,MeshParam%Edge(1,bbElem)); wwNodeBT(8) = HydroParam%wfc(bbLayer,MeshParam%Edge(1,bbElem)); xxNodeBT(8) = xxNodeBT(3); yyNodeBT(8) = yyNodeBT(3); zzNodeBT(8) = zt; hNodeBT(8) = hNodeBT(3) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + MeshParam%dy/2, zt ) + ! uuNodeBT(8) = uuBtrack; vvNodeBT(8) = vvBtrack; wwNodeBT(8) = wwBtrack; xxNodeBT(8) = xt; yyNodeBT(8) = yt + MeshParam%dy/2; zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !!2.9 - Velocities for node n9: + !If (nElem == uElem) Then + ! uElem = MeshParam%Right(MeshParam%Edge(1,uElem)) + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + !Else + ! Call pointInElem(nElem, uElem, xt, yt + 3*MeshParam%dy/2, MeshParam) + !EndIf + ! + !! If nElem == uElem, this implies that uElem =/ 0 (condition checked in function pointInElem) + !If (nElem == uElem) Then + ! If (bbLayer > HydroParam%ElSmallms(uElem)) Then + ! ! n9 == n8: + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8); zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + ! Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + ! EndIf + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), nElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadratic (uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), xt, yt + 3*MeshParam%dy/2, zt ) + ! uuNodeBT(9) = uuBtrack; vvNodeBT(9) = vvBtrack; wwNodeBT(9) = wwBtrack; xxNodeBT(9) = xt; yyNodeBT(9) = yt + 3*MeshParam%dy/2; zzNodeBT(9) = zt; hNodeBT(9) = Max(HydroParam%eta(nElem)-sum(HydroParam%DZsi(:,nElem)),0.d0) + !EndIf + ! + !! 3 - Characteristic Line End's Velocities by Conservative Scheme: + !Call ConservativeScheme(uuBtrack, vvBtrack, uuNodeBT(:), vvNodeBT(:), xxNodeBT(:), yyNodeBT(:), hNodeBT(:), dt, psi_flag, iLayer, iEdge, HydroParam, MeshParam) + ! + !uuint = uuBtrack + !vvint = vvBtrack + !wwint = wwNodeBT(3) + ! + !return + !End Subroutine ELMConservative3 + ! + ! + !Subroutine ELMConservative2(uuBtrack, vvBtrack, wwBtrack, bbElem, bbLayer, iLayer, iEdge, xt, yt, zt, dt, psi_flag, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Real :: xt, yt, zt, dt + !Integer:: bbElem, bbLayer, psi_flag, iEdge, iLayer + !Real,intent(inout) :: uuBtrack, vvBtrack, wwBtrack + !Real :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: uuNodeBT(9), vvNodeBT(9), wwNodeBT(9), xxNodeBT(9), yyNodeBT(9), zzNodeBT(9), hNodeBT(9) + !Real :: Yuu(3), Yvv(3), Yww(3), Xuu(3), Xvv(3), Xww(3) + !Real :: uuint, vvint, wwint + !Integer :: rElem, uElem, dElem, lElem + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !If(IEdge==568) Then + ! continue + !EndIf + ! + !!uuNodeBT(:) = 0.d0; vvNodeBT(:) = 0.d0; wwNodeBT(:) = 0.d0; xxNodeBT(:) = 0.d0; yyNodeBT(:) = 0.d0; zzNodeBT(:) = 0.d0; hNodeBT(:) = 0.d0 + ! + !! For nodes positions in the vector, the Standard is this: + !! + !! .----.----. + !! | n9 | + !! | x | + !! | | | + !! | n8| | + !! .----.----.----.--x-.----.----. + !! | | | | | + !! | n2| n3 | |n4 | + !! | n1 x----x-------x-x----x n5 | + !! | | | | | + !! .----.----.----.--x-.----.----. + !! | n7| | + !! | | | + !! | x | + !! | n6 | + !! .----.----. + ! + !! 1 - Neighbour Elements: + !uElem = MeshParam%Right(MeshParam%Edge(1,bbElem)) + !lElem = MeshParam%Right(MeshParam%Edge(2,bbElem)) + !dElem = MeshParam%Right(MeshParam%Edge(3,bbElem)) + !rElem = MeshParam%Right(MeshParam%Edge(4,bbElem)) + ! + !! 2 - Nodes Velocities: + !! 2.1 - Velocities for nodes n2, n3, n4, n7 and n8: + !Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), bbElem, bbLayer, HydroParam, MeshParam) + !Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yt, zt) + ! + !uuNodeBT(2) = Yuu(1); vvNodeBT(2) = Yvv(1); wwNodeBT(2) = Yww(1); xxNodeBT(2) = xxNode(1,1); yyNodeBT(2) = yt; zzNodeBT(2) = zt; hNodeBT(2) = Max(HydroParam%H(MeshParam%Edge(2,bbElem))-HydroParam%hj(MeshParam%Edge(2,bbElem)),0.d0) + !uuNodeBT(3) = uuBtrack; vvNodeBT(3) = vvBtrack; wwNodeBT(3) = wwBtrack; xxNodeBT(3) = xt; yyNodeBT(3) = yt; zzNodeBT(3) = zt; hNodeBT(3) = Max(HydroParam%eta(bbElem)-sum(HydroParam%DZsi(:,bbElem)),0.d0) + !uuNodeBT(4) = Yuu(3); vvNodeBT(4) = Yvv(3); wwNodeBT(4) = Yww(3); xxNodeBT(4) = xxNode(1,7); yyNodeBT(4) = yt; zzNodeBT(4) = zt; hNodeBT(4) = Max(HydroParam%H(MeshParam%Edge(4,bbElem))-HydroParam%hj(MeshParam%Edge(4,bbElem)),0.d0) + !uuNodeBT(7) = Xuu(1); vvNodeBT(7) = Xvv(1); wwNodeBT(7) = Xww(1); xxNodeBT(7) = xt; yyNodeBT(7) = yyNode(1,4); zzNodeBT(7) = zt; hNodeBT(7) = Max(HydroParam%H(MeshParam%Edge(3,bbElem))-HydroParam%hj(MeshParam%Edge(3,bbElem)),0.d0) + !uuNodeBT(8) = Xuu(3); vvNodeBT(8) = Xvv(3); wwNodeBT(8) = Xww(3); xxNodeBT(8) = xt; yyNodeBT(8) = yyNode(1,6); zzNodeBT(8) = zt; hNodeBT(8) = Max(HydroParam%H(MeshParam%Edge(1,bbElem))-HydroParam%hj(MeshParam%Edge(1,bbElem)),0.d0) + ! + !! 2.2 - Velocities for node n1: + !If(lElem == 0) Then + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2); yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + !ElseIf (bbLayer < HydroParam%ElSmallms(lElem)) Then + ! uuNodeBT(1) = uuNodeBT(2); vvNodeBT(1) = uuNodeBT(2); wwNodeBT(1) = uuNodeBT(2); xxNodeBT(1) = xxNodeBT(2); yyNodeBT(1) = yyNodeBT(2); zzNodeBT(1) = zt; hNodeBT(1) = hNodeBT(2) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), lElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Yuu(:), Yvv(:), Yww(:), Xuu(:), Xvv(:), Xww(:), xxNode(1,5), yt, zt) + ! uuNodeBT(1) = Yuu(2); vvNodeBT(1) = Yvv(2); wwNodeBT(1) = Yww(2); xxNodeBT(1) = xxNode(1,5); yyNodeBT(1) = yt; zzNodeBT(1) = zt; hNodeBT(1) = Max(HydroParam%eta(lElem)-sum(HydroParam%DZsi(:,lElem)),0.d0) + !EndIf + ! + !! 2.3 - Velocities for node n5: + !If(rElem == 0) Then + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4); yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + !ElseIf(bbLayer < HydroParam%ElSmallms(rElem)) Then + ! uuNodeBT(5) = uuNodeBT(4); vvNodeBT(5) = uuNodeBT(4); wwNodeBT(5) = uuNodeBT(4); xxNodeBT(5) = xxNodeBT(4); yyNodeBT(5) = yyNodeBT(4); zzNodeBT(5) = zt; hNodeBT(5) = hNodeBT(4) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), rElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xxNode(1,5), yt, zt) + ! uuNodeBT(5) = Yuu(2); vvNodeBT(5) = Yvv(2); wwNodeBT(5) = Yww(2); xxNodeBT(5) = xxNode(1,5); yyNodeBT(5) = yt; zzNodeBT(5) = zt; hNodeBT(5) = max(HydroParam%eta(rElem)-sum(HydroParam%DZsi(:,rElem)),0.d0) + !EndIf + ! + !! 2.4 - Velocities for node n6: + !If (dElem == 0) Then + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7); zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + !ElseIf (bbLayer < HydroParam%ElSmallms(dElem)) Then + ! uuNodeBT(6) = uuNodeBT(7); vvNodeBT(6) = vvNodeBT(7); wwNodeBT(6) = wwNodeBT(7); xxNodeBT(6) = xxNodeBT(7); yyNodeBT(6) = yyNodeBT(7); zzNodeBT(6) = zt; hNodeBT(6) = hNodeBT(7) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), dElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yyNode(1,5), zt) + ! uuNodeBT(6) = Xuu(2); vvNodeBT(6) = Xvv(2); wwNodeBT(6) = Xww(2); xxNodeBT(6) = xt; yyNodeBT(6) = yyNode(1,5); zzNodeBT(6) = zt; hNodeBT(6) = max(HydroParam%eta(dElem)-sum(HydroParam%DZsi(:,dElem)),0.d0) + !EndIf + ! + !! 2.5 - Velocities for node n9: + !If (uElem == 0) Then + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8); zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + !ElseIf (bbLayer < HydroParam%ElSmallms(uElem)) Then + ! uuNodeBT(9) = uuNodeBT(8); vvNodeBT(9) = vvNodeBT(8); wwNodeBT(9) = wwNodeBT(8); xxNodeBT(9) = xxNodeBT(8); yyNodeBT(9) = yyNodeBT(8); zzNodeBT(9) = zt; hNodeBT(9) = hNodeBT(8) + !Else + ! Call iQuadraticNodes(uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), uElem, bbLayer, HydroParam, MeshParam) + ! Call iQuadraticCons(uuBtrack, vvBtrack, wwBtrack, uuNode(:,:), vvNode(:,:), wwNode(:,:), xxNode(:,:), yyNode(:,:), zzNode(:,:), Xuu(:), Xvv(:), Xww(:), Yuu(:), Yvv(:), Yww(:), xt, yyNode(1,5), zt) + ! uuNodeBT(9) = Xuu(2); vvNodeBT(9) = Xvv(2); wwNodeBT(9) = Xww(2); xxNodeBT(9) = xt; yyNodeBT(9) = yyNode(1,5); zzNodeBT(9) = zt; hNodeBT(9) = max(HydroParam%eta(uElem)-sum(HydroParam%DZsi(:,uElem)),0.d0) + !EndIf + ! + !! 3 - Characteristic Line End's Velocities by Conservative Scheme: + !Call ConservativeScheme(uuBtrack, vvBtrack, uuNodeBT(:), vvNodeBT(:), xxNodeBT(:), yyNodeBT(:), hNodeBT(:), dt, psi_flag, iLayer, iEdge, HydroParam, MeshParam) + ! + ! + !uuint = uuBtrack + !vvint = vvBtrack + !wwint = wwNodeBT(3) + ! + ! + !return + !End Subroutine ELMConservative2 + ! + ! + ! + !Subroutine ConservativeScheme(uuBtrack, vvBtrack, uuNode, vvNode, xxNode, yyNode, dzNode, dt, psi_flag, iLayer, iEdge, HydroParam, MeshParam) + ! + !Use MeshVars + !Use Hydrodynamic + ! + !Implicit None + ! + !Real, intent(in) :: uuNode(9), vvNode(9), xxNode(9), yyNode(9), dzNode(9), dt + !Real, intent(inout) :: uuBtrack, vvBtrack + !Real :: fi_small = 0.0d0 + !Real :: epsGrad = 10 !CAYO + !Real :: rj(2,4), psi(2,4), ru, soma + !Real :: Courant + !Integer :: psi_flag, iEdge, iLayer + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !psi(:,:) = 0.0d0 + !rj(:,:) = 0.0d0 + !HydroParam%uArrow(iLayer,:,iEdge) = 0.d0 + !Courant = uuNode(3)*dt/MeshParam%CirDistance(iEdge) !7 - Super-C/ 8 - Ultimate-Quickest/ 9 - Hyper-C + ! + !if (iEdge==568) then + ! continue + !EndIf + ! + !!x - direction: + !If ((uuNode(3) - uuNode(1))/MeshParam%CirDistance(iEdge) > epsGrad > 0) Then + ! + ! If (uuNode(3) + uuNode(1) >= 0) Then + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(1)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! HydroParam%uArrow(iLayer,1,iEdge) = 0.5*(uuNode(3) + uuNode(5)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! ! y-direction: + ! If (vvNode(3) + vvNode(6) >= 0) Then + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(6)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! HydroParam%uArrow(iLayer,2,iEdge) = 0.5*(vvNode(3) + vvNode(9)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !Else + ! ! x-direction: + ! If (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1) >= 0 ) Then + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(2)*dzNode(2))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(1)*dzNode(1))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(3),uuNode(2),uuNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(3),vvNode(2),vvNode(1),xxNode(3),xxNode(2),xxNode(1),yyNode(3),yyNode(2),yyNode(1)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! Else + ! !HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(4)*dzNode(4) + uuNode(3)*dzNode(3))/(dzNode(4) + dzNode(2)) + ! HydroParam%uArrow(iLayer,1,iEdge) = (uuNode(3)*dzNode(3) + uuNode(5)*dzNode(5))/(dzNode(4) + dzNode(2)) + ! + ! rj(1,1) = ru(uuNode(4),uuNode(3),uuNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(1,1),Courant,fi_small,psi(1,1)) + ! + ! rj(1,2) = ru(uuNode(5),uuNode(4),uuNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,2),Courant,fi_small,psi(1,2)) + ! + ! rj(2,1) = ru(vvNode(4),vvNode(3),vvNode(2),xxNode(4),xxNode(3),xxNode(2),yyNode(4),yyNode(3),yyNode(2)) + ! Call Psi_value(psi_flag,rj(2,1),Courant,fi_small,psi(2,1)) + ! + ! rj(2,2) = ru(vvNode(5),vvNode(4),vvNode(3),xxNode(5),xxNode(4),xxNode(3),yyNode(5),yyNode(4),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,2),Courant,fi_small,psi(2,2)) + ! EndIf + ! + !! y-direction: + ! If (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6)>= 0) Then + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(7)*dzNode(7))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(6)*dzNode(6))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(3),uuNode(7),uuNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(3),vvNode(7),vvNode(6),xxNode(3),xxNode(7),xxNode(6),yyNode(3),yyNode(7),yyNode(6)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! Else + ! !HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(7)*dzNode(7) + vvNode(3)*dzNode(3))/(dzNode(8) + dzNode(7)) + ! HydroParam%uArrow(iLayer,2,iEdge) = (vvNode(3)*dzNode(3) + vvNode(9)*dzNode(9))/(dzNode(8) + dzNode(7)) + ! + ! rj(1,3) = ru(uuNode(8),uuNode(3),uuNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(1,3),Courant,fi_small,psi(1,3)) + ! + ! rj(1,4) = ru(uuNode(9),uuNode(8),uuNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(1,4),Courant,fi_small,psi(1,4)) + ! + ! rj(2,3) = ru(vvNode(8),vvNode(3),vvNode(7),xxNode(8),xxNode(3),xxNode(7),yyNode(8),yyNode(3),yyNode(7)) + ! Call Psi_value(psi_flag,rj(2,3),Courant,fi_small,psi(2,3)) + ! + ! rj(2,4) = ru(vvNode(9),vvNode(8),vvNode(3),xxNode(9),xxNode(8),xxNode(3),yyNode(9),yyNode(8),yyNode(3)) + ! Call Psi_value(psi_flag,rj(2,4),Courant,fi_small,psi(2,4)) + ! EndIf + !EndIf + ! + ! + !If (HydroParam%uArrow(iLayer,1,iEdge)*dt/(xxNode(4)-xxNode(2)) <0 .or. HydroParam%uArrow(iLayer,2,iEdge)*dt/(yyNode(8)-yyNode(7)) <0) Then + ! soma = HydroParam%uArrow(iLayer,1,iEdge) + HydroParam%uArrow(iLayer,2,iEdge) + ! continue + !EndIf + !!HydroParam%uxyback(iLayer,1,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + !!HydroParam%uxyback(iLayer,2,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + !! + !!HydroParam%uxyback(iLayer,1,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/(xxNode(3)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/(xxNode(4)-xxNode(3)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/(yyNode(3)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/(yyNode(8)-yyNode(3))) + !!HydroParam%uxyback(iLayer,2,iEdge) = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/(xxNode(3)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/(xxNode(4)-xxNode(3)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/(yyNode(3)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/(yyNode(8)-yyNode(3))) + !! + ! + !uuBtrack = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/MeshParam%dy) + !vvBtrack = vvNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/MeshParam%dx + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/MeshParam%dx + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/MeshParam%dy + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/MeshParam%dy) + ! + !!uuBtrack = uuNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(3) - (2 + psi(1,1) + psi(1,2))*uuNode(2) + psi(1,1)*uuNode(1))/(xxNode(4)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(1,2))*uuNode(4) - (2 + psi(1,1) + psi(1,2))*uuNode(3) + psi(1,1)*uuNode(2))/(xxNode(4)-xxNode(2)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(3) - (2 + psi(1,3) + psi(1,4))*uuNode(7) + psi(1,3)*uuNode(6))/(yyNode(8)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(1,4))*uuNode(8) - (2 + psi(1,3) + psi(1,4))*uuNode(3) + psi(1,3)*uuNode(7))/(yyNode(8)-yyNode(7))) + !!vvBtrack = vvNode(3) - dt*(0.5*Max(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(3) - (2 + psi(2,1) + psi(2,2))*vvNode(2) + psi(2,1)*vvNode(1))/(xxNode(4)-xxNode(2)) + 0.5*Min(HydroParam%uArrow(iLayer,1,iEdge),0.d0)*((2 + psi(2,2))*vvNode(4) - (2 + psi(2,1) + psi(2,2))*vvNode(3) + psi(2,1)*vvNode(2))/(xxNode(4)-xxNode(2)) + 0.5*Max(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(3) - (2 + psi(2,3) + psi(2,4))*vvNode(7) + psi(2,3)*vvNode(6))/(yyNode(8)-yyNode(7)) + 0.5*Min(HydroParam%uArrow(iLayer,2,iEdge),0.d0)*((2 + psi(2,4))*vvNode(8) - (2 + psi(2,3) + psi(2,4))*vvNode(3) + psi(2,3)*vvNode(7))/(yyNode(8)-yyNode(7))) + !! + !End Subroutine ConservativeScheme + ! + + ! + !Subroutine iQuadraticNodes(uuNode, vvNode, wwNode, xxNode, yyNode, zzNode, bbElem, bbLayer, HydroParam, MeshParam) + ! + !Use MeshVars !, Only: + !Use Hydrodynamic ! Only: + ! + !Implicit none + ! + !Integer, intent(in) :: bbElem, bbLayer + !Real, intent(inout) :: uuNode(3,9), vvNode(3,9), wwNode(3,9), xxNode(3,9), yyNode(3,9), zzNode(3,9) + !Real :: Nodes(9) + !Integer :: n1, n2, n3, n4, n5, n6, n7, n8, n9 + !type(MeshGridParam) :: MeshParam + !type(HydrodynamicParam) :: HydroParam + ! + !!iQuadratic Interpolation Nodes in bbLayer from bbElem + !! For nodes positions in the vector, the Standard is this: + !! n6 + !! n3 .--.--. n9 + !! | | + !! n2 . . . n8 + !! | n5 | + !! n1 .--.--. n7 + !! n4 + !n1 = MeshParam%Quadri(3,bbElem) + 1 + !n2 = MeshParam%Edge(2,bbElem) + !n3 = MeshParam%Quadri(2,bbElem) + 1 + !n4 = MeshParam%Edge(3,bbElem) + !n5 = bbElem + !n6 = MeshParam%Edge(1,bbElem) + !n7 = MeshParam%Quadri(4,bbElem) + 1 + !n8 = MeshParam%Edge(4,bbElem) + !n9 = MeshParam%Quadri(1,bbElem) + 1 + !Nodes(1:9)= (/n1, n2, n3, n4, n5, n6, n7, n8, n9 /) + !! Velocities by vertical section and by layers, in bottom to top (k-1/2 to k + 1/2). See Figure 3 in [2]): + !! Vertical 1 = West Edge + !! uuNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + !uuNode(1,1)=HydroParam%uNode(bbLayer,1,Nodes(1)); vvNode(1,1)=HydroParam%uNode(bbLayer,2,Nodes(1)); wwNode(1,1)=HydroParam%uNode(bbLayer,3,Nodes(1)) + !uuNode(1,2)=HydroParam%ug(Nodes(2),bbLayer); vvNode(1,2)=HydroParam%vg(Nodes(2),bbLayer); wwNode(1,2)=HydroParam%wg(Nodes(2),bbLayer) + !uuNode(1,3)=HydroParam%uNode(bbLayer,1,Nodes(3)); vvNode(1,3)=HydroParam%uNode(bbLayer,2,Nodes(3)); wwNode(1,3)=HydroParam%uNode(bbLayer,3,Nodes(3)) + !uuNode(2,1)=HydroParam%ubV(bbLayer,1,Nodes(1)); vvNode(2,1)=HydroParam%ubV(bbLayer,2,Nodes(1)); wwNode(2,1)=HydroParam%ubV(bbLayer,3,Nodes(1)) + !uuNode(2,2)=HydroParam%uxy(bbLayer,1,Nodes(2)); vvNode(2,2)=HydroParam%uxy(bbLayer,2,Nodes(2)); wwNode(2,2)=HydroParam%wfc(bbLayer,Nodes(2)) + !uuNode(2,3)=HydroParam%ubV(bbLayer,1,Nodes(3)); vvNode(2,3)=HydroParam%ubV(bbLayer,2,Nodes(3)); wwNode(2,3)=HydroParam%ubV(bbLayer,3,Nodes(3)) + !uuNode(3,1)=HydroParam%uNode(bbLayer+1,1,Nodes(1)); vvNode(3,1)=HydroParam%uNode(bbLayer+1,2,Nodes(1)); wwNode(3,1)=HydroParam%uNode(bbLayer+1,3,Nodes(1)) + !uuNode(3,2)=HydroParam%ug(Nodes(2),bbLayer+1); vvNode(3,2)=HydroParam%vg(Nodes(2),bbLayer+1); wwNode(3,2)=HydroParam%wg(Nodes(2),bbLayer+1) + !uuNode(3,3)=HydroParam%uNode(bbLayer+1,1,Nodes(3)); vvNode(3,3)=HydroParam%uNode(bbLayer+1,2,Nodes(3)); wwNode(3,3)=HydroParam%uNode(bbLayer+1,3,Nodes(3)) + !! Vertical 2 = Cell Centered Section + !uuNode(1,4)=HydroParam%ug(Nodes(4),bbLayer); vvNode(1,4)=HydroParam%vg(Nodes(4),bbLayer); wwNode(1,4)=HydroParam%wg(Nodes(4),bbLayer) + !uuNode(1,5)=HydroParam%uxyL(bbLayer,1,Nodes(5)); vvNode(1,5)=HydroParam%uxyL(bbLayer,2,Nodes(5)); wwNode(1,5)=HydroParam%w(bbLayer,Nodes(5)) + !uuNode(1,6)=HydroParam%ug(Nodes(6),bbLayer); vvNode(1,6)=HydroParam%vg(Nodes(6),bbLayer); wwNode(1,6)=HydroParam%wg(Nodes(6),bbLayer) + !uuNode(2,4)=HydroParam%uxy(bbLayer,1,Nodes(4)); vvNode(2,4)=HydroParam%uxy(bbLayer,2,Nodes(4)); wwNode(2,4)=HydroParam%wfc(bbLayer,Nodes(4)) + !uuNode(2,5)=HydroParam%ub(bbLayer,1,Nodes(5)); vvNode(2,5)=HydroParam%ub(bbLayer,2,Nodes(5)); wwNode(2,5)=HydroParam%ub(bbLayer,3,Nodes(5)) + !uuNode(2,6)=HydroParam%uxy(bbLayer,1,Nodes(6)); vvNode(2,6)=HydroParam%uxy(bbLayer,2,Nodes(6)); wwNode(2,6)=HydroParam%wfc(bbLayer,Nodes(6)) + !uuNode(3,4)=HydroParam%ug(Nodes(4),bbLayer+1); vvNode(3,4)=HydroParam%vg(Nodes(4),bbLayer+1); wwNode(3,4)=HydroParam%wg(Nodes(4),bbLayer+1) + !uuNode(3,5)=HydroParam%uxyL(bbLayer+1,1,Nodes(5)); vvNode(3,5)=HydroParam%uxyL(bbLayer+1,2,Nodes(5)); wwNode(3,5)=HydroParam%w(bbLayer+1,Nodes(5)) + !uuNode(3,6)=HydroParam%ug(Nodes(6),bbLayer+1); vvNode(3,6)=HydroParam%vg(Nodes(6),bbLayer+1); wwNode(3,6)=HydroParam%wg(Nodes(6),bbLayer+1) + !! Vertical 3 = East Edge + !uuNode(1,7)=HydroParam%uNode(bbLayer,1,Nodes(7)); vvNode(1,7)=HydroParam%uNode(bbLayer,2,Nodes(7)); wwNode(1,7)=HydroParam%uNode(bbLayer,3,Nodes(7)) + !uuNode(1,8)=HydroParam%ug(Nodes(8),bbLayer); vvNode(1,8)=HydroParam%vg(Nodes(8),bbLayer); wwNode(1,8)=HydroParam%wg(Nodes(8),bbLayer) + !uuNode(1,9)=HydroParam%uNode(bbLayer,1,Nodes(9)); vvNode(1,9)=HydroParam%uNode(bbLayer,2,Nodes(9)); wwNode(1,9)=HydroParam%uNode(bbLayer,3,Nodes(9)) + !uuNode(2,7)=HydroParam%ubV(bbLayer,1,Nodes(7)); vvNode(2,7)=HydroParam%ubV(bbLayer,2,Nodes(7)); wwNode(2,7)=HydroParam%ubV(bbLayer,3,Nodes(7)) + !uuNode(2,8)=HydroParam%uxy(bbLayer,1,Nodes(8)); vvNode(2,8)=HydroParam%uxy(bbLayer,2,Nodes(8)); wwNode(2,8)=HydroParam%wfc(bbLayer,Nodes(8)) + !uuNode(2,9)=HydroParam%ubV(bbLayer,1,Nodes(9)); vvNode(2,9)=HydroParam%ubV(bbLayer,2,Nodes(9)); wwNode(2,9)=HydroParam%ubV(bbLayer,3,Nodes(9)) + !uuNode(3,7)=HydroParam%uNode(bbLayer+1,1,Nodes(7)); vvNode(3,7)=HydroParam%uNode(bbLayer+1,2,Nodes(7)); wwNode(3,7)=HydroParam%uNode(bbLayer+1,3,Nodes(7)) + !uuNode(3,8)=HydroParam%ug(Nodes(8),bbLayer+1); vvNode(3,8)=HydroParam%vg(Nodes(8),bbLayer+1); wwNode(3,8)=HydroParam%wg(Nodes(8),bbLayer+1) + !uuNode(3,9)=HydroParam%uNode(bbLayer+1,1,Nodes(9)); vvNode(3,9)=HydroParam%uNode(bbLayer+1,2,Nodes(9)); wwNode(3,9)=HydroParam%uNode(bbLayer+1,3,Nodes(9)) + !! + !!If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + !! !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + !! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(1)))*0.5d0 + !! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0 + !! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(3)))*0.5d0 + !! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + !! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + !! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + !! + !! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0 + !! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%eta(Nodes(5)))*0.5d0 + !! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0 + !! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + !! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + !! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + !! + !! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(7)))*0.5d0 + !! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0 + !! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + HydroParam%peta(Nodes(9)))*0.5d0 + !! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + !! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + !! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + !!Else + !! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + !! + !! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + !! + !! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem)) + !! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + sum(HydroParam%DZsi(:,bbElem))/2 + !! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + !! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + !!EndIf + ! + !If (bbLayer==HydroParam%ElCapitalM(bbElem)) Then + ! !xxNode(Layer,Node Position), Layer = [k-1/2, k , k +1/2] == [1,2,3] + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(1)))*0.5d0 + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(2)))*0.5d0 + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(3)))*0.5d0 + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%peta(Nodes(1)) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Z(bbLayer+1,Nodes(2)) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%peta(Nodes(3)) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(4)))*0.5d0 + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%eta(Nodes(5)))*0.5d0 + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(6)))*0.5d0 + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Z(bbLayer+1,Nodes(4)) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%eta(Nodes(5)) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Z(bbLayer+1,Nodes(6)) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(7)))*0.5d0 + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%Z(bbLayer+1,Nodes(8)) )*0.5d0 + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=(HydroParam%Ze(bbLayer,bbElem) + HydroParam%peta(Nodes(9)))*0.5d0 + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%peta(Nodes(7)) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Z(bbLayer+1,Nodes(8)) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%peta(Nodes(9)) + !Else + ! xxNode(1,1) = MeshParam%xNode(Nodes(1)); yyNode(1,1) = MeshParam%yNode(Nodes(1)); zzNode(1,1)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(1,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(1,2)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,3) = MeshParam%xNode(Nodes(3)); yyNode(1,3) = MeshParam%yNode(Nodes(3)); zzNode(1,3)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,1) = MeshParam%xNode(Nodes(1)); yyNode(2,1) = MeshParam%yNode(Nodes(1)); zzNode(2,1)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(2,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(2,2)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,3) = MeshParam%xNode(Nodes(3)); yyNode(2,3) = MeshParam%yNode(Nodes(3)); zzNode(2,3)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,1) = MeshParam%xNode(Nodes(1)); yyNode(3,1) = MeshParam%yNode(Nodes(1)); zzNode(3,1)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,2) = MeshParam%EdgeBary(1,Nodes(2)); yyNode(3,2) = MeshParam%EdgeBary(2,Nodes(2)); zzNode(3,2)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,3) = MeshParam%xNode(Nodes(3)); yyNode(3,3) = MeshParam%yNode(Nodes(3)); zzNode(3,3)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(1,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(1,4)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,5) = MeshParam%xb(Nodes(5)); yyNode(1,5) = MeshParam%yb(Nodes(5)); zzNode(1,5)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(1,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(1,6)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(2,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(2,4)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,5) = MeshParam%xb(Nodes(5)); yyNode(2,5) = MeshParam%yb(Nodes(5)); zzNode(2,5)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(2,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(2,6)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,4) = MeshParam%EdgeBary(1,Nodes(4)); yyNode(3,4) = MeshParam%EdgeBary(2,Nodes(4)); zzNode(3,4)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,5) = MeshParam%xb(Nodes(5)); yyNode(3,5) = MeshParam%yb(Nodes(5)); zzNode(3,5)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,6) = MeshParam%EdgeBary(1,Nodes(6)); yyNode(3,6) = MeshParam%EdgeBary(2,Nodes(6)); zzNode(3,6)=HydroParam%Ze(bbLayer+1,bbElem) + ! + ! xxNode(1,7) = MeshParam%xNode(Nodes(7)); yyNode(1,7) = MeshParam%yNode(Nodes(7)); zzNode(1,7)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(1,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(1,8)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(1,9) = MeshParam%xNode(Nodes(9)); yyNode(1,9) = MeshParam%yNode(Nodes(9)); zzNode(1,9)=HydroParam%Ze(bbLayer,bbElem) + ! xxNode(2,7) = MeshParam%xNode(Nodes(7)); yyNode(2,7) = MeshParam%yNode(Nodes(7)); zzNode(2,7)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(2,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(2,8)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(2,9) = MeshParam%xNode(Nodes(9)); yyNode(2,9) = MeshParam%yNode(Nodes(9)); zzNode(2,9)=HydroParam%Zb(bbLayer,bbElem) + ! xxNode(3,7) = MeshParam%xNode(Nodes(7)); yyNode(3,7) = MeshParam%yNode(Nodes(7)); zzNode(3,7)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,8) = MeshParam%EdgeBary(1,Nodes(8)); yyNode(3,8) = MeshParam%EdgeBary(2,Nodes(8)); zzNode(3,8)=HydroParam%Ze(bbLayer+1,bbElem) + ! xxNode(3,9) = MeshParam%xNode(Nodes(9)); yyNode(3,9) = MeshParam%yNode(Nodes(9)); zzNode(3,9)=HydroParam%Ze(bbLayer+1,bbElem) + !EndIf + ! + !return + !End Subroutine iQuadraticNodes + + ! + ! ! Ci(iElem), Psicrit: + ! Ci = 0.d0 + ! HydroParam%Q(iElem) = 0.d0 + ! HydroParam%P(iElem) = 0.d0 + ! V1 = 0.d0 + ! iLayer = 0 + ! PscritFlag = 0 + ! If(MeshParam%iSaturation == 0) Then !Surface or Darcy's Model + ! PsiCrit = HydroParam%sb(iElem) + ! If(eta >= PsiCrit + HydroParam%PCRI/2.0d0 + NearZero) Then + ! Ci = 1 + ! !Vcri = Ci*PsiCrit*MeshParam%ei(MeshParam%ElCapitalMs(iElem),iElem)*MeshParam%Area(iElem) + ! EndIf + ! ElseIf(MeshParam%iSaturation == 2) Then ! Brooks and Corey's Model + ! PsiCrit = HydroParam%sb(iElem) - 1/MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem) !alpha -> iElem + ! If(eta > PsiCrit + NearZero) Then + ! !In this case HydroParam%P == Ci(Psicrit) + ! !HydroParam%P(iElem) = ((PsiCrit)**(1 + MeshParam%nSoil(MeshParam%CapitalMs(iElem),iElem)))*MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem)**2 + ! !HydroParam%P(iElem) = MeshParam%nSoil(MeshParam%ElCapitalMs(iElem),iElem)/Ci + ! While (PscritFlag == 0) Then + ! iLayer = iLayer + 1 + ! If (eta > HydroParam%Ze(iLayer+1,iElem)) Then + ! HydroParam%P(iElem) = HydroParam%P( iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)/((HydroParam%Zb(iLayer,iElem) - eta)*(1 + MeshParam%nSoil(iLayer,iElem)))*MeshParam%alpha(iLayer,iElem)**2 + ! HydroParam%Q = -HydroParam%P(iElem) + ! V1 = V1 + HydroParam%DZsi(iLayer,iElem)*HydroParam%Q + ! Else + ! ! Find PsiCrit Layer: + ! PscritFlag = 1 + ! HydroParam%P(iElem) = HydroParam%P(iElem) + (HydroParam%Ze(iLayer,iElem)-PsiCrit)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)/((HydroParam%Ze(iLayer,iElem)-PsiCrit)*0.5*(1 + MeshParam%nSoil(iLayer,iElem)))*MeshParam%alpha(iLayer,iElem)**2 + ! V1 = V1 + (HydroParam%Ze(iLayer,iElem)-PsiCrit)*MeshParam%ei(iLayer,iElem)*MeshParam%Si(iLayer,iElem) + ! EndIf + ! EndDo + ! + ! V1 = MeshParam%Area(iElem)*(V1 + HydroParam%P(iElem)*(eta - Psicrit)*MeshParam%ei(iLayer-1,iElem)) + ! + ! HydroParam%Q = Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + ! + ! HydroParam%Q(iElem) = MeshParam%Area(iElem)*(HydroParam%Q(iElem) + HydroParam%P(iElem)) + ! HydroParam%P(iElem) = HydroParam%P(iElem)*MeshParam%Area(iElem) + ! Else + ! HydroParam%P(iElem) = ((eta)**(1 + MeshParam%nSoil(MeshParam%CapitalMs(iElem),iElem)))*MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem)**2 + ! HydroParam%P(iElem) = MeshParam%nSoil(MeshParam%ElCapitalMs(iElem),iElem)/Ci + ! While (PscritFlag == 0) Then + ! iLayer = iLayer + 1 + ! If (eta > HydroParam%Ze(iLayer+1,iElem)) Then + ! V1 = V1 + HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)/((HydroParam%Zb(iLayer,iElem) - eta)*(1 + MeshParam%nSoil(iLayer,iElem)))*MeshParam%alpha(iLayer,iElem)**2 + ! Else + ! ! Find eta Layer: + ! PscritFlag = 1 + ! V1 = V1 + (HydroParam%Ze(iLayer,iElem)-PsiCrit)*MeshParam%ei(iLayer,iElem)*HydroParam%P(iElem) + ! EndIf + ! EndDo + ! Endif + ! + ! PscritFlag = 0 + ! iLayer = 0 + ! Do iLayer = + ! While( PscritFlag == 0) Then + ! iLayer = iLayer + 1 + ! If (eta < HydroParam%Zb(iLayer,iElem)) Then + ! HydroParam%P(iElem) = + ! Else + ! PscritFlag = 1 + ! EndIf + ! + ! EndDo While + ! EndIf + ! Else !van Genuchten's Model + ! mParam = (1-1/MeshParam%nSoil(MeshParam%ElCapitalMs(iElem),iElem)) + ! PsiCrit = HydroParam%sb(iElem) - (1/MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem))*((MeshParam%nSoil(MeshParam%CapitalMs(iElem),iElem) - 1)/MeshParam%nSoil(MeshParam%CapitalMs(iElem),iElem)) !alpha -> iElem + ! If(eta >= PsiCrit + NearZero) Then + ! HydroParam%P(iElem) = MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem)*MeshParam%nSoil(MeshParam%ElCapitalMs(iElem),iElem)*mPAram*abs(MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem)*Psicrit)**(MeshParam%nSoil(MeshParam%CapitalMs(iElem),iElem)-1) + ! HydroParam%P(iElem) = HydroParam%P(iElem)/(MeshParam%alpha(MeshParam%ElCapitalMs(iElem),iElem)*abs(Psicrit)**(MeshParam%nSoil(MeshParam%ElCapitalMs(iElem),iElem)) + 1)**(mParam + 1) + ! !Vcri = HydroParam%P(iElem)*PsiCrit*MeshParam%ei(MeshParam%ElCapitalMs(iElem),iElem)*MeshParam%Area(iElem) + ! EndIf + ! EndIf + ! + ! + ! + ! + ! + ! EndDo + ! + ! + !EndDo + ! + + ! + ! + !!HydroParam%etak = HydroParam%eta + !!Do iNewton = 1,200 + !! ! 8.2.1 Assemble Matrices F (System Matrix - Newton Method) and P (Derivative Matrix) + !! HydroParam%Qmatrix = 0.d0 !always in k-1 (%etak) + !! + !! !!xx. Calculate %Aeta == T.eta: + !! HydroParam%P = 0.d0 !always in k (%eta), change every iteration in CGOp + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! + !! !Do iElem = 1, MeshParam%nElem + !! ! !xx. V2(etak, V1(%etak)) and Q(k-1): + !! ! Call SoilSaturation(HydroParam%etak(iElem),iElem,HydroParam,MeshParam) + !! ! Call MatrixPQV(HydroParam%etak(iElem),HydroParam%Qmatrix(iElem),V1aux,HydroParam%Vol2(iElem),iElem,HydroParam,MeshParam) + !! !EndDo + !! !!xx. Calculate %Aeta == [T - Q(k-1)]eta: + !! !HydroParam%P = 0.d0 !always in k (%eta), change every iteration in CGOp + !! !Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! + !! Do iElem = 1, MeshParam%nElem + !! !xx. Calculate %Vol == V1(eta): + !! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! + !! !xx. V2(etak, V2(%etak)) and Q(k-1): + !! Call SoilSaturation(HydroParam%etak(iElem),iElem,HydroParam,MeshParam) + !! Call MatrixPQV(HydroParam%etak(iElem),HydroParam%Qmatrix(iElem),V1aux,HydroParam%Vol2(iElem),iElem,HydroParam,MeshParam) + !! + !! !xx. Compute Outer Iteration Newton Method's Residual for each iElem: + !! !%F = V1(eta) + [T - Q(k-1)]eta - rhs - V2(etak) + Q(k-1).etak = V1(eta) + [T - Q(k-1)]eta - d(k-1) + !! HydroParam%d(iElem) = HydroParam%rhs(iElem) + HydroParam%Vol2(iElem) - HydroParam%Qmatrix(iElem)*HydroParam%etak(iElem) + !! !HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%d(iElem) + !! HydroParam%F(iElem) = HydroParam%Vol(iElem) - V2aux - HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + !! + !! EndDo + !! + !! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !! !Print*, 'iNewton = ',iNewton , 'res = ',res + !! If ( res < 1e-8 ) Then + !! continue + !! exit + !! EndIf + !! + !! !eta(k-1) = eta(k,l-1) + !! HydroParam%etak = HydroParam%eta + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! HydroParam%F = HydroParam%Vol + HydroParam%Aeta - HydroParam%d - HydroParam%P*HydroParam%eta + !! HydroParam%etam = HydroParam%eta + !! + !! Do iNewtonIn = 1,200 + !! + !! ! 8.2.5 Compute the New Free-Surface Elevation + !! Call CGOp(HydroParam%F,HydroParam%Deta,dt,HydroParam,MeshParam) + !! HydroParam%etam = HydroParam%eta + !! HydroParam%eta = HydroParam%eta - HydroParam%Deta + !! + !! !xx. Calculate %Aeta == [T - Q(k-1)].eta(k,l): + !! HydroParam%P = 0.d0 + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! + !! !xx. Compute Inner Iteration Newton Method's Residual for each iElem: + !! ! %F == V1(eta(k,m)) + [T - Q(k-1)].eta(k,m) - d(k-1) + !! Do iElem = 1, MeshParam%nElem + !! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! HydroParam%F(iElem) = HydroParam%Vol(iElem) - HydroParam%Aeta(iElem) - HydroParam%d(iElem) + !! EndDo + !! + !! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !! !Print*, 'iNewton = ',iNewton , 'res = ',res + !! If ( res < 1e-8 ) Then + !! continue + !! exit + !! EndIf + !! + !! !xx. + !! Do iElem = 1, MeshParam%nElem + !! Call SoilSaturation(HydroParam%etam(iElem),iElem,HydroParam,MeshParam) + !! Call MatrixPQV(HydroParam%etam(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! HydroParam%F(iElem) = HydroParam%P(iElem)*HydroParam%etam(iElem) - HydroParam%Vol(iElem) + HydroParam%d(iElem) + !! EndDo + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! HydroParam%F = HydroParam%Aeta - HydroParam%F + !! ! + !! !HydroParam%P = 0.d0 + !! !Do iElem = 1, MeshParam%nElem + !! ! !xx. Calculate %Vol == V1(eta): + !! ! ! V1(k, l-1), P(k,l-1): + !! ! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! ! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! ! !! smallF = d(k-1) - V1(k,l-1) - P(k,l-1).eta(k,l-1): + !! ! !HydroParam%SmallF(iElem) = HydroParam%d(iElem) - HydroParam%Vol(iElem) + HydroParam%P(iElem)*HydroParam%eta(iElem) + !! ! ! + !! ! !eta(k,l) = eta(k,l-1) - Deta + !! ! HydroParam%eta(iElem) = HydroParam%eta(iElem) - HydroParam%Deta(iElem) + !! !EndDo + !! ! + !! !!!xx. Calculate %Aeta == [P(k,l-1) + T - Q(k-1)].eta(k,l): + !! !!Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! ! + !! !!xx. Calculate %Aeta == [T - Q(k-1)].eta(k,l): + !! !HydroParam%P = 0.d0 + !! !Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! !Do iElem = 1, MeshParam%nElem + !! ! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! ! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! ! HydroParam%F(iElem) = HydroParam%Vol(iElem)- HydroParam%Aeta(iElem) - HydroParam%d(iElem) + !! !EndDo + !! !!xx. Compute Inner Iteration Newton Method's Residual for each iElem: + !! !! F = [P(k,l-1) + T - Q(k-1)].eta(k,l) - d(k-1) + V1(k,l-1) +P(k,l-1).eta(k,l-1) + !! !HydroParam%F = HydroParam%Aeta - HydroParam%SmallF + !! ! + !! !res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !! !!Print*, 'iNewton = ',iNewton , 'res = ',res + !! !If ( res < 1e-8 ) Then + !! ! continue + !! ! exit + !! !EndIf + !! EndDo + !! + !!EndDo + ! + ! + !! 8.2 Newton Loop for Non-Linear Wet- and Dry-ing Algorithm [2] + !HydroParam%etak = HydroParam%eta + !Do iNewton = 1,400 + ! ! 8.2.1 Assemble Matrices F (System Matrix - Newton Method) and P (Derivative Matrix) + ! HydroParam%P = 0. + ! HydroParam%F = 0. + ! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + ! !Call Volume(HydroParam,MeshParam) + ! + ! Do iElem = 1, MeshParam%nElem + ! !8.2.2 Volume with Eta at tn+1: + ! !Note that this point the volume is calculate without %etaplus term (source/sink), its considered in previous + ! !time-step's %Vol(just before item 8) + ! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + ! HydroParam%Vol(iElem) = 0.d0 + ! If (V(HydroParam%eta(iElem),HydroParam%hb(iElem)) > 0) Then + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(HydroParam%eta(iElem) - HydroParam%hb(iElem)) + ! If (HydroParam%DZsi(HydroParam%Smallms(iElem),iElem) > 0) Then + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + ! EndIf + ! ElseIf (V(HydroParam%eta(iElem),HydroParam%sb(iElem)) > 0) Then + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + ! !HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(V(HydroParam%eta(iElem),HydroParam%sb(iElem)))*MeshParam%ei(HydroParam%Smallms(iElem),iElem)*MeshParam%Si(HydroParam%Smallms(iElem),iElem) + ! EndIf + ! + ! !8.2.3 Compute Newton Method's Residue for each iElem: + ! !In this point, MatOp Output = (T-Matrix)Eta + ! !We want F = 0 condition satisfied: V(nt+1) + T*n(t+1) = rhs :: F = V(n(t+1)) + T*n(t+1) - rhs -> 0 + ! HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + ! + ! !8.2.4 Fill P values in dry cell for CGOp computation: + ! !dF/dn = A*dn/dn + T, we want dF/dn = 0. + ! !HydroP = A*dn/dn, if cell is dry dn/dn = 0, else dn/dn = 1 + ! HydroParam%P(iElem) = MeshParam%Area(iElem)*dV(HydroParam%eta(iElem),HydroParam%sb(iElem)) + ! If(V(HydroParam%eta(iElem),HydroParam%hb(iElem)) < HydroParam%PCRI+NearZero .and. V(HydroParam%eta(iElem),HydroParam%sb(iElem)) > HydroParam%PCRI+NearZero ) Then + ! ilayer = 0 + ! Flaglayer = 0 + ! Do While (Flaglayer == 0) + ! ilayer = ilayer + 1 + ! If(HydroParam%Ze(iLayer,iElem) < HydroParam%eta(iElem)) Then + ! continue + ! Else + ! Flaglayer = 1 + ! endif + ! end do + ! !HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(ilayer,iElem)*MeshParam%Si(ilayer,iElem) + ! HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(ilayer,iElem) + ! Else + ! HydroParam%P(iElem) = MeshParam%Area(iElem) + ! EndIf + ! + ! If (V(HydroParam%eta(iElem),HydroParam%sb(iElem)) < HydroParam%PCRI+NearZero) Then + ! ! The Cell is Dry. The Solution is V(eta^(n+1)) = V(eta^(n)) + ! HydroParam%P(iElem) = MeshParam%Area(iElem) ! We can't allow the row to have zeros in all elements - If P = 1, the water level remains the same + ! EndIf + ! + ! EndDo + ! + ! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + ! !Print*, 'iNewton = ',iNewton , 'res = ',res + ! If ( res < 1e-8 ) Then + ! continue + ! exit + ! EndIf + ! + ! HydroParam%etak = HydroParam%eta + ! !Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + ! !HydroParam%F = HydroParam%Aeta + HydroParam%Vol - HydroParam%rhs - HydroParam%P*HydroParam%eta + ! Do iNewtonIn = 1,200 + ! + ! ! 8.2.5 Compute the New Free-Surface Elevation + ! Call CGOp(HydroParam%F,HydroParam%Deta,dt,HydroParam,MeshParam) + ! HydroParam%etam = HydroParam%eta + ! HydroParam%eta = HydroParam%eta - HydroParam%Deta + ! + ! !xx. Calculate %Aeta == [T - Q(k-1)].eta(k,l): + ! HydroParam%P = 0.d0 + ! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + ! + ! Do iElem = 1, MeshParam%nElem + ! + ! !8.2.4 Fill P values in dry cell for CGOp computation: + ! !dF/dn = A*dn/dn + T, we want dF/dn = 0. + ! !HydroP = A*dn/dn, if cell is dry dn/dn = 0, else dn/dn = 1 + ! HydroParam%P(iElem) = MeshParam%Area(iElem)*dV(HydroParam%etam(iElem),HydroParam%sb(iElem)) + ! If(V(HydroParam%etam(iElem),HydroParam%hb(iElem)) < HydroParam%PCRI+NearZero .and. V(HydroParam%etam(iElem),HydroParam%sb(iElem)) > HydroParam%PCRI+NearZero ) Then + ! ilayer = 0 + ! Flaglayer = 0 + ! Do While (Flaglayer == 0) + ! ilayer = ilayer + 1 + ! If(HydroParam%Ze(iLayer,iElem) < HydroParam%etam(iElem)) Then + ! continue + ! Else + ! Flaglayer = 1 + ! endif + ! end do + ! HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(ilayer,iElem)*MeshParam%Si(ilayer,iElem) + ! !HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(ilayer,iElem) + ! Else + ! HydroParam%P(iElem) = MeshParam%Area(iElem) + ! EndIf + ! HydroParam%d(iElem) = HydroParam%rhs(iElem) - HydroParam%Vol(iElem) + HydroParam%P(iElem)*HydroParam%etam(iElem) + ! + ! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + ! HydroParam%Vol(iElem) = 0.d0 + ! If (V(HydroParam%eta(iElem),HydroParam%hb(iElem)) > 0) Then + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(HydroParam%eta(iElem) - HydroParam%hb(iElem)) + ! If (HydroParam%DZsi(HydroParam%Smallms(iElem),iElem) > 0) Then + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + ! EndIf + ! ElseIf (V(HydroParam%eta(iElem),HydroParam%sb(iElem)) > 0) Then + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + ! !HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(V(HydroParam%eta(iElem),HydroParam%sb(iElem)))*MeshParam%ei(HydroParam%Smallms(iElem),iElem)*MeshParam%Si(HydroParam%Smallms(iElem),iElem) + ! EndIf + ! HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + ! + ! EndDo + ! + ! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + ! !Print*, 'iNewton = ',iNewton , 'res = ',res + ! If ( res < 1e-8 ) Then + ! continue + ! exit + ! EndIf + ! + ! + ! !Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + ! !HydroParam%F = HydroParam%Aeta + HydroParam%Vol - HydroParam%d + ! + ! EndDo + ! + !! !eta(k-1) = eta(k,l-1) + !! HydroParam%etak = HydroParam%eta + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! HydroParam%F = HydroParam%Vol + HydroParam%Aeta - HydroParam%d - HydroParam%P*HydroParam%eta + !! HydroParam%etam = HydroParam%eta + !! + !! Do iNewtonIn = 1,200 + !! + !! ! 8.2.5 Compute the New Free-Surface Elevation + !! Call CGOp(HydroParam%F,HydroParam%Deta,dt,HydroParam,MeshParam) + !! HydroParam%etam = HydroParam%eta + !! HydroParam%eta = HydroParam%eta - HydroParam%Deta + !! + !! !xx. Calculate %Aeta == [T - Q(k-1)].eta(k,l): + !! HydroParam%P = 0.d0 + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! + !! !xx. Compute Inner Iteration Newton Method's Residual for each iElem: + !! ! %F == V1(eta(k,m)) + [T - Q(k-1)].eta(k,m) - d(k-1) + !! Do iElem = 1, MeshParam%nElem + !! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! HydroParam%F(iElem) = HydroParam%Vol(iElem) - HydroParam%Aeta(iElem) - HydroParam%d(iElem) + !! EndDo + !! + !! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !! !Print*, 'iNewton = ',iNewton , 'res = ',res + !! If ( res < 1e-8 ) Then + !! continue + !! exit + !! EndIf + !! + !! !xx. + !! Do iElem = 1, MeshParam%nElem + !! Call SoilSaturation(HydroParam%etam(iElem),iElem,HydroParam,MeshParam) + !! Call MatrixPQV(HydroParam%etam(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! HydroParam%F(iElem) = HydroParam%P(iElem)*HydroParam%etam(iElem) - HydroParam%Vol(iElem) + HydroParam%d(iElem) + !! EndDo + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! HydroParam%F = HydroParam%Aeta - HydroParam%F + !! ! + !! !HydroParam%P = 0.d0 + !! !Do iElem = 1, MeshParam%nElem + !! ! !xx. Calculate %Vol == V1(eta): + !! ! ! V1(k, l-1), P(k,l-1): + !! ! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! ! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! ! !! smallF = d(k-1) - V1(k,l-1) - P(k,l-1).eta(k,l-1): + !! ! !HydroParam%SmallF(iElem) = HydroParam%d(iElem) - HydroParam%Vol(iElem) + HydroParam%P(iElem)*HydroParam%eta(iElem) + !! ! ! + !! ! !eta(k,l) = eta(k,l-1) - Deta + !! ! HydroParam%eta(iElem) = HydroParam%eta(iElem) - HydroParam%Deta(iElem) + !! !EndDo + !! ! + !! !!!xx. Calculate %Aeta == [P(k,l-1) + T - Q(k-1)].eta(k,l): + !! !!Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! ! + !! !!xx. Calculate %Aeta == [T - Q(k-1)].eta(k,l): + !! !HydroParam%P = 0.d0 + !! !Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! !Do iElem = 1, MeshParam%nElem + !! ! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! ! Call MatrixPQV(HydroParam%eta(iElem),Qaux,HydroParam%Vol(iElem),V2aux,iElem,HydroParam,MeshParam) + !! ! HydroParam%F(iElem) = HydroParam%Vol(iElem)- HydroParam%Aeta(iElem) - HydroParam%d(iElem) + !! !EndDo + !! !!xx. Compute Inner Iteration Newton Method's Residual for each iElem: + !! !! F = [P(k,l-1) + T - Q(k-1)].eta(k,l) - d(k-1) + V1(k,l-1) +P(k,l-1).eta(k,l-1) + !! !HydroParam%F = HydroParam%Aeta - HydroParam%SmallF + !! ! + !! !res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !! !!Print*, 'iNewton = ',iNewton , 'res = ',res + !! !If ( res < 1e-8 ) Then + !! ! continue + !! ! exit + !! !EndIf + !! EndDo + ! + !EndDo + ! + ! + ! + ! + !!! 8.2 Newton Loop for Non-Linear Wet- and Dry-ing Algorithm [2] + !!HydroParam%etan = HydroParam%eta + !!!HydroParam%eta = HydroParam%eta + HydroParam%etaplus + !!Do iNewton = 1,400 + !! ! 8.2.1 Assemble Matrices F (System Matrix - Newton Method) and P (Derivative Matrix) + !! HydroParam%P = 0. + !! HydroParam%F = 0. + !! Call MatOp(HydroParam%eta,HydroParam%Aeta,dt,HydroParam,MeshParam) + !! !Call Volume(HydroParam,MeshParam) + !! + !! Do iElem = 1, MeshParam%nElem + !! !8.2.2 Volume with Eta at tn+1: + !! !Note that this point the volume is calculate without %etaplus term (source/sink), its considered in previous + !! !time-step's %Vol(just before item 8) + !! Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + !! HydroParam%Vol(iElem) = 0.d0 + !! If (V(HydroParam%eta(iElem),HydroParam%hb(iElem)) > 0) Then + !! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(HydroParam%eta(iElem) - HydroParam%hb(iElem)) + !! If (HydroParam%DZsi(HydroParam%Smallms(iElem),iElem) > 0) Then + !! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + !! EndIf + !! ElseIf (V(HydroParam%eta(iElem),HydroParam%sb(iElem)) > 0) Then + !! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + !! !HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(V(HydroParam%eta(iElem),HydroParam%sb(iElem)))*MeshParam%ei(HydroParam%Smallms(iElem),iElem)*MeshParam%Si(HydroParam%Smallms(iElem),iElem) + !! EndIf + !! + !! !8.2.3 Compute Newton Method's Residue for each iElem: + !! !In this point, MatOp Output = (T-Matrix)Eta + !! !We want F = 0 condition satisfied: V(nt+1) + T*n(t+1) = rhs :: F = V(n(t+1)) + T*n(t+1) - rhs -> 0 + !! HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + !! + !! !8.2.4 Fill P values in dry cell for CGOp computation: + !! !dF/dn = A*dn/dn + T, we want dF/dn = 0. + !! !HydroP = A*dn/dn, if cell is dry dn/dn = 0, else dn/dn = 1 + !! HydroParam%P(iElem) = MeshParam%Area(iElem)*dV(HydroParam%eta(iElem),HydroParam%sb(iElem)) + !! If(V(HydroParam%eta(iElem),HydroParam%hb(iElem)) < HydroParam%PCRI+NearZero .and. V(HydroParam%eta(iElem),HydroParam%sb(iElem)) > HydroParam%PCRI+NearZero ) Then + !! ilayer = 0 + !! Flaglayer = 0 + !! Do While (Flaglayer == 0) + !! ilayer = ilayer + 1 + !! If(HydroParam%Ze(iLayer,iElem) < HydroParam%eta(iElem)) Then + !! continue + !! Else + !! Flaglayer = 1 + !! endif + !! end do + !! HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(ilayer,iElem)*MeshParam%Si(ilayer,iElem) + !! Else + !! HydroParam%P(iElem) = MeshParam%Area(iElem) + !! EndIf + !! + !! If (V(HydroParam%eta(iElem),HydroParam%sb(iElem)) < HydroParam%PCRI+NearZero) Then + !! ! The Cell is Dry. The Solution is V(eta^(n+1)) = V(eta^(n)) + !! HydroParam%P(iElem) = MeshParam%Area(iElem) ! We can't allow the row to have zeros in all elements - If P = 1, the water level remains the same + !! EndIf + !! + !! EndDo + !! + !! !Do iElem = 1,MeshParam%nElem + !! ! !In this point, MatOp Output = (T-Matrix)Eta + !! ! !We want F = 0 condition satisfied: V(nt+1) + T*n(t+1) = rhs :: F = V(n(t+1)) + T*n(t+1) - rhs -> 0 + !! ! HydroParam%F(iElem) = HydroParam%Vol(iElem) + HydroParam%Aeta(iElem) - HydroParam%rhs(iElem) + !! !EndDo + !! ! + !! !!!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iElem,sumH) + !! !Do iElem = 1, MeshParam%nElem + !! ! !dF/dn = A*dn/dn + T, we want dF/dn = 0. + !! ! !HydroP = A*dn/dn, if cell is dry dn/dn = 0, else dn/dn = 1: + !! ! HydroParam%P(iElem) = MeshParam%Area(iElem)*dV(HydroParam%eta(iElem),HydroParam%sb(iElem)) + !! ! sumH = Sum( HydroParam%H(MeshParam%Edge(:,iElem)) ) + !! ! If (V(HydroParam%eta(iElem),HydroParam%sb(iElem)) < HydroParam%PCRI+NearZero) Then + !! ! ! The Cell is Dry. The Solution is V(eta^(n+1)) = V(eta^(n)) + !! ! HydroParam%P(iElem) = MeshParam%Area(iElem) ! We can't allow the row to have zeros in all elements - If P = 1, the water level remains the same + !! ! EndIf + !! !EndDo + !! !!!$OMP end parallel do + !! + !! res = sqrt(sum(HydroParam%F**2)) ! Residual of the Method + !! !Print*, 'iNewton = ',iNewton , 'res = ',res + !! If ( res < 1e-8 ) Then + !! continue + !! exit + !! EndIf + !! ! 8.2.5 Compute the New Free-Surface Elevation + !! !CGOp is used to minimize F value :: F = V(n(t+1)) + T*n(t+1) - rhs == 0 + !! Call CGOp(HydroParam%F,HydroParam%Deta,dt,HydroParam,MeshParam) + !! !$OMP parallel do default(none) shared(HydroParam,MeshParam) private(iElem) + !! Do iElem = 1, MeshParam%nElem + !! HydroParam%eta(iElem) = HydroParam%eta(iElem) - HydroParam%Deta(iElem) + !! EndDo + !! !$OMP end parallel do + !!EndDo + !! + ! + +! +! Subroutine MatrixPQV(eta,Q,V1,V2,iElem,HydroParam,MeshParam) +! +! Use Hydrodynamic +! Use MeshVars +! +! Implicit None +! Integer:: iElem,iLayer,PscritFlag +! Real:: eta,V1,V2,Q,PsiCrit,mParam +! Real:: NearZero = 1e-10 +! Real:: dt +! type(MeshGridParam) :: MeshParam +! type(HydrodynamicParam) :: HydroParam +! +! V1 = 0.d0 +! V2 = 0.d0 +! iLayer = 0 +! PscritFlag = 0 +! If(MeshParam%iSaturation == 1) Then !Only Superficial Flow or Darcy's Model, in both Psicrit = hb(iElem) +! ! Darcy's Model the soil complete satured (eta above some soil) or not. +! ! If no has soil's layers (only surface flow) the %ei == 1.d0, that is implies that: P == A to dry/wet, Q == 0 to wet/dry; +! ! DZsi == 0.d0 -> V1 == %Vol, and V2 == 0.d0 +! HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem) +! V1 = MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) +! If(eta > HydroParam%hb(iElem)) Then +! Q = MeshParam%Area(iElem)*(MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem) - 1) +! V1 = V1 + HydroParam%P(iElem)*(eta-Psicrit) +! V2 = V1 - MeshParam%Area(iElem)*(eta - HydroParam%hb(iElem) + Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem))) +! EndIf +! ElseIf(MeshParam%iSaturation == 2) Then ! Brooks and Corey's Model +! ! Brooks and Corey's Pscrit (Point of maximum of saturation curve) is hb - 1/alpha: +! !PsiCrit = HydroParam%hb(iElem) - 1/MeshParam%alpha(HydroParam%ElCapitalMs(iElem),iElem) !set alpha constant in iElem +! PsiCrit = HydroParam%hb(iElem) +! If(eta <= PsiCrit) Then +! Do While (PscritFlag == 0) +! iLayer = iLayer + 1 +! If (eta > HydroParam%Ze(iLayer+1,iElem)) Then +! HydroParam%P(iElem) = HydroParam%P(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)/((HydroParam%Zb(iLayer,iElem) - eta)*(1 + MeshParam%nSoil(iLayer,iElem)))*MeshParam%alpha(iLayer,iElem)**2 +! Else +! ! Find PsiCrit Layer: +! PscritFlag = 1 +! !HydroParam%P(iElem) = HydroParam%P(iElem) + (HydroParam%Ze(iLayer,iElem)-PsiCrit)*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)/((HydroParam%Ze(iLayer,iElem)-PsiCrit)*0.5*(1 + MeshParam%nSoil(iLayer,iElem)))*MeshParam%alpha(iLayer,iElem)**2 +! HydroParam%P(iElem) = HydroParam%P(iElem) + (eta - HydroParam%Ze(iLayer,iElem))*MeshParam%ei(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)/((HydroParam%Ze(iLayer,iElem)-eta)*0.5*(1 + MeshParam%nSoil(iLayer,iElem)))*MeshParam%alpha(iLayer,iElem)**2 +! EndIf +! EndDo +! HydroParam%P(iElem) = MeshParam%Area(iElem)*HydroParam%P(iElem) +! !HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem) +! V1 = MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) +! V2 = 0.d0 +! Else +! !HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem) +! HydroParam%P(iElem) = MeshParam%Area(iElem) +! Q = HydroParam%P(iElem) - MeshParam%Area(iElem) +! V1 = MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*(eta-Psicrit)) +! V2 = V1 - MeshParam%Area(iElem)*(eta - HydroParam%hb(iElem) + Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem))) +! EndIf +! Else !Van Genutchen's Model +! !check if pscrit is near hb(iElem), casulli set hb but the maximum of saturation curve in van genu model is given in [6] +! mParam = (1-1/MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem)) +! !PsiCrit = HydroParam%hb(iElem) - (MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem) - 1)**(1/MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem))/(MeshParam%alpha(HydroParam%ElCapitalMs(iElem),iElem)*MeshParam%nSoil(HydroParam%ElCapitalMs(iElem),iElem)) +! PsiCrit = HydroParam%hb(iElem) +! V1 = MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) +! If(eta <= PsiCrit) Then +! Do While (PscritFlag == 0) +! iLayer = iLayer + 1 +! If (eta > HydroParam%Ze(iLayer+1,iElem)) Then +! HydroParam%P(iElem) = HydroParam%P(iElem) + HydroParam%DZsi(iLayer,iElem)*MeshParam%alpha(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)*mPAram*abs(MeshParam%alpha(iLayer,iElem)*(HydroParam%Zb(iLayer,iElem) - eta))**(MeshParam%nSoil(iLayer,iElem)-1)/(MeshParam%alpha(iLayer,iElem)*abs(HydroParam%Zb(iLayer,iElem) - eta)**(MeshParam%nSoil(iLayer,iElem)) + 1)**(mParam + 1) +! Else +! ! Find PsiCrit Layer: +! PscritFlag = 1 +! HydroParam%P(iElem) = HydroParam%P(iElem) + (PsiCrit-HydroParam%Ze(iLayer,iElem))*MeshParam%alpha(iLayer,iElem)*MeshParam%nSoil(iLayer,iElem)*mPAram*abs(MeshParam%alpha(iLayer,iElem)*((HydroParam%Ze(iLayer,iElem)-PsiCrit)*0.5))**(MeshParam%nSoil(iLayer,iElem)-1)/(MeshParam%alpha(iLayer,iElem)*abs((HydroParam%Ze(iLayer,iElem)-PsiCrit)*0.5)**(MeshParam%nSoil(iLayer,iElem)) + 1)**(mParam + 1) +! EndIf +! EndDo +! HydroParam%P(iElem) = MeshParam%Area(iElem)*HydroParam%P(iElem) +! Else +! !HydroParam%P(iElem) = MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem) +! HydroParam%P(iElem) = MeshParam%Area(iElem) +! Q = HydroParam%P(iElem) - MeshParam%Area(iElem) +! V1 = V1 + MeshParam%Area(iElem)*MeshParam%ei(HydroParam%ElCapitalMs(iElem),iElem)*(eta-Psicrit) +! V2 = V1 - MeshParam%Area(iElem)*(eta - HydroParam%hb(iElem) + Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem))) +! EndIf +! EndIf +!Return +!End Subroutine MatrixPQV diff --git a/Tension.f90 b/Tension.f90 index ba61dee..a538591 100644 --- a/Tension.f90 +++ b/Tension.f90 @@ -28,7 +28,13 @@ Subroutine Tension(SurfTensionFlag,BottomTensionFlag,iEdge,kSurf,kBottom,g,ub,vb ! 2. Shear stress in the bottom If (BottomTensionFlag==0) Then - GammaB = (g*(ub**2.+vb**2.)**0.5)/(Chezy**2.) + + If (Chezy > 0) Then + GammaB = (g*(ub**2.+vb**2.)**0.5)/(Chezy**2.) + Else + GammaB = 0.d0 + EndIf + EndIf diff --git a/Turbulence.f90 b/Turbulence.f90 index ac775ab..fe76bb4 100644 --- a/Turbulence.f90 +++ b/Turbulence.f90 @@ -44,6 +44,11 @@ Subroutine Turbulence(HydroParam,MeshParam,MeteoParam,dt) type(HydrodynamicParam) :: HydroParam type(MeteorologicalParam) :: MeteoParam + + ! Note: HydroParam%DZit == HydroParam%DZhit, in subsurface coupled case DZhit is equivalent to Surface Water thickness in cell + ! in only surface case the DZhit = DZit. + ! Same case for HydroParm%DZj == HydroParam%DZhj, with DZhj for Edge. + ! 1. Define the Cell centered Horizontal Eddy-Viscosity: If (HydroParam%iHTurb == 0) Then ! User-defined Horizontal Diffusion !!$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iLayer,iElem) @@ -111,13 +116,13 @@ Subroutine Turbulence(HydroParam,MeshParam,MeteoParam,dt) HydroParam%VerEddyDiff(iLayer,iEdge) = 0. Else !Intermediary (k-1/2) or Surface layer (M-1/2) If (r == 0) Then - drhodz = (HydroParam%sDRhoW(iLayer,l)-HydroParam%sDRhoW(iLayer-1,l))/((HydroParam%DZj(iLayer,iEdge)+HydroParam%DZj(iLayer-1,iEdge))/2.) + drhodz = (HydroParam%sDRhoW(iLayer,l)-HydroParam%sDRhoW(iLayer-1,l))/((HydroParam%DZhj(iLayer,iEdge)+HydroParam%DZhj(iLayer-1,iEdge))/2.) Else - drhodz = (0.5*(HydroParam%sDRhoW(iLayer,l)+HydroParam%sDRhoW(iLayer,r))-0.5*(HydroParam%sDRhoW(iLayer-1,l)+HydroParam%sDRhoW(iLayer-1,r)))/((HydroParam%DZj(iLayer,iEdge)+HydroParam%DZj(iLayer-1,iEdge))/2.) + drhodz = (0.5*(HydroParam%sDRhoW(iLayer,l)+HydroParam%sDRhoW(iLayer,r))-0.5*(HydroParam%sDRhoW(iLayer-1,l)+HydroParam%sDRhoW(iLayer-1,r)))/((HydroParam%DZhj(iLayer,iEdge)+HydroParam%DZhj(iLayer-1,iEdge))/2.) EndIf bvf = -HydroParam%G*(drhodz/HydroParam%rho0+HydroParam%G/1.5e3**2.) - dundz = (HydroParam%uxy(iLayer,1,iEdge)-HydroParam%uxy(iLayer-1,1,iEdge))/((HydroParam%DZj(iLayer,iEdge)+HydroParam%DZj(iLayer-1,iEdge))/2.) - dutdz = (HydroParam%uxy(iLayer,2,iEdge)-HydroParam%uxy(iLayer-1,2,iEdge))/((HydroParam%DZj(iLayer,iEdge)+HydroParam%DZj(iLayer-1,iEdge))/2.) + dundz = (HydroParam%uxy(iLayer,1,iEdge)-HydroParam%uxy(iLayer-1,1,iEdge))/((HydroParam%DZhj(iLayer,iEdge)+HydroParam%DZhj(iLayer-1,iEdge))/2.) + dutdz = (HydroParam%uxy(iLayer,2,iEdge)-HydroParam%uxy(iLayer-1,2,iEdge))/((HydroParam%DZhj(iLayer,iEdge)+HydroParam%DZhj(iLayer-1,iEdge))/2.) shear2 = dundz**2. + dutdz**2. shear2 = max(shear2,1.0d-10) rich = max(bvf/shear2,0.0d0) @@ -239,7 +244,7 @@ Subroutine TwoEq_KC(HydroParam,MeshParam,MeteoParam,dt) Cycle Else Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) - 1 - dzp = 0.5*( HydroParam%Dzit(iLayer+1,iElem) + HydroParam%Dzit(iLayer,iElem) ) + dzp = 0.5*( HydroParam%DZhit(iLayer+1,iElem) + HydroParam%DZhit(iLayer,iElem) ) RhoAv = 0.5*( HydroParam%sDRhoW(iLayer+1,iElem) + HydroParam%sDRhoW(iLayer,iElem) ) !+ 1000. drhodz = ( HydroParam%sDRhoW(iLayer+1,iElem) - HydroParam%sDRhoW(iLayer,iElem) )/dzp ShearSq = ( (HydroParam%ub(iLayer+1,1,iElem) - HydroParam%ub(iLayer,1,iElem))/dzp )**2. + ( (HydroParam%ub(iLayer+1,2,iElem) - HydroParam%ub(iLayer,2,iElem))/dzp )**2. @@ -278,7 +283,7 @@ Subroutine TwoEq_KC(HydroParam,MeshParam,MeteoParam,dt) End If ! Bidimensional Cell ! 2.3 Correction for Shallow Surface Elements ! Obs.: This is how SI3D does it. I don't agree with this. Need to double check! - If ( HydroParam%Dzit(HydroParam%ElCapitalM(iElem),iElem) < 1.E-2 ) Then + If ( HydroParam%DZhit(HydroParam%ElCapitalM(iElem),iElem) < 1.E-2 ) Then HydroParam%VerEddyViscCell(HydroParam%ElCapitalM(iElem),iElem) = Max(HydroParam%VerEddyViscCell(HydroParam%ElCapitalM(iElem),iElem),1.E-4) HydroParam%VerEddyDiffCell(HydroParam%ElCapitalM(iElem),iElem) = Max(HydroParam%VerEddyDiffCell(HydroParam%ElCapitalM(iElem),iElem),1.E-4) Else @@ -367,7 +372,7 @@ Subroutine SolveTKE_LengthScale(HydroParam,MeshParam,MeteoParam,dt,q2pp,q2lpp,q2 ! 2. Compute the Array of Vertical Distances from the Bottom of the Water Column to the Top of each layer zfromb0 = 0. Do iLayer = HydroParam%ElSmallm(iElem) + 1, HydroParam%ElCapitalM(iElem) - zfromb0 = zfromb0 + HydroParam%Dzit(iLayer,iElem) + zfromb0 = zfromb0 + HydroParam%DZhit(iLayer,iElem) zfromb(iLayer) = zfromb0 End Do ! Layer Loop zfromb(HydroParam%ElSmallm(iElem)) = 0. @@ -376,7 +381,7 @@ Subroutine SolveTKE_LengthScale(HydroParam,MeshParam,MeteoParam,dt,q2pp,q2lpp,q2 ! 3. Compute the Array of Vertical Distances from the Top of the Water Column to the Top of each layer zfromt0 = 0. Do iLayer = HydroParam%ElCapitalM(iElem), HydroParam%ElSmallm(iElem) + 1, -1 - zfromt0 = zfromt0 + HydroParam%Dzit(iLayer-1,iElem) + zfromt0 = zfromt0 + HydroParam%DZhit(iLayer-1,iElem) zfromt(iLayer) = zfromt0 End Do ! Layer Loop zfromt(HydroParam%ElSmallm(iElem)) = V(HydroParam%etan(iElem),HydroParam%hb(iElem)) @@ -390,7 +395,7 @@ Subroutine SolveTKE_LengthScale(HydroParam,MeshParam,MeteoParam,dt,q2pp,q2lpp,q2 ! 5. Compute Shear and Buoyancy source Terms Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) - 1 ! ----- Density Gradients ----- - dzp = 0.5*( HydroParam%Dzit(iLayer+1,iElem) + HydroParam%Dzit(iLayer,iElem) ) + dzp = 0.5*( HydroParam%DZhit(iLayer+1,iElem) + HydroParam%DZhit(iLayer,iElem) ) RhoAv = 0.5*( HydroParam%sDRhoW(iLayer+1,iElem) + HydroParam%sDRhoW(iLayer,iElem) ) !+ 1000. drhodz = ( HydroParam%sDRhoW(iLayer+1,iElem) - HydroParam%sDRhoW(iLayer,iElem) )/dzp ShearSq = ( (HydroParam%ub(iLayer+1,1,iElem) - HydroParam%ub(iLayer,1,iElem))/dzp )**2. + ( (HydroParam%ub(iLayer+1,2,iElem) - HydroParam%ub(iLayer,2,iElem))/dzp )**2. @@ -410,11 +415,11 @@ Subroutine SolveTKE_LengthScale(HydroParam,MeshParam,MeteoParam,dt,q2pp,q2lpp,q2 ! 7. Form Tridiagonal Matrix ! ----- Define Upper Diagonal Terms ----- aaTh(3,HydroParam%ElSmallm(iElem)) = 0. - aaTh(3,HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem)) = -dCoeff(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem))/( HydroParam%Dzi(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem),iElem)*0.5*( HydroParam%Dzit(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem),iElem) + HydroParam%Dzit(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem)-1,iElem) ) ) + aaTh(3,HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem)) = -dCoeff(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem))/( HydroParam%Dzi(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem),iElem)*0.5*( HydroParam%DZhit(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem),iElem) + HydroParam%DZhit(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem)-1,iElem) ) ) aaTh(3,HydroParam%ElCapitalM(iElem)+1) = 0. ! ----- Define Lower Diagonal Terms ----- aaTh(1,HydroParam%ElSmallm(iElem)) = 0. - aaTh(1,HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem)) = -dCoeff(HydroParam%ElSmallm(iElem)+2:HydroParam%ElCapitalM(iElem)+1)/( HydroParam%DZit(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem)-1,iElem)*0.5*( HydroParam%Dzit(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem),iElem) + HydroParam%Dzit(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem)-1,iElem) ) ) + aaTh(1,HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem)) = -dCoeff(HydroParam%ElSmallm(iElem)+2:HydroParam%ElCapitalM(iElem)+1)/( HydroParam%DZhit(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem)-1,iElem)*0.5*( HydroParam%DZhit(HydroParam%ElSmallm(iElem)+1:HydroParam%ElCapitalM(iElem),iElem) + HydroParam%DZhit(HydroParam%ElSmallm(iElem):HydroParam%ElCapitalM(iElem)-1,iElem) ) ) aaTh(1,HydroParam%ElCapitalM(iElem)+1) = 0. ! ----- Define Main Diagonal Terms ----- aaTh(2,HydroParam%ElSmallm(iElem)) = 3./(2.*dt) diff --git a/VTKOutput.f90 b/VTKOutput.f90 index 2ac2226..1a0fb62 100644 --- a/VTKOutput.f90 +++ b/VTKOutput.f90 @@ -25,7 +25,7 @@ Subroutine VTKOutput(simParam,HydroParam,MeshParam,LimnoParam) Implicit None Integer:: iNode, iElem, iLayer Integer:: k, Sum, bb, gg, mm, zz, ben - Integer:: TotNumberOfPoints, nElem3D + Integer:: TotNumberOfPoints, nElem3D, satLayers Real:: Vel(2), lw(2),DIR_VENTO,FF Real:: V Real:: idate(6) @@ -87,6 +87,14 @@ Subroutine VTKOutput(simParam,HydroParam,MeshParam,LimnoParam) MeshParam%zPoint(MeshParam%Quadri(2,iElem)+iLayer*MeshParam%nPoint+1) = HydroParam%Ze(MeshParam%Kmax-iLayer+1,iElem) !LIMCAMAUX(iLayer) MeshParam%zPoint(MeshParam%Quadri(3,iElem)+iLayer*MeshParam%nPoint+1) = HydroParam%Ze(MeshParam%Kmax-iLayer+1,iElem) !LIMCAMAUX(iLayer) MeshParam%zPoint(MeshParam%Quadri(4,iElem)+iLayer*MeshParam%nPoint+1) = HydroParam%Ze(MeshParam%Kmax-iLayer+1,iElem) !LIMCAMAUX(iLayer) + + If (iLayer == MeshParam%KMax .and. HydroParam%Ze(MeshParam%Kmax-iLayer+2,iElem) > HydroParam%eta(iElem)) Then + MeshParam%zPoint(MeshParam%Quadri(1,iElem)+(iLayer-1)*MeshParam%nPoint+1) = HydroParam%eta(iElem) !LIMCAMAUX(iLayer) + MeshParam%zPoint(MeshParam%Quadri(2,iElem)+(iLayer-1)*MeshParam%nPoint+1) = HydroParam%eta(iElem) !LIMCAMAUX(iLayer) + MeshParam%zPoint(MeshParam%Quadri(3,iElem)+(iLayer-1)*MeshParam%nPoint+1) = HydroParam%eta(iElem) !LIMCAMAUX(iLayer) + MeshParam%zPoint(MeshParam%Quadri(4,iElem)+(iLayer-1)*MeshParam%nPoint+1) = HydroParam%eta(iElem) !LIMCAMAUX(iLayer) + EndIf + EndDo EndDo @@ -118,16 +126,27 @@ Subroutine VTKOutput(simParam,HydroParam,MeshParam,LimnoParam) ! 5. Saves the data variables related to geometric mesh ! 5.1 Velocity Vector If (simParam%OutputHydro(1)==1) Then - Do iElem = 1,MeshParam%nElem - Do iLayer = 1,MeshParam%KMax - HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,1) = HydroParam%ub(iLayer,1,iElem) - HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,2) = HydroParam%ub(iLayer,2,iElem) - HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,3) = HydroParam%ub(iLayer,3,iElem) + !Subsurface case: + If (MeshParam%iBedrock == 1) Then + Do iElem = 1,MeshParam%nElem + Do iLayer = 1,MeshParam%KMax + HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,1) = HydroParam%ubsub(iLayer,1,iElem) + HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,2) = HydroParam%ubsub(iLayer,2,iElem) + HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,3) = HydroParam%ubsub(iLayer,3,iElem) + EndDo EndDo - EndDo + Else + !Superficial case: + Do iElem = 1,MeshParam%nElem + Do iLayer = 1,MeshParam%KMax + HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,1) = HydroParam%ub(iLayer,1,iElem) + HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,2) = HydroParam%ub(iLayer,2,iElem) + HydroParam%SVector(iElem + (iLayer-1)*MeshParam%nElem,3) = HydroParam%ub(iLayer,3,iElem) + EndDo + EndDo + EndIf E_IO = VTK_VAR('vect',MeshParam%nElem*MeshParam%KMax,'VelocityField',HydroParam%SVector(:,1),HydroParam%SVector(:,2),HydroParam%SVector(:,3)) EndIf - ! 5.2 Surface Water Elevation If (simParam%OutputHydro(2)==1) Then Do iElem = 1,MeshParam%nElem @@ -142,11 +161,28 @@ Subroutine VTKOutput(simParam,HydroParam,MeshParam,LimnoParam) If (simParam%OutputHydro(3)==1) Then Do iElem = 1,MeshParam%nElem Do iLayer = 1,MeshParam%KMax - HydroParam%SScalar(iElem + (iLayer-1)*MeshParam%nElem) = V(HydroParam%eta(iElem),HydroParam%hb(iElem)) + !HydroParam%SScalar(iElem + (iLayer-1)*MeshParam%nElem) = V(HydroParam%eta(iElem),HydroParam%hb(iElem)) + HydroParam%SScalar(iElem + (iLayer-1)*MeshParam%nElem) = V(HydroParam%eta(iElem),HydroParam%sb(iElem)) EndDo EndDo E_IO = VTK_VAR(MeshParam%nElem*MeshParam%KMax,'Depth',HydroParam%SScalar) EndIf + + !! x.x Saturation + !Do iElem = 1,MeshParam%nElem + ! If (MeshParam%Kmax > 1) Then + ! satLayers = MeshParam%Kmax + ! Do iLayer = 1,MeshParam%KMax + ! HydroParam%SScalarSaturation(iElem + (iLayer-1)*MeshParam%nElem) = MeshParam%Si(iLayer,iElem) + ! EndDo + ! Else + ! satLayers = MeshParam%subfactor + ! Do iLayer = 1,MeshParam%subfactor + ! HydroParam%SScalarSaturation(iElem + (iLayer-1)*MeshParam%nElem) = MeshParam%Si(iLayer,iElem) + ! EndDo + ! EndIf + !EndDo + !E_IO = VTK_VAR(MeshParam%nElem*satLayers,'Saturation',HydroParam%SScalarSaturation) ! 5.4 NonHydrostatic Pressure Do iElem = 1,MeshParam%nElem diff --git a/Velocities.f90 b/Velocities.f90 index 82fdfad..dc3410a 100644 --- a/Velocities.f90 +++ b/Velocities.f90 @@ -54,21 +54,13 @@ Subroutine Velocities(HydroParam,MeshParam) Face = MeshParam%Edge(iEdge,iElem) l = MeshParam%Left(Face) r = MeshParam%Right(Face) - if (Face==877) then - continue - endif if (r==0) then small = HydroParam%Smallm(iEdge) else small = min(HydroParam%ElSmallm(l),HydroParam%ElSmallm(r)) endif - if (iElem==1160.or.iElem==1163) then - continue - endif - - Do iLayer = small, HydroParam%ElCapitalM(iElem) !small med=0.5d0 @@ -390,10 +382,9 @@ Subroutine Velocities(HydroParam,MeshParam) aa(2)=signa(MeshParam%xNode(n2),MeshParam%xNode(n3),MeshParam%xb(iElem),MeshParam%yNode(n2),MeshParam%yNode(n3),MeshParam%yb(iElem)) aa(3)=signa(MeshParam%xNode(n3),MeshParam%xNode(n4),MeshParam%xb(iElem),MeshParam%yNode(n3),MeshParam%yNode(n4),MeshParam%yb(iElem)) aa(4)=signa(MeshParam%xNode(n4),MeshParam%xNode(n1),MeshParam%xb(iElem),MeshParam%yNode(n4),MeshParam%yNode(n1),MeshParam%yb(iElem)) + Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) - If (iElem==293.and.iLayer==1) Then - Continue - EndIf + aa(5)=0.d0 aaU=0.d0 aaV=0.d0 @@ -444,7 +435,7 @@ Subroutine Velocities(HydroParam,MeshParam) ! 2. Finding Face-centered Vertical velocity components Do iEdge=1,MeshParam%nEdge l = MeshParam%Left(iEdge) - r = MeshParam%Right(iEdge) + r = MeshParam%Right(iEdge) if (r==0) then HydroParam%wfc(:,iEdge)= HydroParam%ub(:,3,l) else @@ -472,9 +463,7 @@ Subroutine Velocities(HydroParam,MeshParam) HydroParam%uxyL(HydroParam%ElSmallm(iElem),2,iElem) = HydroParam%ub(HydroParam%ElSmallm(iElem),2,iElem) !HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,1,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem) !HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,2,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem) - if (iElem==39) then - continue - endif + Do iLayer = HydroParam%ElSmallm(iElem)+1, HydroParam%ElCapitalM(iElem) HydroParam%uxyL(iLayer,1,iElem) = HydroParam%ub(iLayer-1,1,iElem)+((HydroParam%Zb(iLayer,iElem)-HydroParam%Ze(iLayer,iElem))*((HydroParam%ub(iLayer,1,iElem)-HydroParam%ub(iLayer-1,1,iElem))/(HydroParam%Zb(iLayer,iElem)-HydroParam%Zb(iLayer-1,iElem)))) HydroParam%uxyL(iLayer,2,iElem) = HydroParam%ub(iLayer-1,2,iElem)+((HydroParam%Zb(iLayer,iElem)-HydroParam%Ze(iLayer,iElem))*((HydroParam%ub(iLayer,2,iElem)-HydroParam%ub(iLayer-1,2,iElem))/(HydroParam%Zb(iLayer,iElem)-HydroParam%Zb(iLayer-1,iElem)))) @@ -494,6 +483,16 @@ Subroutine Velocities(HydroParam,MeshParam) Do iEdge=1,MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) + + !bench 02: + if ( 100-NearZero <= MeshParam%EdgeBary(1,iEdge)<= 100 + NearZero) then + if (MeshParam%EdgeBary(2,iEdge) >= 110 - NearZero) then + r = 0 + elseif(MeshParam%EdgeBary(2,iEdge) <= 90 + NearZero) then + r = 0 + endif + endif + !Bottom and top horizontal velocitys are iqual to cell center velocities - layer "k" is difined in the center of each cell !Bottom vertical Velocity is = 0, top layer vertical velocity is = w top layer velocity !if (r==0) then diff --git a/VelocitiesSUB.f90 b/VelocitiesSUB.f90 index 40b2c00..aca0b02 100644 --- a/VelocitiesSUB.f90 +++ b/VelocitiesSUB.f90 @@ -12,6 +12,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) Implicit none Integer:: r,l,iElem, Elem,iLayer,iEdge,iNode,Sig,Face,icountU, icountV, icountW,kin,j,cond, ncond, lockElem, small + Integer:: y1Elem,x1Elem,y2Elem,x2Elem,Facexin,Faceyin,neighElem Real ::weit, weitW,signa, weitU, weitV, med Real:: aa(5), aaU, aaV, lPoint(2), lArea,luNode(2,4), luEdge(2,4), z1, z2, z3, zp, UiQuad Integer:: lEdge(4), lTri(4),n1,n2,n3,n4,iel @@ -21,7 +22,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam !type(SimulationParam), intent(in) :: simParam - + Real:: error(MeshParam%Kmax,2,MeshParam%nEdge),uxyFv(MeshParam%Kmax,2,MeshParam%nEdge) ! 1. Finding horizontal velocity components in the edges !Do iElem = 1, nElem ! Do iLayer = ElSmallm(iElem), ElCapitalM(iElem) @@ -31,6 +32,20 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) ! EndDo ! EndDo + + HydroParam%uxyt = HydroParam%uxy + HydroParam%ubt = HydroParam%ub + HydroParam%uNodet = HydroParam%uNode + HydroParam%ugt = HydroParam%ug + HydroParam%vgt = HydroParam%vg + HydroParam%wgt = HydroParam%wg + HydroParam%ubVt = HydroParam%ubV + HydroParam%uxyLt = HydroParam%uxyL + HydroParam%wfct = HydroParam%wfc + + HydroParam%ubsub=0.d0 + HydroParam%uxysub=0.d0 + HydroParam%ubV=0.d0 HydroParam%uNode=0.d0 HydroParam%uxyL=0.d0 @@ -41,130 +56,178 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) HydroParam%wg=0.d0 HydroParam%uxy=0.d0 - DO iElem = 1, MeshParam%nElem + Do iElem = 1, MeshParam%nElem lockElem = 0 - !Do iEdge = 1, 4 - ! Face = MeshParam%Edge(iEdge,iElem) - ! if (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then - ! lockElem = 1 - ! endif - !enddo - Do iEdge = 1, 4 + Do iEdge = 1,4 Face = MeshParam%Edge(iEdge,iElem) l = MeshParam%Left(Face) r = MeshParam%Right(Face) - if (Face==877) then - continue - endif - - if (r==0) then - small = HydroParam%Smallms(iEdge) - else - small = min(HydroParam%ElSmallms(l),HydroParam%ElSmallms(r)) - endif - if (iElem==1160.or.iElem==1163) then - continue - endif - - + If (r==0) Then + !If r==0 the face no have neighbour, this implies that the lower layer with velocity is the Edge Smallms: + Small = HydroParam%Smallm(Face) + Else + !In this case, the lower layer with velocity is the min between Edge's elements + Small = min(HydroParam%ElSmallm(l),HydroParam%ElSmallm(r)) + EndIf - Do iLayer = small, HydroParam%ElCapitalM(iElem) !small + Do iLayer = Small, HydroParam%ElCapitalM(iElem) !Small med=0.5d0 - if (r/=0) then - if (HydroParam%ElSmallm(r)0) Then + ! HydroParam%uxy(iLayer,1,Face) = 0. + !Else + ! HydroParam%uxy(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! ElseIf(iEdge==2) Then + ! HydroParam%uxy(iLayer,1,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! HydroParam%uxy(iLayer,2,Face) = 0.d0 + ! Else + ! HydroParam%uxy(iLayer,2,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! ElseIf(iEdge==3) Then + ! HydroParam%uxy(iLayer,2,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! HydroParam%uxy(iLayer,1,Face) = 0.d0 + ! Else + ! HydroParam%uxy(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! Else + ! HydroParam%uxy(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! HydroParam%uxy(iLayer,2,Face) = 0.d0 + ! Else + ! HydroParam%uxy(iLayer,2,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! EndIf + + ! If(iEdge==1) Then + ! uxyFv(iLayer,2,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! uxyFv(iLayer,1,Face) = 0. + !Else + ! uxyFv(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! ElseIf(iEdge==2) Then + ! uxyFv(iLayer,1,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! uxyFv(iLayer,2,Face) = 0.d0 + ! Else + ! uxyFv(iLayer,2,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! ElseIf(iEdge==3) Then + ! uxyFv(iLayer,2,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! uxyFv(iLayer,1,Face) = 0.d0 + ! Else + ! uxyFv(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! Else + ! uxyFv(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,Face) + ! If (HydroParam%IndexInflowEdge(Face)>0) Then + ! uxyFv(iLayer,2,Face) = 0.d0 + ! Else + ! uxyFv(iLayer,2,Face) = -Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%utang(iLayer,Face) + ! EndIf + ! EndIf + + If (iEdge==1) Then !North Edge If (r == 0.or.lockElem==1) Then - if (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexWaterLevelEdge(Face)>0) Then HydroParam%uxy(iLayer,1,Face) = 0. ! - else - if (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then HydroParam%uxy(iLayer,1,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(4,iElem)) ) - else - HydroParam%uxy(iLayer,1,Face) = 0. ! - endif - endif + Else + HydroParam%uxy(iLayer,1,Face) = 0.0d0 ! + EndIf + EndIf Else Elem=MeshParam%Neighbor(1,iElem) - if (abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))>NearZero2) then UNORTE = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(2,Elem)),MeshParam%Left(MeshParam%Edge(2,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(2,Elem)) + Sig(Elem,MeshParam%Right(MeshParam%Edge(4,Elem)),MeshParam%Left(MeshParam%Edge(4,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(4,Elem)) ) - else + Else UNORTE = 0. ! med=1 - endif + EndIf - if (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then HydroParam%uxy(iLayer,1,Face) = med*(UNORTE + (0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(4,iElem)) ))) - else + Else HydroParam%uxy(iLayer,1,Face) = UNORTE ! - endif - + EndIf + EndIf ! Set particle's tangential velocity !uxy(iLayer,1,Face) = 0.25*( - Sig(iElem,Right(Edge(2,iElem)),Left(Edge(2,iElem)))*u(iLayer,Edge(2,iElem)) + 2.*UNORTE + Sig(iElem,Right(Edge(4,iElem)),Left(Edge(4,iElem)))*u(iLayer,Edge(4,iElem)) ) HydroParam%uxy(iLayer,2,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(1,iElem)) ElseIf (iEdge==2) then !West Edge If (r == 0.or.lockElem==1) Then - if (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexWaterLevelEdge(Face)>0) then HydroParam%uxy(iLayer,2,Face) = 0. ! - else - if (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then HydroParam%uxy(iLayer,2,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(1,iElem)) ) - else + Else HydroParam%uxy(iLayer,2,Face) = 0. ! - endif - endif + EndIf + EndIf Else Elem=MeshParam%Neighbor(2,iElem) - if (abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))>NearZero2) then VOESTE = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(3,Elem)),MeshParam%Left(MeshParam%Edge(3,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(3,Elem))+ Sig(Elem,MeshParam%Right(MeshParam%Edge(1,Elem)),MeshParam%Left(MeshParam%Edge(1,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(1,Elem)) ) - else + Else VOESTE = 0. ! med=1 - endif - - if (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then HydroParam%uxy(iLayer,2,Face) = med* (VOESTE +(0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(1,iElem)) ))) - else + Else HydroParam%uxy(iLayer,2,Face) = VOESTE ! - endif + EndIf EndIf ! Set particle's tangential velocity @@ -172,95 +235,95 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) !uxy(iLayer,2,Face) = 0.25*( - Sig(iElem,MeshParam%Right(Edge(3,iElem)),MeshParam%Left(Edge(3,iElem)))*u(iLayer,Edge(3,iElem)) + Sig(iElem,MeshParam%Right(Edge(1,iElem)),MeshParam%Left(Edge(1,iElem)))*u(iLayer,Edge(1,iElem)) + 2.*VOESTE ) ElseIf (iEdge==3) then !South Edge If (r == 0.or.lockElem==1) Then - if (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexWaterLevelEdge(Face)>0) then HydroParam%uxy(iLayer,1,Face) = 0. ! - else - if (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then HydroParam%uxy(iLayer,1,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(4,iElem)) ) - else + Else HydroParam%uxy(iLayer,1,Face) = 0. ! - endif - endif + EndIf + EndIf !USUL = 0.5*( - Sig(iElem,MeshParam%Right(Edge(2,iElem)),MeshParam%Left(Edge(2,iElem)))*u(iLayer,Edge(2,iElem)) + Sig(iElem,MeshParam%Right(Edge(4,iElem)),MeshParam%Left(Edge(4,iElem)))*u(iLayer,Edge(4,iElem)) ) Else - Elem=MeshParam%Neighbor(3,iElem) - if (abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(4,Elem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,Elem)))>NearZero2) then USUL = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(2,Elem)),MeshParam%Left(MeshParam%Edge(2,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(2,Elem)) + Sig(Elem,MeshParam%Right(MeshParam%Edge(4,Elem)),MeshParam%Left(MeshParam%Edge(4,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(4,Elem)) ) - else + Else USUL = 0. ! med=1 - endif - - if (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(4,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then HydroParam%uxy(iLayer,1,Face) = med*(USUL + (0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(4,iElem)) ))) - else + Else HydroParam%uxy(iLayer,1,Face) = USUL ! - endif - + EndIf + EndIf ! Set particle's tangential velocity !uxy(iLayer,1,Face) =0.25*( - Sig(iElem,MeshParam%Right(Edge(2,iElem)),MeshParam%Left(Edge(2,iElem)))*u(iLayer,Edge(2,iElem)) + 2.*USUL + Sig(iElem,MeshParam%Right(Edge(4,iElem)),MeshParam%Left(Edge(4,iElem)))*u(iLayer,Edge(4,iElem)) ) HydroParam%uxy(iLayer,2,Face) = - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(3,iElem)) Else !East Edge If (r == 0.or.lockElem==1) Then - if (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexWaterLevelEdge(Face)>0) Then HydroParam%uxy(iLayer,2,Face) = 0. ! - else - if (abs(HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs(HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs(HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) Then HydroParam%uxy(iLayer,2,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(1,iElem)) ) - else + Else HydroParam%uxy(iLayer,2,Face) = 0. ! - endif - endif + EndIf + EndIf !VLESTE = 0.5*( - Sig(iElem,MeshParam%Right(Edge(3,iElem)),MeshParam%Left(Edge(3,iElem)))*u(iLayer,Edge(3,iElem))+ Sig(iElem,MeshParam%Right(Edge(1,iElem)),MeshParam%Left(Edge(1,iElem)))*u(iLayer,Edge(1,iElem)) ) Else Elem=MeshParam%Neighbor(4,iElem) - if (abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(1,Elem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,Elem)))>NearZero2) Then VLESTE = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(3,Elem)),MeshParam%Left(MeshParam%Edge(3,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(3,Elem))+ Sig(Elem,MeshParam%Right(MeshParam%Edge(1,Elem)),MeshParam%Left(MeshParam%Edge(1,Elem)))*HydroParam%u(iLayer,MeshParam%Edge(1,Elem)) ) - else + Else VLESTE = 0. ! med=1 - endif - - if (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2 .and. abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then + ElseIf (abs (HydroParam%u(iLayer,MeshParam%Edge(1,iElem)))>NearZero2.and.abs (HydroParam%u(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) Then HydroParam%uxy(iLayer,2,Face) = med* (VLESTE +(0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(1,iElem)) ))) - else + Else HydroParam%uxy(iLayer,2,Face) = VLESTE ! - endif + EndIf EndIf ! Set particle's tangential velocity HydroParam%uxy(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%u(iLayer,MeshParam%Edge(4,iElem)) !uxy(iLayer,2,Face) = 0.25*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(Edge(3,iElem)))*u(iLayer,Edge(3,iElem)) + Sig(iElem,MeshParam%Right(Edge(1,iElem)),MeshParam%Left(Edge(1,iElem)))*u(iLayer,Edge(1,iElem)) + 2.*VLESTE ) EndIf - + !! EndDo - + ! ! 3.1 Copy Velocities Above the Free-Surface (du/dz=0) Do iLayer = HydroParam%ElCapitalM(iElem) + 1, MeshParam%KMAX HydroParam%uxy(iLayer,1,Face) = 0. !u(CapitalM(Face),Face) @@ -268,23 +331,397 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) !Fu(iLayer,Face) = 0. EndDo ! 3.2 Nullify Velocities Below the Bottom (u=0) - Do iLayer = 1, HydroParam%ElSmallm(iElem) - 1 + Do iLayer = 1, HydroParam%ElSmallms(iElem) - 1 HydroParam%uxy(iLayer,1,Face) = 0. !u(CapitalM(Face),Face) HydroParam%uxy(iLayer,2,Face) = 0. !Fu(iLayer,Face) = 0. EndDo + ! 3.1 Copy Velocities Above the Free-Surface (du/dz=0) + Do iLayer = HydroParam%ElCapitalM(iElem) + 1, MeshParam%KMAX + uxyFv(iLayer,1,Face) = 0. !u(CapitalM(Face),Face) + uxyFv(iLayer,2,Face) = 0. + !Fu(iLayer,Face) = 0. + EndDo + ! 3.2 Nullify Velocities Below the Bottom (u=0) + Do iLayer = 1, HydroParam%ElSmallms(iElem) - 1 + uxyFv(iLayer,1,Face) = 0. !u(CapitalM(Face),Face) + uxyFv(iLayer,2,Face) = 0. + !Fu(iLayer,Face) = 0. + EndDo + + !Do iLayer = HydroParam%ElSmallms(iElem), HydroParam%ElCapitalM(iElem) + ! error(iLayer,1,Face) = HydroParam%uxy(iLayer,1,Face) - uxyFv(iLayer,1,Face) + ! error(iLayer,2,Face) = HydroParam%uxy(iLayer,2,Face) - uxyFv(iLayer,2,Face) + ! EndDo + ! If subsurface flow occurs, uxysub are calculated: + If (MeshParam%iBedrock == 1) Then + + If (r==0) Then + !If r==0 the face no have neighbour, this implies that the lower layer with velocity is the Edge Smallms: + Small = HydroParam%Smallms(Face) + Else + !In this case, the lower layer with velocity is the min between Edge's elements + Small = min(HydroParam%ElSmallms(l),HydroParam%ElSmallms(r)) + EndIf + + Do iLayer = Small, HydroParam%ElCapitalM(iElem) !Small + med=0.5d0 + + If (r/=0) Then + !If Neighbour lower layer is above Elem layer, the lower Element layer is + If (HydroParam%ElSmallms(r)0.or.HydroParam%IndexInflowEdge(Face)>0) Then + HydroParam%uxysub(iLayer,1,Face) = 0. ! + Else + If (abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + HydroParam%uxysub(iLayer,1,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(4,iElem)) ) + Else + HydroParam%uxysub(iLayer,1,Face) = 0. ! + EndIf + EndIf + Else + Elem=MeshParam%Neighbor(1,iElem) + If (abs (HydroParam%um(iLayer,MeshParam%Edge(4,Elem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(2,Elem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(4,Elem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(2,Elem)))>NearZero2) then + UNORTE = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(2,Elem)),MeshParam%Left(MeshParam%Edge(2,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(2,Elem)) + Sig(Elem,MeshParam%Right(MeshParam%Edge(4,Elem)),MeshParam%Left(MeshParam%Edge(4,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(4,Elem)) ) + Else + UNORTE = 0. ! + med=1 + EndIf + + If (abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + HydroParam%uxysub(iLayer,1,Face) = med*(UNORTE + (0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(4,iElem)) ))) + Else + HydroParam%uxysub(iLayer,1,Face) = UNORTE ! + EndIf + + EndIf + ! Set particle's tangential velocity + HydroParam%uxysub(iLayer,2,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(1,iElem)) + ElseIf (iEdge==2) then !West Edge + If (r == 0.or.lockElem==1) Then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then + HydroParam%uxysub(iLayer,2,Face) = 0. ! + Else + If (abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then + HydroParam%uxysub(iLayer,2,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(1,iElem)) ) + Else + HydroParam%uxysub(iLayer,2,Face) = 0. ! + EndIf + EndIf + Else + Elem=MeshParam%Neighbor(2,iElem) + If (abs (HydroParam%um(iLayer,MeshParam%Edge(1,Elem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(3,Elem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(1,Elem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(3,Elem)))>NearZero2) then + VOESTE = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(3,Elem)),MeshParam%Left(MeshParam%Edge(3,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(3,Elem))+ Sig(Elem,MeshParam%Right(MeshParam%Edge(1,Elem)),MeshParam%Left(MeshParam%Edge(1,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(1,Elem)) ) + Else + VOESTE = 0. ! + med=1 + EndIf + + If (abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) then + HydroParam%uxysub(iLayer,2,Face) = med* (VOESTE +(0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(1,iElem)) ))) + Else + HydroParam%uxysub(iLayer,2,Face) = VOESTE ! + EndIf + + EndIf + ! Set particle's tangential velocity + HydroParam%uxysub(iLayer,1,Face) = - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(2,iElem)) + ElseIf (iEdge==3) then !South Edge + If (r == 0.or.lockElem==1) Then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) then + HydroParam%uxysub(iLayer,1,Face) = 0. ! + Else + If (abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + HydroParam%uxysub(iLayer,1,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(4,iElem)) ) + Else + HydroParam%uxysub(iLayer,1,Face) = 0. ! + EndIf + EndIf + Else + Elem=MeshParam%Neighbor(3,iElem) + If (abs (HydroParam%um(iLayer,MeshParam%Edge(4,Elem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(2,Elem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(4,Elem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(2,Elem)))>NearZero2) then + USUL = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(2,Elem)),MeshParam%Left(MeshParam%Edge(2,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(2,Elem)) + Sig(Elem,MeshParam%Right(MeshParam%Edge(4,Elem)),MeshParam%Left(MeshParam%Edge(4,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(4,Elem)) ) + Else + USUL = 0. ! + med=1 + EndIf + + If (abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(4,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(2,iElem)))>NearZero2) then + HydroParam%uxysub(iLayer,1,Face) = med*(USUL + (0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(2,iElem)),MeshParam%Left(MeshParam%Edge(2,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(2,iElem)) + Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(4,iElem)) ))) + Else + HydroParam%uxysub(iLayer,1,Face) = USUL ! + EndIf + + EndIf + ! Set particle's tangential velocity + HydroParam%uxysub(iLayer,2,Face) = - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(3,iElem)) + Else !East Edge + If (r == 0.or.lockElem==1) Then + If (HydroParam%IndexInflowEdge(Face)>0.or.HydroParam%IndexInflowEdge(Face)>0) Then + HydroParam%uxysub(iLayer,2,Face) = 0. ! + Else + If (abs(HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs(HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) Then + HydroParam%uxysub(iLayer,2,Face) = 0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(1,iElem)) ) + Else + HydroParam%uxysub(iLayer,2,Face) = 0. ! + EndIf + EndIf + Else + Elem=MeshParam%Neighbor(4,iElem) + If (abs (HydroParam%um(iLayer,MeshParam%Edge(1,Elem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(3,Elem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(1,Elem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(3,Elem)))>NearZero2) Then + VLESTE = 0.5d0*( - Sig(Elem,MeshParam%Right(MeshParam%Edge(3,Elem)),MeshParam%Left(MeshParam%Edge(3,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(3,Elem))+ Sig(Elem,MeshParam%Right(MeshParam%Edge(1,Elem)),MeshParam%Left(MeshParam%Edge(1,Elem)))*HydroParam%um(iLayer,MeshParam%Edge(1,Elem)) ) + Else + VLESTE = 0. ! + med=1 + EndIf + + If (abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))>NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))NearZero2 .and. abs (HydroParam%um(iLayer,MeshParam%Edge(1,iElem)))NearZero2.and.abs (HydroParam%um(iLayer,MeshParam%Edge(3,iElem)))>NearZero2) Then + HydroParam%uxysub(iLayer,2,Face) = med* (VLESTE +(0.5d0*( - Sig(iElem,MeshParam%Right(MeshParam%Edge(3,iElem)),MeshParam%Left(MeshParam%Edge(3,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(3,iElem))+ Sig(iElem,MeshParam%Right(MeshParam%Edge(1,iElem)),MeshParam%Left(MeshParam%Edge(1,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(1,iElem)) ))) + Else + HydroParam%uxysub(iLayer,2,Face) = VLESTE ! + EndIf + + EndIf + ! Set particle's tangential velocity + HydroParam%uxysub(iLayer,1,Face) = Sig(iElem,MeshParam%Right(MeshParam%Edge(4,iElem)),MeshParam%Left(MeshParam%Edge(4,iElem)))*HydroParam%um(iLayer,MeshParam%Edge(4,iElem)) + EndIf + EndDo + ! 3.2 Nullify Velocities Below the Bottom (u=0) + Do iLayer = 1, HydroParam%ElSmallms(iElem) - 1 + HydroParam%uxysub(iLayer,1,Face) = 0. !u(CapitalM(Face),Face) + HydroParam%uxysub(iLayer,2,Face) = 0. + EndDo + EndIf + EndDo !If (iElem==5) Then ! write(*,*) HydroParam%uxy(1,1,MeshParam%Edge(2,iElem)),HydroParam%uxy(1,1,MeshParam%Edge(4,iElem)) ! Continue - !EndIf - - - ENDDO - - - + !EndIf + EndDo + ! + !Do iElem = 1, MeshParam%nElem + ! + ! Do iEdge = 1,4 + ! y1Elem = neighElem(MeshParam, MeshParam%Edge(1,iElem)) + ! x1Elem = neighElem(MeshParam, MeshParam%Edge(2,iElem)) + ! y2Elem = neighElem(MeshParam, MeshParam%Edge(3,iElem)) + ! x2Elem = neighElem(MeshParam, MeshParam%Edge(4,iElem)) + ! EndDo + ! + ! Do iEdge = 1,4 + ! + ! Face = MeshParam%Edge(iEdge,iElem) + ! l = MeshParam%Left(Face) + ! r = MeshParam%Right(Face) + ! + ! If (r==0) Then + ! r = l + ! EndIf + ! + ! Do iLayer = HydroParam%Smallms(Face), HydroParam%Capitalms(Face) + ! + ! If (iEdge==1) Then + ! + ! Faceyin = MeshParam%Edge(4,iElem) + ! Facexin = MeshParam%Edge(iEdge,x1Elem) + ! + ! If (iLayer < HydroParam%Smallm(x1Elem)) Then + ! Facexin = Face + ! Else + ! Facexin = MeshParam%Edge(iEdge,x1Elem) + ! EndIf + ! + ! If (HydroParam%uxy(iLayer,1,Face) + HydroParam%uxy(iLayer,1,Facexin)>=0) Then + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(MeshParam%Edge(4,iElem)) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(MeshParam%Edge(2,iElem)))/(HydroParam%H(MeshParam%Edge(4,iElem)) + HydroParam%H(MeshParam%Edge(2,iElem))) + ! Else + ! If (iLayer < HydroParam%Smallm(x2Elem)) Then + ! Facexin = Face + ! Else + ! Facexin = MeshParam%Edge(iEdge,x2Elem) + ! EndIf + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(MeshParam%Edge(2,iElem)) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(MeshParam%Edge(4,iElem)))/(HydroParam%H(MeshParam%Edge(2,iElem)) + HydroParam%H(MeshParam%Edge(4,iElem))) + ! EndIf + ! + ! + ! If (HydroParam%uxy(iLayer,2,Face) + HydroParam%uxy(iLayer,2,Faceyin)>=0) Then + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(Faceyin))/(HydroParam%H(Face) + HydroParam%H(Faceyin)) + ! Else + ! If (iLayer < HydroParam%Smallm(y1Elem)) Then + ! Faceyin = Face + ! Else + ! Faceyin = MeshParam%Edge(iEdge,y1Elem) + ! EndIf + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(Faceyin))/(HydroParam%H(Face) + HydroParam%H(Faceyin)) + ! + ! EndIf + ! ElseIf (iEdge==2) Then + ! + ! Faceyin = MeshParam%Edge(iEdge,y2Elem) + ! Facexin = MeshParam%Edge(iEdge,x1Elem) + ! + ! If (iLayer < HydroParam%Smallm(x1Elem)) Then + ! Facexin = Face + ! Else + ! Facexin = MeshParam%Edge(iEdge,x1Elem) + ! EndIf + ! ! x-direction component: + ! If (HydroParam%uxy(iLayer,1,Face) + HydroParam%uxy(iLayer,1,Facexin)>=0) Then + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(Facexin))/(HydroParam%H(Face) + HydroParam%H(Facexin)) + ! Else + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,1,4)*HydroParam%H(MeshParam%Edge(4,iElem)))/(HydroParam%H(Face) + HydroParam%H(MeshParam%Edge(4,iElem))) + ! EndIf + ! ! y-direction component: + ! If (iLayer < HydroParam%Smallm(y2Elem)) Then + ! Faceyin = Face + ! Else + ! Faceyin = MeshParam%Edge(iEdge,y2Elem) + ! EndIf + ! + ! If (HydroParam%uxy(iLayer,2,Face) + HydroParam%uxy(iLayer,2,Faceyin)>=0) Then + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(MeshParam%Edge(1,iElem)) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(MeshParam%Edge(3,iElem)))/(HydroParam%H(MeshParam%Edge(1,iElem)) + HydroParam%H(MeshParam%Edge(3,iElem))) + ! Else + ! If (iLayer < HydroParam%Smallm(y1Elem)) Then + ! Faceyin = Face + ! Else + ! Faceyin = MeshParam%Edge(iEdge,y1Elem) + ! EndIf + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(MeshParam%Edge(3,iElem)) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(MeshParam%Edge(1,iElem)))/(HydroParam%H(MeshParam%Edge(3,iElem)) + HydroParam%H(MeshParam%Edge(1,iElem))) + ! EndIf + ! ElseIf (iEdge == 3) Then + ! + ! Faceyin = MeshParam%Edge(3,y2Elem) + ! Facexin = MeshParam%Edge(iEdge,x1Elem) + ! ! x-direction component: + ! If (iLayer < HydroParam%Smallm(x1Elem)) Then + ! Facexin = Face + ! Else + ! Facexin = MeshParam%Edge(iEdge,x1Elem) + ! EndIf + ! + ! If (HydroParam%uxy(iLayer,1,Face) + HydroParam%uxy(iLayer,1,Facexin)>=0) Then + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(MeshParam%Edge(4,iElem)) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(MeshParam%Edge(2,iElem)))/(HydroParam%H(MeshParam%Edge(4,iElem)) + HydroParam%H(MeshParam%Edge(2,iElem))) + ! Else + ! If (iLayer < HydroParam%Smallm(x2Elem)) Then + ! Facexin = Face + ! Else + ! Facexin = MeshParam%Edge(iEdge,x2Elem) + ! EndIf + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(MeshParam%Edge(2,iElem)) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(MeshParam%Edge(4,iElem)))/(HydroParam%H(MeshParam%Edge(4,iElem)) + HydroParam%H(MeshParam%Edge(2,iElem))) + ! EndIf + ! ! y-direction component: + ! If (iLayer < HydroParam%Smallm(y2Elem)) Then + ! Faceyin = Face + ! Else + ! Faceyin = MeshParam%Edge(iEdge,y2Elem) + ! EndIf + ! + ! If (HydroParam%uxy(iLayer,2,Face) + HydroParam%uxy(iLayer,2,Faceyin)>=0) Then + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(Faceyin))/(HydroParam%H(Face) + HydroParam%H(Faceyin)) + ! Else + ! Faceyin = MeshParam%Edge(1,iElem) + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(Faceyin))/(HydroParam%H(Face) + HydroParam%H(Faceyin)) + ! EndIf + ! Else + ! !iEdge = 4 + ! Faceyin = MeshParam%Edge(iEdge,y2Elem) + ! Facexin = MeshParam%Edge(2,iElem) + ! + ! ! x-direction component: + ! If (HydroParam%uxy(iLayer,1,Face) + HydroParam%uxy(iLayer,1,Facexin)>=0) Then + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(Facexin))/(HydroParam%H(Face) + HydroParam%H(Facexin)) + ! Else + ! If (iLayer < HydroParam%Smallm(x2Elem)) Then + ! Facexin = Face + ! Else + ! Facexin = MeshParam%Edge(iEdge,x2Elem) + ! EndIf + ! HydroParam%uxy(iLayer,1,Face) = (HydroParam%uxy(iLayer,1,Face)*HydroParam%H(Face) + HydroParam%uxy(iLayer,1,Facexin)*HydroParam%H(Facexin))/(HydroParam%H(Face) + HydroParam%H(Facexin)) + ! EndIf + ! + ! ! y-direction component: + ! If (iLayer < HydroParam%Smallm(y2Elem)) Then + ! Faceyin = Face + ! Else + ! Faceyin = MeshParam%Edge(iEdge,y2Elem) + ! EndIf + ! + ! If (HydroParam%uxy(iLayer,2,Face) + HydroParam%uxy(iLayer,2,Faceyin)>=0) Then + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(MeshParam%Edge(1,iElem)) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(MeshParam%Edge(3,iElem)))/(HydroParam%H(MeshParam%Edge(1,iElem)) + HydroParam%H(MeshParam%Edge(3,iElem))) + ! Else + ! If (iLayer < HydroParam%Smallm(y1Elem)) Then + ! Faceyin = Face + ! Else + ! Faceyin = MeshParam%Edge(iEdge,y1Elem) + ! EndIf + ! HydroParam%uxy(iLayer,2,Face) = (HydroParam%uxy(iLayer,2,Face)*HydroParam%H(MeshParam%Edge(3,iElem)) + HydroParam%uxy(iLayer,2,Faceyin)*HydroParam%H(MeshParam%Edge(1,iElem)))/(HydroParam%H(MeshParam%Edge(3,iElem)) + HydroParam%H(MeshParam%Edge(1,iElem))) + ! EndIf + ! EndIf + ! EndDo + ! EndDo + !EndDo + ! !Do iElem = 1, MeshParam%nElem ! Do iEdge = 1, 4 ! Face = MeshParam%Edge(iEdge,iElem) @@ -308,8 +745,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) ! EndDo ! EndDo - ! 1. Finding cell-centered velocity components - !! 1. Finding cell-centered velocity components + !Do iElem = 1, MeshParam%nElem ! icountV=MeshParam%Area(iElem) ! n1=MeshParam%Quadri(1,iElem) + 1 @@ -380,6 +816,9 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) ! HydroParam%ub(iLayer,3,iElem) = 0.5*( HydroParam%w(iLayer,iElem) + HydroParam%w(iLayer+1,iElem) ) ! EndDo !EndDo + + ! 1. Finding cell-centered velocity components + Do iElem = 1, MeshParam%nElem icountV=MeshParam%Area(iElem) n1=MeshParam%Quadri(1,iElem) + 1 @@ -390,54 +829,72 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) aa(2)=signa(MeshParam%xNode(n2),MeshParam%xNode(n3),MeshParam%xb(iElem),MeshParam%yNode(n2),MeshParam%yNode(n3),MeshParam%yb(iElem)) aa(3)=signa(MeshParam%xNode(n3),MeshParam%xNode(n4),MeshParam%xb(iElem),MeshParam%yNode(n3),MeshParam%yNode(n4),MeshParam%yb(iElem)) aa(4)=signa(MeshParam%xNode(n4),MeshParam%xNode(n1),MeshParam%xb(iElem),MeshParam%yNode(n4),MeshParam%yNode(n1),MeshParam%yb(iElem)) - Do iLayer = HydroParam%ElSmallm(iElem), HydroParam%ElCapitalM(iElem) - If (iElem==293.and.iLayer==1) Then - Continue - EndIf + + Do iLayer = HydroParam%ElSmallms(iElem), HydroParam%ElCapitalM(iElem) + aa(5)=0.d0 aaU=0.d0 aaV=0.d0 HydroParam%ub(iLayer,1:2,iElem) = 0.d0 icountU=0.d0 icountV=0.d0 + Do iEdge=1,4 Face = MeshParam%Edge(iEdge,iElem) - l = MeshParam%Left(MeshParam%Edge(iEdge,iElem)) - r = MeshParam%Right(MeshParam%Edge(iEdge,iElem)) - !if (r==0) then - ! cycle - !endif - - if (abs(HydroParam%uxy(iLayer,1,Face))>NearZero) then !if iEdge has flux in X direction + l = MeshParam%Left(Face) + r = MeshParam%Right(Face) + + If (abs(HydroParam%uxy(iLayer,1,Face))>NearZero) then !if iEdge has flux in X direction aaU=aaU+aa(iEdge) !Total area contribution. - endif - if (abs(HydroParam%uxy(iLayer,2,Face))>NearZero) then !if iEdge has flux in Y direction + EndIf + If (abs(HydroParam%uxy(iLayer,2,Face))>NearZero) then !if iEdge has flux in Y direction aaV=aaV+aa(iEdge) !Total area contribution. - endif + EndIf EndDo - if (aaU==0) then + + If (aaU==0) Then HydroParam%ub(iLayer,1,iElem) = 0 - endif - if (aaV==0) then + EndIf + If (aaV==0) Then HydroParam%ub(iLayer,2,iElem) = 0 - endif + EndIf - Do iEdge=1,4 - Face = MeshParam%Edge(iEdge,iElem) - l = MeshParam%Left(MeshParam%Edge(iEdge,iElem)) - r = MeshParam%Right(MeshParam%Edge(iEdge,iElem)) - !if (r==0) then - ! cycle - !endif - if (abs(HydroParam%uxy(iLayer,1,Face))>NearZero.and.aaU>NearZero) then - HydroParam%ub(iLayer,1,iElem) = HydroParam%ub(iLayer,1,iElem) + HydroParam%uxy(iLayer,1,Face)*aa(iEdge)/aaU - endif - if (abs(HydroParam%uxy(iLayer,2,Face))>NearZero.and.aaV>NearZero) then !if iEdge has flux in X direction - HydroParam%ub(iLayer,2,iElem) = HydroParam%ub(iLayer,2,iElem) + HydroParam%uxy(iLayer,2,Face)*aa(iEdge)/aaV - endif - + Do iEdge=1,4 + Face = MeshParam%Edge(iEdge,iElem) + l = MeshParam%Left(MeshParam%Edge(iEdge,iElem)) + r = MeshParam%Right(MeshParam%Edge(iEdge,iElem)) + + If (abs(HydroParam%uxy(iLayer,1,Face))>NearZero.and.aaU>NearZero) then !if iEdge has flux in Y direction + HydroParam%ub(iLayer,1,iElem) = HydroParam%ub(iLayer,1,iElem) + HydroParam%uxy(iLayer,1,Face)*aa(iEdge)/aaU + EndIf + If (abs(HydroParam%uxy(iLayer,2,Face))>NearZero.and.aaV>NearZero) then !if iEdge has flux in X direction + HydroParam%ub(iLayer,2,iElem) = HydroParam%ub(iLayer,2,iElem) + HydroParam%uxy(iLayer,2,Face)*aa(iEdge)/aaV + EndIf + + EndDo + HydroParam%ub(iLayer,3,iElem) = 0.5*( HydroParam%w(iLayer,iElem) + HydroParam%w(iLayer+1,iElem) ) + + ! If subsurface flow occurs, ubsub calculate as output: + If (MeshParam%iBedrock == 1) Then + If (aaU==0) Then + HydroParam%ubsub(iLayer,1,iElem) = 0 + EndIf + If (aaV==0) Then + HydroParam%ubsub(iLayer,2,iElem) = 0 + EndIf + + Do iEdge=1,4 + + If (abs(HydroParam%uxysub(iLayer,1,Face))>NearZero.and.aaU>NearZero) then !if iEdge has flux in Y direction + HydroParam%ubsub(iLayer,1,iElem) = HydroParam%ubsub(iLayer,1,iElem) + HydroParam%uxysub(iLayer,1,Face)*aa(iEdge)/aaU + EndIf + If (abs(HydroParam%uxysub(iLayer,2,Face))>NearZero.and.aaV>NearZero) then !if iEdge has flux in X direction + HydroParam%ubsub(iLayer,2,iElem) = HydroParam%ubsub(iLayer,2,iElem) + HydroParam%uxysub(iLayer,2,Face)*aa(iEdge)/aaV + EndIf EndDo - HydroParam%ub(iLayer,3,iElem) = 0.5*( HydroParam%w(iLayer,iElem) + HydroParam%w(iLayer+1,iElem) ) + HydroParam%ubsub(iLayer,3,iElem) = 0.5*( HydroParam%wm(iLayer,iElem) + HydroParam%wm(iLayer+1,iElem) ) + EndIf + EndDo EndDo @@ -445,56 +902,54 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) Do iEdge=1,MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) - if (r==0) then + If (r==0) Then HydroParam%wfc(:,iEdge)= HydroParam%ub(:,3,l) - else + Else Do iLayer = 1, HydroParam%CapitalM(iEdge) !HydroParam%Smallm(iEdge) If (abs(HydroParam%ub(iLayer,3,l))>NearZero.and.abs(HydroParam%ub(iLayer,3,r))NearZero) Then HydroParam%wfc(iLayer,iEdge)= HydroParam%ub(iLayer,3,r) - elseif (abs(HydroParam%ub(iLayer,3,l))>NearZero.and.abs(HydroParam%ub(iLayer,3,r))>NearZero) Then + ElseIf (abs(HydroParam%ub(iLayer,3,l))>NearZero.and.abs(HydroParam%ub(iLayer,3,r))>NearZero) Then HydroParam%wfc(iLayer,iEdge) = (0.5d0*(HydroParam%ub(iLayer,3,l)+HydroParam%ub(iLayer,3,r))) - else + Else HydroParam%wfc(iLayer,iEdge)= 0.d0 EndIf - if (isnan(HydroParam%wfc(iLayer,iEdge))) then + If (isnan(HydroParam%wfc(iLayer,iEdge))) then continue - endif + EndIf EndDo - endif + EndIf !HydroParam%wfc(iLayer,iEdge) = 0.5d0 * (0.5d0*(HydroParam%ub(iLayer,3,l)+HydroParam%ub(iLayer,3,r)) + (0.5d0*(HydroParam%wg(iEdge,iLayer)+HydroParam%wg(iEdge,iLayer+1)))) EndDo ! 3. Finding k+1/2 Layer-centred horizontal Velocity components Do iElem = 1, MeshParam%nElem - HydroParam%uxyL(HydroParam%ElSmallm(iElem),1,iElem) = HydroParam%ub(HydroParam%ElSmallm(iElem),1,iElem) - HydroParam%uxyL(HydroParam%ElSmallm(iElem),2,iElem) = HydroParam%ub(HydroParam%ElSmallm(iElem),2,iElem) + HydroParam%uxyL(HydroParam%ElSmallms(iElem),1,iElem) = HydroParam%ub(HydroParam%ElSmallms(iElem),1,iElem) + HydroParam%uxyL(HydroParam%ElSmallms(iElem),2,iElem) = HydroParam%ub(HydroParam%ElSmallms(iElem),2,iElem) !HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,1,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem) !HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,2,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem) - if (iElem==39) then - continue - endif - Do iLayer = HydroParam%ElSmallm(iElem)+1, HydroParam%ElCapitalM(iElem) - HydroParam%uxyL(iLayer,1,iElem) = HydroParam%ub(iLayer-1,1,iElem)+((HydroParam%Zb(iLayer,iElem)-HydroParam%Ze(iLayer,iElem))*((HydroParam%ub(iLayer,1,iElem)-HydroParam%ub(iLayer-1,1,iElem))/(HydroParam%Zb(iLayer,iElem)-HydroParam%Zb(iLayer-1,iElem)))) - HydroParam%uxyL(iLayer,2,iElem) = HydroParam%ub(iLayer-1,2,iElem)+((HydroParam%Zb(iLayer,iElem)-HydroParam%Ze(iLayer,iElem))*((HydroParam%ub(iLayer,2,iElem)-HydroParam%ub(iLayer-1,2,iElem))/(HydroParam%Zb(iLayer,iElem)-HydroParam%Zb(iLayer-1,iElem)))) + + Do iLayer = HydroParam%ElSmallms(iElem)+1, HydroParam%ElCapitalM(iElem) + HydroParam%uxyL(iLayer,1,iElem) = HydroParam%ub(iLayer-1,1,iElem)+((HydroParam%Zb(iLayer,iElem)-HydroParam%Ze(iLayer,iElem))*((HydroParam%ub(iLayer,1,iElem)-HydroParam%ub(iLayer-1,1,iElem))/(HydroParam%Zb(iLayer,iElem)-HydroParam%Zb(iLayer-1,iElem)))) + HydroParam%uxyL(iLayer,2,iElem) = HydroParam%ub(iLayer-1,2,iElem)+((HydroParam%Zb(iLayer,iElem)-HydroParam%Ze(iLayer,iElem))*((HydroParam%ub(iLayer,2,iElem)-HydroParam%ub(iLayer-1,2,iElem))/(HydroParam%Zb(iLayer,iElem)-HydroParam%Zb(iLayer-1,iElem)))) EndDo - if (HydroParam%ElCapitalM(iElem)==HydroParam%ElSmallm(iElem)) then + If (HydroParam%ElCapitalM(iElem)==HydroParam%ElSmallms(iElem)) then ! Only 1 Layer HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,1,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem)!+abs((HydroParam%eta(iElem))-(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem)))*((HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem)-HydroParam%ub(HydroParam%ElCapitalM(iElem)-1,1,iElem))/(abs(abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem)-1,iElem))-abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem))))) HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,2,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem)!+abs((HydroParam%eta(iElem))-(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem)))*((HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem)-HydroParam%ub(HydroParam%ElCapitalM(iElem)-1,2,iElem))/(abs(abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem)-1,iElem))-abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem))))) - else !if the domain has more then one layer, use lagrange polinomial interpolation + Else !If the domain has more than one layer, use lagrange polynomial interpolation HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,1,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem) HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,2,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem) !HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,1,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem)+abs((HydroParam%eta(iElem))-(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem)))*((HydroParam%ub(HydroParam%ElCapitalM(iElem),1,iElem)-HydroParam%ub(HydroParam%ElCapitalM(iElem)-1,1,iElem))/(abs(abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem)-1,iElem))-abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem))))) !HydroParam%uxyL(HydroParam%ElCapitalM(iElem)+1,2,iElem) = HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem)+abs((HydroParam%eta(iElem))-(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem)))*((HydroParam%ub(HydroParam%ElCapitalM(iElem),2,iElem)-HydroParam%ub(HydroParam%ElCapitalM(iElem)-1,2,iElem))/(abs(abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem)-1,iElem))-abs(HydroParam%Zb(HydroParam%ElCapitalM(iElem),iElem))))) - endif + EndIf EndDo ! 4. Finding Velocities in each face in k+1/2 Layer Do iEdge=1,MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) - !Bottom and top horizontal velocitys are iqual to cell center velocities - layer "k" is difined in the center of each cell + !Bottom and top horizontal velocitys are iqual to cell center velocities - layer "k" is defined in the center of each cell !Bottom vertical Velocity is = 0, top layer vertical velocity is = w top layer velocity !if (r==0) then ! small = HydroParam%Smallm(iEdge) @@ -515,8 +970,8 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) !endif !Find Velocities to K+1/2 for each edge - If (r==0) Then !Velocity in lateral boundries is equal to cell center velocity - if (HydroParam%uxy(iLayer,1,iEdge)==0.and.HydroParam%uxy(iLayer,2,iEdge)/=0) then !no flux in U direction + If (r==0) Then !Velocity in lateral boundaries is equal to cell center velocity + If (HydroParam%uxy(iLayer,1,iEdge)==0.and.HydroParam%uxy(iLayer,2,iEdge)/=0) then !no flux in U direction HydroParam%ug(iEdge,iLayer)=0 HydroParam%vg(iEdge,iLayer)= HydroParam%uxy(iLayer-1,2,iEdge)+(((HydroParam%Zb(iLayer,l)-HydroParam%Ze(iLayer,l))/(HydroParam%Zb(iLayer,l)-HydroParam%Zb(iLayer-1,l)))*(HydroParam%uxy(iLayer,2,iEdge)-HydroParam%uxy(iLayer-1,2,iEdge))) HydroParam%wg(iEdge,iLayer)= HydroParam%w(iLayer,l) @@ -536,15 +991,15 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) HydroParam%wg(iEdge,iLayer)= HydroParam%w(iLayer,l) !(HydroParam%wfc(iLayer-1,iEdge)+(HydroParam%DZj(iLayer-1,iEdge)/(HydroParam%DZj(iLayer-1,iEdge)+HydroParam%DZj(iLayer,iEdge)))*(HydroParam%wfc(iLayer,iEdge)-HydroParam%wfc(iLayer-1,iEdge))) Endif Else - If (iLayer>=HydroParam%ElSmallm(r)) Then + If (iLayer>=HydroParam%ElSmallms(r)) Then !HydroParam%ug(iEdge,iLayer)= 0.5d0*((0.5d0*(HydroParam%uxyL(iLayer,1,r)+HydroParam%uxyL(iLayer,1,l))+HydroParam%uxy(iLayer-1,1,iEdge)+(HydroParam%DZj(iLayer-1,iEdge)/(HydroParam%DZj(iLayer-1,iEdge)+HydroParam%DZj(iLayer,iEdge)))*(HydroParam%uxy(iLayer,1,iEdge)-HydroParam%uxy(iLayer-1,1,iEdge)))) !HydroParam%vg(iEdge,iLayer)= 0.5d0*((0.5d0*(HydroParam%uxyL(iLayer,2,r)+HydroParam%uxyL(iLayer,2,l))+HydroParam%uxy(iLayer-1,2,iEdge)+(HydroParam%DZj(iLayer-1,iEdge)/(HydroParam%DZj(iLayer-1,iEdge)+HydroParam%DZj(iLayer,iEdge)))*(HydroParam%uxy(iLayer,2,iEdge)-HydroParam%uxy(iLayer-1,2,iEdge)))) !HydroParam%wg(iEdge,iLayer) = 0.5d0*((0.5d0*(HydroParam%w(iLayer,r)+HydroParam%w(iLayer,l)))+(HydroParam%wfc(iLayer-1,iEdge)+(HydroParam%DZj(iLayer-1,iEdge)/(HydroParam%DZj(iLayer-1,iEdge)+HydroParam%DZj(iLayer,iEdge)))*(HydroParam%wfc(iLayer,iEdge)-HydroParam%wfc(iLayer-1,iEdge)))) HydroParam%ug(iEdge,iLayer)= HydroParam%uxy(iLayer-1,1,iEdge)+(((HydroParam%Zb(iLayer,l)-HydroParam%Ze(iLayer,l))/(HydroParam%Zb(iLayer,l)-HydroParam%Zb(iLayer-1,l)))*(HydroParam%uxy(iLayer,1,iEdge)-HydroParam%uxy(iLayer-1,1,iEdge))) HydroParam%vg(iEdge,iLayer)= HydroParam%uxy(iLayer-1,2,iEdge)+(((HydroParam%Zb(iLayer,l)-HydroParam%Ze(iLayer,l))/(HydroParam%Zb(iLayer,l)-HydroParam%Zb(iLayer-1,l)))*(HydroParam%uxy(iLayer,2,iEdge)-HydroParam%uxy(iLayer-1,2,iEdge))) HydroParam%wg(iEdge,iLayer) = 0.5d0*(HydroParam%w(iLayer,r)+HydroParam%w(iLayer,l))!+(HydroParam%wfc(iLayer-1,iEdge)+(HydroParam%DZj(iLayer-1,iEdge)/(HydroParam%DZj(iLayer-1,iEdge)+HydroParam%DZj(iLayer,iEdge)))*(HydroParam%wfc(iLayer,iEdge)-HydroParam%wfc(iLayer-1,iEdge)))) - else - if (HydroParam%uxy(iLayer,1,iEdge)==0.and.HydroParam%uxy(iLayer,2,iEdge)/=0) then + Else + If (HydroParam%uxy(iLayer,1,iEdge)==0.and.HydroParam%uxy(iLayer,2,iEdge)/=0) then HydroParam%ug(iEdge,iLayer)=0 HydroParam%vg(iEdge,iLayer)= HydroParam%uxy(iLayer-1,2,iEdge)+(((HydroParam%Zb(iLayer,l)-HydroParam%Ze(iLayer,l))/(HydroParam%Zb(iLayer,l)-HydroParam%Zb(iLayer-1,l)))*(HydroParam%uxy(iLayer,2,iEdge)-HydroParam%uxy(iLayer-1,2,iEdge))) HydroParam%wg(iEdge,iLayer)= HydroParam%w(iLayer,l) @@ -562,26 +1017,24 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) !HydroParam%ug(iEdge,iLayer)=HydroParam%uxyL(iLayer,1,l) !HydroParam%vg(iEdge,iLayer)=HydroParam%uxyL(iLayer,2,l) HydroParam%wg(iEdge,iLayer)= HydroParam%w(iLayer,l) !(HydroParam%wfc(iLayer-1,iEdge)+(HydroParam%DZj(iLayer-1,iEdge)/(HydroParam%DZj(iLayer-1,iEdge)+HydroParam%DZj(iLayer,iEdge)))*(HydroParam%wfc(iLayer,iEdge)-HydroParam%wfc(iLayer-1,iEdge))) - Endif - endif + EndIf + EndIf EndIf EndDo - ! 4.1. Finding ug,vg and wg to bottom and top layers, apllying the boundry conditions - if (HydroParam%ElCapitalM(l)==HydroParam%ElSmallm(l)) then - HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)!+weitW*((HydroParam%uxy(HydroParam%ElCapitalM(l),1,iEdge)-HydroParam%uxy(HydroParam%ElCapitalM(l)-1,1,iEdge))/(weit)) - HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)!+weitW*((HydroParam%uxy(HydroParam%ElCapitalM(l),2,iEdge)-HydroParam%uxy(HydroParam%ElCapitalM(l)-1,2,iEdge))/(weit)) - - else !if the domain has more then one layer, use lagrange polinomial interpolation - HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge) - HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge) - endif - - - If (r==0) Then !Velocity in lateral boundries is equal to cell center velocity + ! 4.1. Finding ug,vg and wg to bottom and top layers, applying the boundary conditions + If (HydroParam%ElCapitalM(l)==HydroParam%ElSmallms(l)) then + HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)!+weitW*((HydroParam%uxy(HydroParam%ElCapitalM(l),1,iEdge)-HydroParam%uxy(HydroParam%ElCapitalM(l)-1,1,iEdge))/(weit)) + HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)!+weitW*((HydroParam%uxy(HydroParam%ElCapitalM(l),2,iEdge)-HydroParam%uxy(HydroParam%ElCapitalM(l)-1,2,iEdge))/(weit)) + Else !If the domain has more than one layer, use lagrange polynomial interpolation + HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge) + HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge) + EndIf + + If (r==0) Then !Velocity in lateral boundaries is equal to cell center velocity HydroParam%wg(iEdge,HydroParam%Smallms(iEdge))=0 HydroParam%wg(iEdge,HydroParam%CapitalM(iEdge)+1)=HydroParam%w(HydroParam%CapitalM(iEdge)+1,l) - if (HydroParam%uxy(HydroParam%Smallms(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge)/=0) then + If (HydroParam%uxy(HydroParam%Smallms(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge)/=0) then HydroParam%ug(iEdge,HydroParam%Smallms(iEdge))= 0.d0 HydroParam%vg(iEdge,HydroParam%Smallms(iEdge))=HydroParam%uxy(HydroParam%Smallms(iElem),2,iEdge) Elseif (HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge)==0.and.HydroParam%uxy(HydroParam%Smallms(iEdge),1,iEdge)/=0) then @@ -595,7 +1048,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) HydroParam%vg(iEdge,HydroParam%Smallms(iEdge))= HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge) EndIf - if (HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)/=0) then + If (HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)/=0) then HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= 0.d0 !HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)=HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge) Elseif (HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)==0.and.HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)/=0) then @@ -616,11 +1069,11 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) HydroParam%wg(iEdge,HydroParam%Smallms(iEdge))= 0.5d0*(HydroParam%w(HydroParam%Smallms(iEdge),l)+HydroParam%w(HydroParam%Smallms(iEdge),r)) HydroParam%wg(iEdge,HydroParam%CapitalM(iEdge)+1) = 0.5d0*(HydroParam%w(HydroParam%CapitalM(iEdge)+1,l)+HydroParam%w(HydroParam%CapitalM(iEdge)+1,r)) - else + Else HydroParam%wg(iEdge,HydroParam%Smallms(iEdge))=0 HydroParam%wg(iEdge,HydroParam%CapitalM(iEdge)+1)=HydroParam%w(HydroParam%CapitalM(iEdge)+1,l) - if (HydroParam%uxy(HydroParam%Smallms(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge)/=0) then + If (HydroParam%uxy(HydroParam%Smallms(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge)/=0) then HydroParam%ug(iEdge,HydroParam%Smallms(iEdge))= 0.d0 HydroParam%vg(iEdge,HydroParam%Smallms(iEdge))=HydroParam%uxy(HydroParam%Smallms(iElem),2,iEdge) Elseif (HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge)==0.and.HydroParam%uxy(HydroParam%Smallms(iEdge),1,iEdge)/=0) then @@ -634,7 +1087,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) HydroParam%vg(iEdge,HydroParam%Smallms(iEdge))= HydroParam%uxy(HydroParam%Smallms(iEdge),2,iEdge) EndIf - if (HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)/=0) then + If (HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)==0.and.HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)/=0) then HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= 0.d0 !HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)=HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge) Elseif (HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge)==0.and.HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge)/=0) then @@ -647,7 +1100,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) !HydroParam%ug(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge) !HydroParam%vg(iEdge,HydroParam%CapitalM(iEdge)+1)= HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge) EndIf - endif + EndIf EndIf @@ -757,7 +1210,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) ! enddo - ! 6. Finding Vertice-centred Velocity Components + ! 6. Finding Vertice-centered Velocity Components HydroParam%ubV = 0. Do iNode=1,MeshParam%nNode @@ -850,9 +1303,9 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) ! 5. Finding Nodal Velocities HydroParam%uNode = 0.d0 Do iNode=1,MeshParam%nNode - if (iNode==487.or.iNode==511) then - continue - endif + !if (iNode==487.or.iNode==511) then + ! continue + !endif Do iLayer = 1,MeshParam%Kmax+1 weit=0 weitU=0 @@ -931,7 +1384,7 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) Face = MeshParam%EgdesatNode(j,iNode) r = MeshParam%Right(Face) l = MeshParam%Left(Face) - if (HydroParam%ElCapitalM(l)==HydroParam%ElSmallm(l)) then + if (HydroParam%ElCapitalM(l)==HydroParam%ElSmallms(l)) then HydroParam%uNode(iLayer,1,iNode)=HydroParam%ubV(iLayer-1,1,iNode)!+(weitW)*((HydroParam%ubV(iLayer-1,1,iNode)-HydroParam%ubV(iLayer-2,1,iNode))/(weit)) HydroParam%uNode(iLayer,2,iNode)=HydroParam%ubV(iLayer-1,2,iNode)!+(weitW)*((HydroParam%ubV(iLayer-1,2,iNode)-HydroParam%ubV(iLayer-2,2,iNode))/(weit)) else !if the domain has more then one layer, use lagrange polinomial interpolation @@ -975,7 +1428,19 @@ Subroutine VelocitiesSUB(HydroParam,MeshParam) enddo enddo - Return End Subroutine VelocitiesSUB - \ No newline at end of file + + + Function neighElem(MeshParam,Face) + + use MeshVars + Implicit none + Integer:: Face, neighElem + type(MeshGridParam) :: MeshParam + neighElem = MeshParam%Right(Face) + If (neighElem == 0) Then + neighElem = MeshParam%Left(Face) + EndIf + + End Function neighElem \ No newline at end of file diff --git a/VerticalWB.f90 b/VerticalWB.f90 index e584c49..9cb4f02 100644 --- a/VerticalWB.f90 +++ b/VerticalWB.f90 @@ -1,4 +1,4 @@ -Subroutine VerticalWB(HydroParam,MeshParam,MeteoParam,dt) +Subroutine VerticalWB(HydroParam,MeshParam,MeteoParam,dt,SimTime) ! This routine calculates the vertical water balance on the free-surface water by Evaporation and Precipitation ! Called in routine 0-MAIN @@ -14,15 +14,29 @@ Subroutine VerticalWB(HydroParam,MeshParam,MeteoParam,dt) Real:: W_evap,Epslon_s,Epslon_c,Epslon,Fir,H_evap, Er, e_sat, B_EVAP Integer:: iElem Real:: NearZero = 1e-10 - Real:: dt + Real:: dt,SimTime,etaplus0 type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam type(MeteorologicalParam) :: MeteoParam + etaplus0 = 0.d0 + If(SimTime <= 5400 ) Then !Bench 02 Superficial + etaplus0 = 10.8d0/1000/3600*dt + EndIf + + !etaplus0 = 0.d0 + !If(SimTime <= 3024000 ) Then !Bench 02 Subsurface + ! etaplus0 = 10.8d0/1000/3600*dt + !EndIf + + !! !!$OMP parallel do default(none) shared(MeshParam,HydroParam,MeteoParam) private(iElem,Er,e_sat,B_Evap,e_evap,Ea,DELTA,NearZero,dt) Do iElem=1,MeshParam%nElem - HydroParam%etaplus(iElem) = 0. - + HydroParam%etaplus(iElem) = etaplus0 + + !If(MeshParam%xb(iElem) == 810.0d0) Then !Bench02 + ! HydroParam%etaplus(iElem) = etaplus0 + !EndIf ! If (MeteoParam%iReadEvap==0) Then ! HydroParam%etaplus(iElem) = -MeteoParam%Evap(iElem)/86400./1000. ! ElseIf (MeteoParam%iReadEvap==1) Then @@ -48,7 +62,7 @@ Subroutine VerticalWB(HydroParam,MeshParam,MeteoParam,dt) ! ! HydroParam%etaplus(iElem) = HydroParam%etaplus(iElem)*dt ! - ! If (HydroParam%eta(iElem) - HydroParam%hb(iElem) <= HydroParam%Pcri+NearZero) HydroParam%etaplus(iElem) = 0. + !If (HydroParam%eta(iElem) - HydroParam%hb(iElem) <= HydroParam%Pcri+NearZero) HydroParam%etaplus(iElem) = 0. EndDo !!$OMP end parallel do diff --git a/Volume.f90 b/Volume.f90 index 949d8a4..76c818b 100644 --- a/Volume.f90 +++ b/Volume.f90 @@ -1,10 +1,10 @@ -Subroutine Volume(HydroParam,MeshParam) +Subroutine Volume(HydroParam,MeshParam) ! Calculate the Element Volume ! Based on: ! [1] Casulli, V. A high-resolution wetting and drying algorithm for free-surfacehydrodynamics. ! International Journal for Numerical Methods in Fluids, v. 60 (4), p. 391-408, 2009. - ! [2] Casulli, V. A conservative semi-implicit method for coupled surface–subsurface flows in regional scale + ! [2] Casulli, V. A conservative semi-implicit method for coupled surface�subsurface flows in regional scale ! International Journal for Numerical Methods in Fluids, v. 79, p. 199-214, 2015. ! Input: @@ -14,31 +14,34 @@ Subroutine Volume(HydroParam,MeshParam) ! List of Modifications: ! 15.06.2015: Routine Implementation (Carlos Ruberto) - ! 20.08.2019: Routine Update (Cayo Lopes) + ! 21.05.2020: Routine Update (Cayo Lopes) ! Programmer: Cayo Lopes Use MeshVars !, Only: nElem,Edge,Area Use Hydrodynamic Implicit None Integer:: iElem, iLayer - Real:: V + Real:: V,vol type(HydrodynamicParam) :: HydroParam type(MeshGridParam) :: MeshParam - + + !$OMP parallel do default(none) shared(HydroParam,MeshParam) private(iElem) Do iElem = 1, MeshParam%nElem - HydroParam%Vol(iElem) = 0 - If (V(HydroParam%eta(iElem)+HydroParam%etaplus(iElem),HydroParam%hb(iElem)) > 0) Then - HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(HydroParam%eta(iElem) + HydroParam%etaplus(iElem) - HydroParam%hb(iElem)) - If(HydroParam%Smallms(iElem) == HydroParam%Smallm(iElem)) Then - continue - Else - Do iLayer = HydroParam%Smallms(iElem), HydroParam%CapitalMs(iElem) - HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*MeshParam%ei(iLayer,iElem)*HydroParam%DZj(iLayer,iElem) - EndDo - EndIf - ElseIf (V(HydroParam%eta(iElem)+HydroParam%etaplus(iElem),HydroParam%sb(iElem)) > 0) Then - HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(V(HydroParam%eta(iElem)+HydroParam%etaplus(iElem),HydroParam%sb(iElem)))*MeshParam%ei(HydroParam%Smallms(iElem),iElem) - EndIf + !Call SoilSaturation(HydroParam%eta(iElem),iElem,HydroParam,MeshParam) + HydroParam%Vol(iElem) = MeshParam%Area(iElem)*HydroParam%etaplus(iElem) + HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + sum(HydroParam%DZhi(:,iElem)) ) + !HydroParam%Vol(iElem) = 0.d0 + !If (V(HydroParam%eta(iElem)+HydroParam%etaplus(iElem),HydroParam%hb(iElem)) > 0) Then + ! !HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(HydroParam%eta(iElem) + HydroParam%etaplus(iElem)) + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(HydroParam%eta(iElem) + HydroParam%etaplus(iElem) - HydroParam%hb(iElem)) + ! If (HydroParam%DZsi(HydroParam%Smallms(iElem),iElem) > 0) Then + ! HydroParam%Vol(iElem) = HydroParam%Vol(iElem) + MeshParam%Area(iElem)*Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem)) + ! EndIf + !ElseIf (V(HydroParam%eta(iElem) + HydroParam%etaplus(iElem),HydroParam%sb(iElem)) > 0) Then + ! HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(Dot_Product(MeshParam%ei(:,iElem)*MeshParam%Si(:,iElem),HydroParam%DZsi(:,iElem))+HydroParam%etaplus(iElem)) + ! !HydroParam%Vol(iElem) = MeshParam%Area(iElem)*(V(HydroParam%eta(iElem)+HydroParam%etaplus(iElem),HydroParam%sb(iElem)))*MeshParam%ei(HydroParam%Smallms(iElem),iElem) + !EndIf EndDo + !$OMP end parallel do Return End Subroutine Volume \ No newline at end of file diff --git a/WriteOutputs.f90 b/WriteOutputs.f90 index be236e4..570d2fd 100644 --- a/WriteOutputs.f90 +++ b/WriteOutputs.f90 @@ -17,7 +17,7 @@ Subroutine WriteOutputs(simParam,HydroParam,MeshParam,LimnoParam,MeteoParam) type(MeteorologicalParam) :: MeteoParam Character(200):: FileName,Basename - Integer:: i,c,icell,iElem,iLayer + Integer:: i,c,icell,iElem,iLayer,face Real:: V,eair @@ -70,18 +70,43 @@ Subroutine WriteOutputs(simParam,HydroParam,MeshParam,LimnoParam,MeteoParam) ! EndIf ! EndDo ! - ! !Gravando u - ! icell = 1 - ! Basename = 'U' - ! Write(FileName,'(i10)') icell - ! Open(96,FILE=trim(simParam%OutputPath)//'/'//trim(Basename)//trim(FileName)//'.txt',STATUS='UNKNOWN',ACTION='WRITE') !< File to save the positions - ! Do iLayer=1,12 !HydroParam%ElSmallm(icell),HydroParam%ElCapitalM(icell) - ! If (iLayer==HydroParam%ElCapitalM(icell)) Then - ! Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup',HydroParam%u(iLayer,875), HydroParam%u(iLayer,6), HydroParam%ub(iLayer,1,348:360)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) - ! Else - ! Write(96,'(2I10,100F30.20)') simParam%it,iLayer,HydroParam%u(iLayer,875), HydroParam%u(iLayer,6), HydroParam%ub(iLayer,1,348:360)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) - ! EndIf - ! EndDo + !Gravando u!CAYO + !BENCH 01: + ! icell = 3!41 + ! face = 9 !123 + ! Basename = 'U' + ! Write(FileName,'(i10)') icell + ! Open(96,FILE=trim(simParam%OutputPath)//'/'//trim(Basename)//trim(FileName)//'.txt',STATUS='UNKNOWN',ACTION='WRITE') !< File to save the positions + ! iLayer = 1 + ! Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup',HydroParam%u(iLayer,337), HydroParam%H(337), HydroParam%u(iLayer,457),HydroParam%H(457),HydroParam%u(iLayer,757),HydroParam%H(757) + !! Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup',HydroParam%Vol(icell-1),HydroParam%Vol(icell),HydroParam%Vol(icell+1), HydroParam%u(iLayer,face), HydroParam%H(face), HydroParam%u(iLayer,face),HydroParam%H(face),HydroParam%u(iLayer,face),HydroParam%H(face) + ! !iLayer = 2 + ! !Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup', HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! ! + !BENCH02: + icell = 41!41 + face = 123!122 + Basename = 'U' + Write(FileName,'(i10)') icell + Open(96,FILE=trim(simParam%OutputPath)//'/'//trim(Basename)//trim(FileName)//'.txt',STATUS='UNKNOWN',ACTION='WRITE') !< File to save the positions + + iLayer = 1 + !!Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup', HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + !!Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup', HydroParam%Vol(icell-1),HydroParam%Vol(icell),HydroParam%Vol(icell+1), HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup', HydroParam%Vol(icell-1),HydroParam%Vol(icell),HydroParam%Vol(icell+1), HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + !Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup', HydroParam%Vol(icell), HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! + !! + !Do iLayer=HydroParam%ElSmallm(icell),HydroParam%ElCapitalM(icell) !HydroParam%ElSmallm(icell),HydroParam%ElCapitalM(icell) + ! If (iLayer==HydroParam%ElCapitalM(icell)) Then + ! Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup', HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! !Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup',HydroParam%u(iLayer,face), HydroParam%H(face), HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! Else + ! Write(96,'(2I10,100F30.20)') simParam%it,iLayer,HydroParam%u(iLayer,face), HydroParam%H(face),simParam%dt, HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! + ! !Write(96,'(2I10,100F30.20)') simParam%it,iLayer,HydroParam%u(iLayer,face), HydroParam%H(face), HydroParam%u(iLayer,122), HydroParam%H(122), HydroParam%ub(iLayer,2,icell), HydroParam%eta(icell)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! EndIf + !EndDo ! ! !Gravando V ! icell = 1 @@ -178,15 +203,15 @@ Subroutine WriteOutputs(simParam,HydroParam,MeshParam,LimnoParam,MeteoParam) ! EndIf ! EndDo ! - ! !Gravando u - ! icell = 1 - ! Do iLayer=1,12 !HydroParam%ElSmallm(icell),HydroParam%ElCapitalM(icell) - ! If (iLayer==HydroParam%ElCapitalM(icell)) Then - ! Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup',HydroParam%u(iLayer,875), HydroParam%u(iLayer,6), HydroParam%ub(iLayer,1,348:360)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) - ! Else - ! Write(96,'(2I10,100F30.20)') simParam%it,iLayer,HydroParam%u(iLayer,875), HydroParam%u(iLayer,6), HydroParam%ub(iLayer,1,348:360)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) - ! EndIf - ! EndDo + !Gravando u !CAYO + !icell = 1 + !Do iLayer=1,2 !HydroParam%ElSmallm(icell),HydroParam%ElCapitalM(icell) + ! If (iLayer==HydroParam%ElCapitalM(icell)) Then + ! Write(96,'(I10,A10,100F30.20)') simParam%it,'Sup',HydroParam%u(iLayer,337), HydroParam%H(337), HydroParam%u(iLayer,457),HydroParam%H(457),HydroParam%u(iLayer,757),HydroParam%H(757) !HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! Else + ! Write(96,'(2I10,100F30.20)') simParam%it,iLayer,HydroParam%u(iLayer,875), HydroParam%u(iLayer,6), HydroParam%ub(iLayer,1,348:360)!HydroParam%u(iLayer,874),HydroParam%u(iLayer,875),HydroParam%u(iLayer,856),HydroParam%u(iLayer,876),HydroParam%Fu(iLayer,874),HydroParam%Fu(iLayer,875),HydroParam%Fu(iLayer,856),HydroParam%Fu(iLayer,876) !HydroParam%ub(iLayer,1,1),HydroParam%ub(iLayer,1,2),HydroParam%ub(iLayer,1,3),HydroParam%ub(iLayer,1,4),HydroParam%ub(iLayer,1,5),HydroParam%ub(iLayer,1,6),HydroParam%ub(iLayer,1,7),HydroParam%ub(iLayer,1,8),HydroParam%ub(iLayer,1,9),HydroParam%ub(iLayer,1,10),HydroParam%ub(iLayer,1,11),HydroParam%ub(iLayer,1,12),HydroParam%ub(iLayer,1,13),HydroParam%ub(iLayer,1,14),HydroParam%ub(iLayer,1,15),HydroParam%ub(iLayer,1,16),HydroParam%ub(iLayer,1,17),HydroParam%ub(iLayer,1,18),HydroParam%ub(iLayer,1,19),HydroParam%ub(iLayer,1,20) + ! EndIf + !EndDo ! ! !Gravando v ! icell = 1 diff --git a/fort.10 b/fort.10 new file mode 100644 index 0000000..9bb023d --- /dev/null +++ b/fort.10 @@ -0,0 +1,36466 @@ +CELLS 4050 36450 + 8 4184 4185 4182 4183 2 3 0 1 + 8 4187 4184 4183 4186 5 2 1 4 + 8 4189 4187 4186 4188 7 5 4 6 + 8 4191 4189 4188 4190 9 7 6 8 + 8 4193 4191 4190 4192 11 9 8 10 + 8 4195 4193 4192 4194 13 11 10 12 + 8 4197 4195 4194 4196 15 13 12 14 + 8 4199 4197 4196 4198 17 15 14 16 + 8 4201 4199 4198 4200 19 17 16 18 + 8 4203 4201 4200 4202 21 19 18 20 + 8 4205 4203 4202 4204 23 21 20 22 + 8 4207 4205 4204 4206 25 23 22 24 + 8 4209 4207 4206 4208 27 25 24 26 + 8 4211 4209 4208 4210 29 27 26 28 + 8 4213 4211 4210 4212 31 29 28 30 + 8 4215 4213 4212 4214 33 31 30 32 + 8 4217 4215 4214 4216 35 33 32 34 + 8 4219 4217 4216 4218 37 35 34 36 + 8 4221 4219 4218 4220 39 37 36 38 + 8 4223 4221 4220 4222 41 39 38 40 + 8 4225 4223 4222 4224 43 41 40 42 + 8 4227 4225 4224 4226 45 43 42 44 + 8 4229 4227 4226 4228 47 45 44 46 + 8 4231 4229 4228 4230 49 47 46 48 + 8 4233 4231 4230 4232 51 49 48 50 + 8 4235 4233 4232 4234 53 51 50 52 + 8 4237 4235 4234 4236 55 53 52 54 + 8 4239 4237 4236 4238 57 55 54 56 + 8 4241 4239 4238 4240 59 57 56 58 + 8 4243 4241 4240 4242 61 59 58 60 + 8 4245 4243 4242 4244 63 61 60 62 + 8 4247 4245 4244 4246 65 63 62 64 + 8 4249 4247 4246 4248 67 65 64 66 + 8 4251 4249 4248 4250 69 67 66 68 + 8 4253 4251 4250 4252 71 69 68 70 + 8 4255 4253 4252 4254 73 71 70 72 + 8 4257 4255 4254 4256 75 73 72 74 + 8 4259 4257 4256 4258 77 75 74 76 + 8 4261 4259 4258 4260 79 77 76 78 + 8 4263 4261 4260 4262 81 79 78 80 + 8 4265 4263 4262 4264 83 81 80 82 + 8 4267 4265 4264 4266 85 83 82 84 + 8 4269 4267 4266 4268 87 85 84 86 + 8 4271 4269 4268 4270 89 87 86 88 + 8 4273 4271 4270 4272 91 89 88 90 + 8 4275 4273 4272 4274 93 91 90 92 + 8 4277 4275 4274 4276 95 93 92 94 + 8 4279 4277 4276 4278 97 95 94 96 + 8 4281 4279 4278 4280 99 97 96 98 + 8 4283 4281 4280 4282 101 99 98 100 + 8 4285 4283 4282 4284 103 101 100 102 + 8 4287 4285 4284 4286 105 103 102 104 + 8 4289 4287 4286 4288 107 105 104 106 + 8 4291 4289 4288 4290 109 107 106 108 + 8 4293 4291 4290 4292 111 109 108 110 + 8 4295 4293 4292 4294 113 111 110 112 + 8 4297 4295 4294 4296 115 113 112 114 + 8 4299 4297 4296 4298 117 115 114 116 + 8 4301 4299 4298 4300 119 117 116 118 + 8 4303 4301 4300 4302 121 119 118 120 + 8 4305 4303 4302 4304 123 121 120 122 + 8 4307 4305 4304 4306 125 123 122 124 + 8 4309 4307 4306 4308 127 125 124 126 + 8 4311 4309 4308 4310 129 127 126 128 + 8 4313 4311 4310 4312 131 129 128 130 + 8 4315 4313 4312 4314 133 131 130 132 + 8 4317 4315 4314 4316 135 133 132 134 + 8 4319 4317 4316 4318 137 135 134 136 + 8 4321 4319 4318 4320 139 137 136 138 + 8 4323 4321 4320 4322 141 139 138 140 + 8 4325 4323 4322 4324 143 141 140 142 + 8 4327 4325 4324 4326 145 143 142 144 + 8 4329 4327 4326 4328 147 145 144 146 + 8 4331 4329 4328 4330 149 147 146 148 + 8 4333 4331 4330 4332 151 149 148 150 + 8 4335 4333 4332 4334 153 151 150 152 + 8 4337 4335 4334 4336 155 153 152 154 + 8 4339 4337 4336 4338 157 155 154 156 + 8 4341 4339 4338 4340 159 157 156 158 + 8 4343 4341 4340 4342 161 159 158 160 + 8 4345 4343 4342 4344 163 161 160 162 + 8 4346 4347 4185 4184 164 165 3 2 + 8 4348 4346 4184 4187 166 164 2 5 + 8 4349 4348 4187 4189 167 166 5 7 + 8 4350 4349 4189 4191 168 167 7 9 + 8 4351 4350 4191 4193 169 168 9 11 + 8 4352 4351 4193 4195 170 169 11 13 + 8 4353 4352 4195 4197 171 170 13 15 + 8 4354 4353 4197 4199 172 171 15 17 + 8 4355 4354 4199 4201 173 172 17 19 + 8 4356 4355 4201 4203 174 173 19 21 + 8 4357 4356 4203 4205 175 174 21 23 + 8 4358 4357 4205 4207 176 175 23 25 + 8 4359 4358 4207 4209 177 176 25 27 + 8 4360 4359 4209 4211 178 177 27 29 + 8 4361 4360 4211 4213 179 178 29 31 + 8 4362 4361 4213 4215 180 179 31 33 + 8 4363 4362 4215 4217 181 180 33 35 + 8 4364 4363 4217 4219 182 181 35 37 + 8 4365 4364 4219 4221 183 182 37 39 + 8 4366 4365 4221 4223 184 183 39 41 + 8 4367 4366 4223 4225 185 184 41 43 + 8 4368 4367 4225 4227 186 185 43 45 + 8 4369 4368 4227 4229 187 186 45 47 + 8 4370 4369 4229 4231 188 187 47 49 + 8 4371 4370 4231 4233 189 188 49 51 + 8 4372 4371 4233 4235 190 189 51 53 + 8 4373 4372 4235 4237 191 190 53 55 + 8 4374 4373 4237 4239 192 191 55 57 + 8 4375 4374 4239 4241 193 192 57 59 + 8 4376 4375 4241 4243 194 193 59 61 + 8 4377 4376 4243 4245 195 194 61 63 + 8 4378 4377 4245 4247 196 195 63 65 + 8 4379 4378 4247 4249 197 196 65 67 + 8 4380 4379 4249 4251 198 197 67 69 + 8 4381 4380 4251 4253 199 198 69 71 + 8 4382 4381 4253 4255 200 199 71 73 + 8 4383 4382 4255 4257 201 200 73 75 + 8 4384 4383 4257 4259 202 201 75 77 + 8 4385 4384 4259 4261 203 202 77 79 + 8 4386 4385 4261 4263 204 203 79 81 + 8 4387 4386 4263 4265 205 204 81 83 + 8 4388 4387 4265 4267 206 205 83 85 + 8 4389 4388 4267 4269 207 206 85 87 + 8 4390 4389 4269 4271 208 207 87 89 + 8 4391 4390 4271 4273 209 208 89 91 + 8 4392 4391 4273 4275 210 209 91 93 + 8 4393 4392 4275 4277 211 210 93 95 + 8 4394 4393 4277 4279 212 211 95 97 + 8 4395 4394 4279 4281 213 212 97 99 + 8 4396 4395 4281 4283 214 213 99 101 + 8 4397 4396 4283 4285 215 214 101 103 + 8 4398 4397 4285 4287 216 215 103 105 + 8 4399 4398 4287 4289 217 216 105 107 + 8 4400 4399 4289 4291 218 217 107 109 + 8 4401 4400 4291 4293 219 218 109 111 + 8 4402 4401 4293 4295 220 219 111 113 + 8 4403 4402 4295 4297 221 220 113 115 + 8 4404 4403 4297 4299 222 221 115 117 + 8 4405 4404 4299 4301 223 222 117 119 + 8 4406 4405 4301 4303 224 223 119 121 + 8 4407 4406 4303 4305 225 224 121 123 + 8 4408 4407 4305 4307 226 225 123 125 + 8 4409 4408 4307 4309 227 226 125 127 + 8 4410 4409 4309 4311 228 227 127 129 + 8 4411 4410 4311 4313 229 228 129 131 + 8 4412 4411 4313 4315 230 229 131 133 + 8 4413 4412 4315 4317 231 230 133 135 + 8 4414 4413 4317 4319 232 231 135 137 + 8 4415 4414 4319 4321 233 232 137 139 + 8 4416 4415 4321 4323 234 233 139 141 + 8 4417 4416 4323 4325 235 234 141 143 + 8 4418 4417 4325 4327 236 235 143 145 + 8 4419 4418 4327 4329 237 236 145 147 + 8 4420 4419 4329 4331 238 237 147 149 + 8 4421 4420 4331 4333 239 238 149 151 + 8 4422 4421 4333 4335 240 239 151 153 + 8 4423 4422 4335 4337 241 240 153 155 + 8 4424 4423 4337 4339 242 241 155 157 + 8 4425 4424 4339 4341 243 242 157 159 + 8 4426 4425 4341 4343 244 243 159 161 + 8 4427 4426 4343 4345 245 244 161 163 + 8 4428 4429 4347 4346 246 247 165 164 + 8 4430 4428 4346 4348 248 246 164 166 + 8 4431 4430 4348 4349 249 248 166 167 + 8 4432 4431 4349 4350 250 249 167 168 + 8 4433 4432 4350 4351 251 250 168 169 + 8 4434 4433 4351 4352 252 251 169 170 + 8 4435 4434 4352 4353 253 252 170 171 + 8 4436 4435 4353 4354 254 253 171 172 + 8 4437 4436 4354 4355 255 254 172 173 + 8 4438 4437 4355 4356 256 255 173 174 + 8 4439 4438 4356 4357 257 256 174 175 + 8 4440 4439 4357 4358 258 257 175 176 + 8 4441 4440 4358 4359 259 258 176 177 + 8 4442 4441 4359 4360 260 259 177 178 + 8 4443 4442 4360 4361 261 260 178 179 + 8 4444 4443 4361 4362 262 261 179 180 + 8 4445 4444 4362 4363 263 262 180 181 + 8 4446 4445 4363 4364 264 263 181 182 + 8 4447 4446 4364 4365 265 264 182 183 + 8 4448 4447 4365 4366 266 265 183 184 + 8 4449 4448 4366 4367 267 266 184 185 + 8 4450 4449 4367 4368 268 267 185 186 + 8 4451 4450 4368 4369 269 268 186 187 + 8 4452 4451 4369 4370 270 269 187 188 + 8 4453 4452 4370 4371 271 270 188 189 + 8 4454 4453 4371 4372 272 271 189 190 + 8 4455 4454 4372 4373 273 272 190 191 + 8 4456 4455 4373 4374 274 273 191 192 + 8 4457 4456 4374 4375 275 274 192 193 + 8 4458 4457 4375 4376 276 275 193 194 + 8 4459 4458 4376 4377 277 276 194 195 + 8 4460 4459 4377 4378 278 277 195 196 + 8 4461 4460 4378 4379 279 278 196 197 + 8 4462 4461 4379 4380 280 279 197 198 + 8 4463 4462 4380 4381 281 280 198 199 + 8 4464 4463 4381 4382 282 281 199 200 + 8 4465 4464 4382 4383 283 282 200 201 + 8 4466 4465 4383 4384 284 283 201 202 + 8 4467 4466 4384 4385 285 284 202 203 + 8 4468 4467 4385 4386 286 285 203 204 + 8 4469 4468 4386 4387 287 286 204 205 + 8 4470 4469 4387 4388 288 287 205 206 + 8 4471 4470 4388 4389 289 288 206 207 + 8 4472 4471 4389 4390 290 289 207 208 + 8 4473 4472 4390 4391 291 290 208 209 + 8 4474 4473 4391 4392 292 291 209 210 + 8 4475 4474 4392 4393 293 292 210 211 + 8 4476 4475 4393 4394 294 293 211 212 + 8 4477 4476 4394 4395 295 294 212 213 + 8 4478 4477 4395 4396 296 295 213 214 + 8 4479 4478 4396 4397 297 296 214 215 + 8 4480 4479 4397 4398 298 297 215 216 + 8 4481 4480 4398 4399 299 298 216 217 + 8 4482 4481 4399 4400 300 299 217 218 + 8 4483 4482 4400 4401 301 300 218 219 + 8 4484 4483 4401 4402 302 301 219 220 + 8 4485 4484 4402 4403 303 302 220 221 + 8 4486 4485 4403 4404 304 303 221 222 + 8 4487 4486 4404 4405 305 304 222 223 + 8 4488 4487 4405 4406 306 305 223 224 + 8 4489 4488 4406 4407 307 306 224 225 + 8 4490 4489 4407 4408 308 307 225 226 + 8 4491 4490 4408 4409 309 308 226 227 + 8 4492 4491 4409 4410 310 309 227 228 + 8 4493 4492 4410 4411 311 310 228 229 + 8 4494 4493 4411 4412 312 311 229 230 + 8 4495 4494 4412 4413 313 312 230 231 + 8 4496 4495 4413 4414 314 313 231 232 + 8 4497 4496 4414 4415 315 314 232 233 + 8 4498 4497 4415 4416 316 315 233 234 + 8 4499 4498 4416 4417 317 316 234 235 + 8 4500 4499 4417 4418 318 317 235 236 + 8 4501 4500 4418 4419 319 318 236 237 + 8 4502 4501 4419 4420 320 319 237 238 + 8 4503 4502 4420 4421 321 320 238 239 + 8 4504 4503 4421 4422 322 321 239 240 + 8 4505 4504 4422 4423 323 322 240 241 + 8 4506 4505 4423 4424 324 323 241 242 + 8 4507 4506 4424 4425 325 324 242 243 + 8 4508 4507 4425 4426 326 325 243 244 + 8 4509 4508 4426 4427 327 326 244 245 + 8 4510 4511 4429 4428 328 329 247 246 + 8 4512 4510 4428 4430 330 328 246 248 + 8 4513 4512 4430 4431 331 330 248 249 + 8 4514 4513 4431 4432 332 331 249 250 + 8 4515 4514 4432 4433 333 332 250 251 + 8 4516 4515 4433 4434 334 333 251 252 + 8 4517 4516 4434 4435 335 334 252 253 + 8 4518 4517 4435 4436 336 335 253 254 + 8 4519 4518 4436 4437 337 336 254 255 + 8 4520 4519 4437 4438 338 337 255 256 + 8 4521 4520 4438 4439 339 338 256 257 + 8 4522 4521 4439 4440 340 339 257 258 + 8 4523 4522 4440 4441 341 340 258 259 + 8 4524 4523 4441 4442 342 341 259 260 + 8 4525 4524 4442 4443 343 342 260 261 + 8 4526 4525 4443 4444 344 343 261 262 + 8 4527 4526 4444 4445 345 344 262 263 + 8 4528 4527 4445 4446 346 345 263 264 + 8 4529 4528 4446 4447 347 346 264 265 + 8 4530 4529 4447 4448 348 347 265 266 + 8 4531 4530 4448 4449 349 348 266 267 + 8 4532 4531 4449 4450 350 349 267 268 + 8 4533 4532 4450 4451 351 350 268 269 + 8 4534 4533 4451 4452 352 351 269 270 + 8 4535 4534 4452 4453 353 352 270 271 + 8 4536 4535 4453 4454 354 353 271 272 + 8 4537 4536 4454 4455 355 354 272 273 + 8 4538 4537 4455 4456 356 355 273 274 + 8 4539 4538 4456 4457 357 356 274 275 + 8 4540 4539 4457 4458 358 357 275 276 + 8 4541 4540 4458 4459 359 358 276 277 + 8 4542 4541 4459 4460 360 359 277 278 + 8 4543 4542 4460 4461 361 360 278 279 + 8 4544 4543 4461 4462 362 361 279 280 + 8 4545 4544 4462 4463 363 362 280 281 + 8 4546 4545 4463 4464 364 363 281 282 + 8 4547 4546 4464 4465 365 364 282 283 + 8 4548 4547 4465 4466 366 365 283 284 + 8 4549 4548 4466 4467 367 366 284 285 + 8 4550 4549 4467 4468 368 367 285 286 + 8 4551 4550 4468 4469 369 368 286 287 + 8 4552 4551 4469 4470 370 369 287 288 + 8 4553 4552 4470 4471 371 370 288 289 + 8 4554 4553 4471 4472 372 371 289 290 + 8 4555 4554 4472 4473 373 372 290 291 + 8 4556 4555 4473 4474 374 373 291 292 + 8 4557 4556 4474 4475 375 374 292 293 + 8 4558 4557 4475 4476 376 375 293 294 + 8 4559 4558 4476 4477 377 376 294 295 + 8 4560 4559 4477 4478 378 377 295 296 + 8 4561 4560 4478 4479 379 378 296 297 + 8 4562 4561 4479 4480 380 379 297 298 + 8 4563 4562 4480 4481 381 380 298 299 + 8 4564 4563 4481 4482 382 381 299 300 + 8 4565 4564 4482 4483 383 382 300 301 + 8 4566 4565 4483 4484 384 383 301 302 + 8 4567 4566 4484 4485 385 384 302 303 + 8 4568 4567 4485 4486 386 385 303 304 + 8 4569 4568 4486 4487 387 386 304 305 + 8 4570 4569 4487 4488 388 387 305 306 + 8 4571 4570 4488 4489 389 388 306 307 + 8 4572 4571 4489 4490 390 389 307 308 + 8 4573 4572 4490 4491 391 390 308 309 + 8 4574 4573 4491 4492 392 391 309 310 + 8 4575 4574 4492 4493 393 392 310 311 + 8 4576 4575 4493 4494 394 393 311 312 + 8 4577 4576 4494 4495 395 394 312 313 + 8 4578 4577 4495 4496 396 395 313 314 + 8 4579 4578 4496 4497 397 396 314 315 + 8 4580 4579 4497 4498 398 397 315 316 + 8 4581 4580 4498 4499 399 398 316 317 + 8 4582 4581 4499 4500 400 399 317 318 + 8 4583 4582 4500 4501 401 400 318 319 + 8 4584 4583 4501 4502 402 401 319 320 + 8 4585 4584 4502 4503 403 402 320 321 + 8 4586 4585 4503 4504 404 403 321 322 + 8 4587 4586 4504 4505 405 404 322 323 + 8 4588 4587 4505 4506 406 405 323 324 + 8 4589 4588 4506 4507 407 406 324 325 + 8 4590 4589 4507 4508 408 407 325 326 + 8 4591 4590 4508 4509 409 408 326 327 + 8 4592 4593 4511 4510 410 411 329 328 + 8 4594 4592 4510 4512 412 410 328 330 + 8 4595 4594 4512 4513 413 412 330 331 + 8 4596 4595 4513 4514 414 413 331 332 + 8 4597 4596 4514 4515 415 414 332 333 + 8 4598 4597 4515 4516 416 415 333 334 + 8 4599 4598 4516 4517 417 416 334 335 + 8 4600 4599 4517 4518 418 417 335 336 + 8 4601 4600 4518 4519 419 418 336 337 + 8 4602 4601 4519 4520 420 419 337 338 + 8 4603 4602 4520 4521 421 420 338 339 + 8 4604 4603 4521 4522 422 421 339 340 + 8 4605 4604 4522 4523 423 422 340 341 + 8 4606 4605 4523 4524 424 423 341 342 + 8 4607 4606 4524 4525 425 424 342 343 + 8 4608 4607 4525 4526 426 425 343 344 + 8 4609 4608 4526 4527 427 426 344 345 + 8 4610 4609 4527 4528 428 427 345 346 + 8 4611 4610 4528 4529 429 428 346 347 + 8 4612 4611 4529 4530 430 429 347 348 + 8 4613 4612 4530 4531 431 430 348 349 + 8 4614 4613 4531 4532 432 431 349 350 + 8 4615 4614 4532 4533 433 432 350 351 + 8 4616 4615 4533 4534 434 433 351 352 + 8 4617 4616 4534 4535 435 434 352 353 + 8 4618 4617 4535 4536 436 435 353 354 + 8 4619 4618 4536 4537 437 436 354 355 + 8 4620 4619 4537 4538 438 437 355 356 + 8 4621 4620 4538 4539 439 438 356 357 + 8 4622 4621 4539 4540 440 439 357 358 + 8 4623 4622 4540 4541 441 440 358 359 + 8 4624 4623 4541 4542 442 441 359 360 + 8 4625 4624 4542 4543 443 442 360 361 + 8 4626 4625 4543 4544 444 443 361 362 + 8 4627 4626 4544 4545 445 444 362 363 + 8 4628 4627 4545 4546 446 445 363 364 + 8 4629 4628 4546 4547 447 446 364 365 + 8 4630 4629 4547 4548 448 447 365 366 + 8 4631 4630 4548 4549 449 448 366 367 + 8 4632 4631 4549 4550 450 449 367 368 + 8 4633 4632 4550 4551 451 450 368 369 + 8 4634 4633 4551 4552 452 451 369 370 + 8 4635 4634 4552 4553 453 452 370 371 + 8 4636 4635 4553 4554 454 453 371 372 + 8 4637 4636 4554 4555 455 454 372 373 + 8 4638 4637 4555 4556 456 455 373 374 + 8 4639 4638 4556 4557 457 456 374 375 + 8 4640 4639 4557 4558 458 457 375 376 + 8 4641 4640 4558 4559 459 458 376 377 + 8 4642 4641 4559 4560 460 459 377 378 + 8 4643 4642 4560 4561 461 460 378 379 + 8 4644 4643 4561 4562 462 461 379 380 + 8 4645 4644 4562 4563 463 462 380 381 + 8 4646 4645 4563 4564 464 463 381 382 + 8 4647 4646 4564 4565 465 464 382 383 + 8 4648 4647 4565 4566 466 465 383 384 + 8 4649 4648 4566 4567 467 466 384 385 + 8 4650 4649 4567 4568 468 467 385 386 + 8 4651 4650 4568 4569 469 468 386 387 + 8 4652 4651 4569 4570 470 469 387 388 + 8 4653 4652 4570 4571 471 470 388 389 + 8 4654 4653 4571 4572 472 471 389 390 + 8 4655 4654 4572 4573 473 472 390 391 + 8 4656 4655 4573 4574 474 473 391 392 + 8 4657 4656 4574 4575 475 474 392 393 + 8 4658 4657 4575 4576 476 475 393 394 + 8 4659 4658 4576 4577 477 476 394 395 + 8 4660 4659 4577 4578 478 477 395 396 + 8 4661 4660 4578 4579 479 478 396 397 + 8 4662 4661 4579 4580 480 479 397 398 + 8 4663 4662 4580 4581 481 480 398 399 + 8 4664 4663 4581 4582 482 481 399 400 + 8 4665 4664 4582 4583 483 482 400 401 + 8 4666 4665 4583 4584 484 483 401 402 + 8 4667 4666 4584 4585 485 484 402 403 + 8 4668 4667 4585 4586 486 485 403 404 + 8 4669 4668 4586 4587 487 486 404 405 + 8 4670 4669 4587 4588 488 487 405 406 + 8 4671 4670 4588 4589 489 488 406 407 + 8 4672 4671 4589 4590 490 489 407 408 + 8 4673 4672 4590 4591 491 490 408 409 + 8 4674 4675 4593 4592 492 493 411 410 + 8 4676 4674 4592 4594 494 492 410 412 + 8 4677 4676 4594 4595 495 494 412 413 + 8 4678 4677 4595 4596 496 495 413 414 + 8 4679 4678 4596 4597 497 496 414 415 + 8 4680 4679 4597 4598 498 497 415 416 + 8 4681 4680 4598 4599 499 498 416 417 + 8 4682 4681 4599 4600 500 499 417 418 + 8 4683 4682 4600 4601 501 500 418 419 + 8 4684 4683 4601 4602 502 501 419 420 + 8 4685 4684 4602 4603 503 502 420 421 + 8 4686 4685 4603 4604 504 503 421 422 + 8 4687 4686 4604 4605 505 504 422 423 + 8 4688 4687 4605 4606 506 505 423 424 + 8 4689 4688 4606 4607 507 506 424 425 + 8 4690 4689 4607 4608 508 507 425 426 + 8 4691 4690 4608 4609 509 508 426 427 + 8 4692 4691 4609 4610 510 509 427 428 + 8 4693 4692 4610 4611 511 510 428 429 + 8 4694 4693 4611 4612 512 511 429 430 + 8 4695 4694 4612 4613 513 512 430 431 + 8 4696 4695 4613 4614 514 513 431 432 + 8 4697 4696 4614 4615 515 514 432 433 + 8 4698 4697 4615 4616 516 515 433 434 + 8 4699 4698 4616 4617 517 516 434 435 + 8 4700 4699 4617 4618 518 517 435 436 + 8 4701 4700 4618 4619 519 518 436 437 + 8 4702 4701 4619 4620 520 519 437 438 + 8 4703 4702 4620 4621 521 520 438 439 + 8 4704 4703 4621 4622 522 521 439 440 + 8 4705 4704 4622 4623 523 522 440 441 + 8 4706 4705 4623 4624 524 523 441 442 + 8 4707 4706 4624 4625 525 524 442 443 + 8 4708 4707 4625 4626 526 525 443 444 + 8 4709 4708 4626 4627 527 526 444 445 + 8 4710 4709 4627 4628 528 527 445 446 + 8 4711 4710 4628 4629 529 528 446 447 + 8 4712 4711 4629 4630 530 529 447 448 + 8 4713 4712 4630 4631 531 530 448 449 + 8 4714 4713 4631 4632 532 531 449 450 + 8 4715 4714 4632 4633 533 532 450 451 + 8 4716 4715 4633 4634 534 533 451 452 + 8 4717 4716 4634 4635 535 534 452 453 + 8 4718 4717 4635 4636 536 535 453 454 + 8 4719 4718 4636 4637 537 536 454 455 + 8 4720 4719 4637 4638 538 537 455 456 + 8 4721 4720 4638 4639 539 538 456 457 + 8 4722 4721 4639 4640 540 539 457 458 + 8 4723 4722 4640 4641 541 540 458 459 + 8 4724 4723 4641 4642 542 541 459 460 + 8 4725 4724 4642 4643 543 542 460 461 + 8 4726 4725 4643 4644 544 543 461 462 + 8 4727 4726 4644 4645 545 544 462 463 + 8 4728 4727 4645 4646 546 545 463 464 + 8 4729 4728 4646 4647 547 546 464 465 + 8 4730 4729 4647 4648 548 547 465 466 + 8 4731 4730 4648 4649 549 548 466 467 + 8 4732 4731 4649 4650 550 549 467 468 + 8 4733 4732 4650 4651 551 550 468 469 + 8 4734 4733 4651 4652 552 551 469 470 + 8 4735 4734 4652 4653 553 552 470 471 + 8 4736 4735 4653 4654 554 553 471 472 + 8 4737 4736 4654 4655 555 554 472 473 + 8 4738 4737 4655 4656 556 555 473 474 + 8 4739 4738 4656 4657 557 556 474 475 + 8 4740 4739 4657 4658 558 557 475 476 + 8 4741 4740 4658 4659 559 558 476 477 + 8 4742 4741 4659 4660 560 559 477 478 + 8 4743 4742 4660 4661 561 560 478 479 + 8 4744 4743 4661 4662 562 561 479 480 + 8 4745 4744 4662 4663 563 562 480 481 + 8 4746 4745 4663 4664 564 563 481 482 + 8 4747 4746 4664 4665 565 564 482 483 + 8 4748 4747 4665 4666 566 565 483 484 + 8 4749 4748 4666 4667 567 566 484 485 + 8 4750 4749 4667 4668 568 567 485 486 + 8 4751 4750 4668 4669 569 568 486 487 + 8 4752 4751 4669 4670 570 569 487 488 + 8 4753 4752 4670 4671 571 570 488 489 + 8 4754 4753 4671 4672 572 571 489 490 + 8 4755 4754 4672 4673 573 572 490 491 + 8 4756 4757 4675 4674 574 575 493 492 + 8 4758 4756 4674 4676 576 574 492 494 + 8 4759 4758 4676 4677 577 576 494 495 + 8 4760 4759 4677 4678 578 577 495 496 + 8 4761 4760 4678 4679 579 578 496 497 + 8 4762 4761 4679 4680 580 579 497 498 + 8 4763 4762 4680 4681 581 580 498 499 + 8 4764 4763 4681 4682 582 581 499 500 + 8 4765 4764 4682 4683 583 582 500 501 + 8 4766 4765 4683 4684 584 583 501 502 + 8 4767 4766 4684 4685 585 584 502 503 + 8 4768 4767 4685 4686 586 585 503 504 + 8 4769 4768 4686 4687 587 586 504 505 + 8 4770 4769 4687 4688 588 587 505 506 + 8 4771 4770 4688 4689 589 588 506 507 + 8 4772 4771 4689 4690 590 589 507 508 + 8 4773 4772 4690 4691 591 590 508 509 + 8 4774 4773 4691 4692 592 591 509 510 + 8 4775 4774 4692 4693 593 592 510 511 + 8 4776 4775 4693 4694 594 593 511 512 + 8 4777 4776 4694 4695 595 594 512 513 + 8 4778 4777 4695 4696 596 595 513 514 + 8 4779 4778 4696 4697 597 596 514 515 + 8 4780 4779 4697 4698 598 597 515 516 + 8 4781 4780 4698 4699 599 598 516 517 + 8 4782 4781 4699 4700 600 599 517 518 + 8 4783 4782 4700 4701 601 600 518 519 + 8 4784 4783 4701 4702 602 601 519 520 + 8 4785 4784 4702 4703 603 602 520 521 + 8 4786 4785 4703 4704 604 603 521 522 + 8 4787 4786 4704 4705 605 604 522 523 + 8 4788 4787 4705 4706 606 605 523 524 + 8 4789 4788 4706 4707 607 606 524 525 + 8 4790 4789 4707 4708 608 607 525 526 + 8 4791 4790 4708 4709 609 608 526 527 + 8 4792 4791 4709 4710 610 609 527 528 + 8 4793 4792 4710 4711 611 610 528 529 + 8 4794 4793 4711 4712 612 611 529 530 + 8 4795 4794 4712 4713 613 612 530 531 + 8 4796 4795 4713 4714 614 613 531 532 + 8 4797 4796 4714 4715 615 614 532 533 + 8 4798 4797 4715 4716 616 615 533 534 + 8 4799 4798 4716 4717 617 616 534 535 + 8 4800 4799 4717 4718 618 617 535 536 + 8 4801 4800 4718 4719 619 618 536 537 + 8 4802 4801 4719 4720 620 619 537 538 + 8 4803 4802 4720 4721 621 620 538 539 + 8 4804 4803 4721 4722 622 621 539 540 + 8 4805 4804 4722 4723 623 622 540 541 + 8 4806 4805 4723 4724 624 623 541 542 + 8 4807 4806 4724 4725 625 624 542 543 + 8 4808 4807 4725 4726 626 625 543 544 + 8 4809 4808 4726 4727 627 626 544 545 + 8 4810 4809 4727 4728 628 627 545 546 + 8 4811 4810 4728 4729 629 628 546 547 + 8 4812 4811 4729 4730 630 629 547 548 + 8 4813 4812 4730 4731 631 630 548 549 + 8 4814 4813 4731 4732 632 631 549 550 + 8 4815 4814 4732 4733 633 632 550 551 + 8 4816 4815 4733 4734 634 633 551 552 + 8 4817 4816 4734 4735 635 634 552 553 + 8 4818 4817 4735 4736 636 635 553 554 + 8 4819 4818 4736 4737 637 636 554 555 + 8 4820 4819 4737 4738 638 637 555 556 + 8 4821 4820 4738 4739 639 638 556 557 + 8 4822 4821 4739 4740 640 639 557 558 + 8 4823 4822 4740 4741 641 640 558 559 + 8 4824 4823 4741 4742 642 641 559 560 + 8 4825 4824 4742 4743 643 642 560 561 + 8 4826 4825 4743 4744 644 643 561 562 + 8 4827 4826 4744 4745 645 644 562 563 + 8 4828 4827 4745 4746 646 645 563 564 + 8 4829 4828 4746 4747 647 646 564 565 + 8 4830 4829 4747 4748 648 647 565 566 + 8 4831 4830 4748 4749 649 648 566 567 + 8 4832 4831 4749 4750 650 649 567 568 + 8 4833 4832 4750 4751 651 650 568 569 + 8 4834 4833 4751 4752 652 651 569 570 + 8 4835 4834 4752 4753 653 652 570 571 + 8 4836 4835 4753 4754 654 653 571 572 + 8 4837 4836 4754 4755 655 654 572 573 + 8 4838 4839 4757 4756 656 657 575 574 + 8 4840 4838 4756 4758 658 656 574 576 + 8 4841 4840 4758 4759 659 658 576 577 + 8 4842 4841 4759 4760 660 659 577 578 + 8 4843 4842 4760 4761 661 660 578 579 + 8 4844 4843 4761 4762 662 661 579 580 + 8 4845 4844 4762 4763 663 662 580 581 + 8 4846 4845 4763 4764 664 663 581 582 + 8 4847 4846 4764 4765 665 664 582 583 + 8 4848 4847 4765 4766 666 665 583 584 + 8 4849 4848 4766 4767 667 666 584 585 + 8 4850 4849 4767 4768 668 667 585 586 + 8 4851 4850 4768 4769 669 668 586 587 + 8 4852 4851 4769 4770 670 669 587 588 + 8 4853 4852 4770 4771 671 670 588 589 + 8 4854 4853 4771 4772 672 671 589 590 + 8 4855 4854 4772 4773 673 672 590 591 + 8 4856 4855 4773 4774 674 673 591 592 + 8 4857 4856 4774 4775 675 674 592 593 + 8 4858 4857 4775 4776 676 675 593 594 + 8 4859 4858 4776 4777 677 676 594 595 + 8 4860 4859 4777 4778 678 677 595 596 + 8 4861 4860 4778 4779 679 678 596 597 + 8 4862 4861 4779 4780 680 679 597 598 + 8 4863 4862 4780 4781 681 680 598 599 + 8 4864 4863 4781 4782 682 681 599 600 + 8 4865 4864 4782 4783 683 682 600 601 + 8 4866 4865 4783 4784 684 683 601 602 + 8 4867 4866 4784 4785 685 684 602 603 + 8 4868 4867 4785 4786 686 685 603 604 + 8 4869 4868 4786 4787 687 686 604 605 + 8 4870 4869 4787 4788 688 687 605 606 + 8 4871 4870 4788 4789 689 688 606 607 + 8 4872 4871 4789 4790 690 689 607 608 + 8 4873 4872 4790 4791 691 690 608 609 + 8 4874 4873 4791 4792 692 691 609 610 + 8 4875 4874 4792 4793 693 692 610 611 + 8 4876 4875 4793 4794 694 693 611 612 + 8 4877 4876 4794 4795 695 694 612 613 + 8 4878 4877 4795 4796 696 695 613 614 + 8 4879 4878 4796 4797 697 696 614 615 + 8 4880 4879 4797 4798 698 697 615 616 + 8 4881 4880 4798 4799 699 698 616 617 + 8 4882 4881 4799 4800 700 699 617 618 + 8 4883 4882 4800 4801 701 700 618 619 + 8 4884 4883 4801 4802 702 701 619 620 + 8 4885 4884 4802 4803 703 702 620 621 + 8 4886 4885 4803 4804 704 703 621 622 + 8 4887 4886 4804 4805 705 704 622 623 + 8 4888 4887 4805 4806 706 705 623 624 + 8 4889 4888 4806 4807 707 706 624 625 + 8 4890 4889 4807 4808 708 707 625 626 + 8 4891 4890 4808 4809 709 708 626 627 + 8 4892 4891 4809 4810 710 709 627 628 + 8 4893 4892 4810 4811 711 710 628 629 + 8 4894 4893 4811 4812 712 711 629 630 + 8 4895 4894 4812 4813 713 712 630 631 + 8 4896 4895 4813 4814 714 713 631 632 + 8 4897 4896 4814 4815 715 714 632 633 + 8 4898 4897 4815 4816 716 715 633 634 + 8 4899 4898 4816 4817 717 716 634 635 + 8 4900 4899 4817 4818 718 717 635 636 + 8 4901 4900 4818 4819 719 718 636 637 + 8 4902 4901 4819 4820 720 719 637 638 + 8 4903 4902 4820 4821 721 720 638 639 + 8 4904 4903 4821 4822 722 721 639 640 + 8 4905 4904 4822 4823 723 722 640 641 + 8 4906 4905 4823 4824 724 723 641 642 + 8 4907 4906 4824 4825 725 724 642 643 + 8 4908 4907 4825 4826 726 725 643 644 + 8 4909 4908 4826 4827 727 726 644 645 + 8 4910 4909 4827 4828 728 727 645 646 + 8 4911 4910 4828 4829 729 728 646 647 + 8 4912 4911 4829 4830 730 729 647 648 + 8 4913 4912 4830 4831 731 730 648 649 + 8 4914 4913 4831 4832 732 731 649 650 + 8 4915 4914 4832 4833 733 732 650 651 + 8 4916 4915 4833 4834 734 733 651 652 + 8 4917 4916 4834 4835 735 734 652 653 + 8 4918 4917 4835 4836 736 735 653 654 + 8 4919 4918 4836 4837 737 736 654 655 + 8 4920 4921 4839 4838 738 739 657 656 + 8 4922 4920 4838 4840 740 738 656 658 + 8 4923 4922 4840 4841 741 740 658 659 + 8 4924 4923 4841 4842 742 741 659 660 + 8 4925 4924 4842 4843 743 742 660 661 + 8 4926 4925 4843 4844 744 743 661 662 + 8 4927 4926 4844 4845 745 744 662 663 + 8 4928 4927 4845 4846 746 745 663 664 + 8 4929 4928 4846 4847 747 746 664 665 + 8 4930 4929 4847 4848 748 747 665 666 + 8 4931 4930 4848 4849 749 748 666 667 + 8 4932 4931 4849 4850 750 749 667 668 + 8 4933 4932 4850 4851 751 750 668 669 + 8 4934 4933 4851 4852 752 751 669 670 + 8 4935 4934 4852 4853 753 752 670 671 + 8 4936 4935 4853 4854 754 753 671 672 + 8 4937 4936 4854 4855 755 754 672 673 + 8 4938 4937 4855 4856 756 755 673 674 + 8 4939 4938 4856 4857 757 756 674 675 + 8 4940 4939 4857 4858 758 757 675 676 + 8 4941 4940 4858 4859 759 758 676 677 + 8 4942 4941 4859 4860 760 759 677 678 + 8 4943 4942 4860 4861 761 760 678 679 + 8 4944 4943 4861 4862 762 761 679 680 + 8 4945 4944 4862 4863 763 762 680 681 + 8 4946 4945 4863 4864 764 763 681 682 + 8 4947 4946 4864 4865 765 764 682 683 + 8 4948 4947 4865 4866 766 765 683 684 + 8 4949 4948 4866 4867 767 766 684 685 + 8 4950 4949 4867 4868 768 767 685 686 + 8 4951 4950 4868 4869 769 768 686 687 + 8 4952 4951 4869 4870 770 769 687 688 + 8 4953 4952 4870 4871 771 770 688 689 + 8 4954 4953 4871 4872 772 771 689 690 + 8 4955 4954 4872 4873 773 772 690 691 + 8 4956 4955 4873 4874 774 773 691 692 + 8 4957 4956 4874 4875 775 774 692 693 + 8 4958 4957 4875 4876 776 775 693 694 + 8 4959 4958 4876 4877 777 776 694 695 + 8 4960 4959 4877 4878 778 777 695 696 + 8 4961 4960 4878 4879 779 778 696 697 + 8 4962 4961 4879 4880 780 779 697 698 + 8 4963 4962 4880 4881 781 780 698 699 + 8 4964 4963 4881 4882 782 781 699 700 + 8 4965 4964 4882 4883 783 782 700 701 + 8 4966 4965 4883 4884 784 783 701 702 + 8 4967 4966 4884 4885 785 784 702 703 + 8 4968 4967 4885 4886 786 785 703 704 + 8 4969 4968 4886 4887 787 786 704 705 + 8 4970 4969 4887 4888 788 787 705 706 + 8 4971 4970 4888 4889 789 788 706 707 + 8 4972 4971 4889 4890 790 789 707 708 + 8 4973 4972 4890 4891 791 790 708 709 + 8 4974 4973 4891 4892 792 791 709 710 + 8 4975 4974 4892 4893 793 792 710 711 + 8 4976 4975 4893 4894 794 793 711 712 + 8 4977 4976 4894 4895 795 794 712 713 + 8 4978 4977 4895 4896 796 795 713 714 + 8 4979 4978 4896 4897 797 796 714 715 + 8 4980 4979 4897 4898 798 797 715 716 + 8 4981 4980 4898 4899 799 798 716 717 + 8 4982 4981 4899 4900 800 799 717 718 + 8 4983 4982 4900 4901 801 800 718 719 + 8 4984 4983 4901 4902 802 801 719 720 + 8 4985 4984 4902 4903 803 802 720 721 + 8 4986 4985 4903 4904 804 803 721 722 + 8 4987 4986 4904 4905 805 804 722 723 + 8 4988 4987 4905 4906 806 805 723 724 + 8 4989 4988 4906 4907 807 806 724 725 + 8 4990 4989 4907 4908 808 807 725 726 + 8 4991 4990 4908 4909 809 808 726 727 + 8 4992 4991 4909 4910 810 809 727 728 + 8 4993 4992 4910 4911 811 810 728 729 + 8 4994 4993 4911 4912 812 811 729 730 + 8 4995 4994 4912 4913 813 812 730 731 + 8 4996 4995 4913 4914 814 813 731 732 + 8 4997 4996 4914 4915 815 814 732 733 + 8 4998 4997 4915 4916 816 815 733 734 + 8 4999 4998 4916 4917 817 816 734 735 + 8 5000 4999 4917 4918 818 817 735 736 + 8 5001 5000 4918 4919 819 818 736 737 + 8 5002 5003 4921 4920 820 821 739 738 + 8 5004 5002 4920 4922 822 820 738 740 + 8 5005 5004 4922 4923 823 822 740 741 + 8 5006 5005 4923 4924 824 823 741 742 + 8 5007 5006 4924 4925 825 824 742 743 + 8 5008 5007 4925 4926 826 825 743 744 + 8 5009 5008 4926 4927 827 826 744 745 + 8 5010 5009 4927 4928 828 827 745 746 + 8 5011 5010 4928 4929 829 828 746 747 + 8 5012 5011 4929 4930 830 829 747 748 + 8 5013 5012 4930 4931 831 830 748 749 + 8 5014 5013 4931 4932 832 831 749 750 + 8 5015 5014 4932 4933 833 832 750 751 + 8 5016 5015 4933 4934 834 833 751 752 + 8 5017 5016 4934 4935 835 834 752 753 + 8 5018 5017 4935 4936 836 835 753 754 + 8 5019 5018 4936 4937 837 836 754 755 + 8 5020 5019 4937 4938 838 837 755 756 + 8 5021 5020 4938 4939 839 838 756 757 + 8 5022 5021 4939 4940 840 839 757 758 + 8 5023 5022 4940 4941 841 840 758 759 + 8 5024 5023 4941 4942 842 841 759 760 + 8 5025 5024 4942 4943 843 842 760 761 + 8 5026 5025 4943 4944 844 843 761 762 + 8 5027 5026 4944 4945 845 844 762 763 + 8 5028 5027 4945 4946 846 845 763 764 + 8 5029 5028 4946 4947 847 846 764 765 + 8 5030 5029 4947 4948 848 847 765 766 + 8 5031 5030 4948 4949 849 848 766 767 + 8 5032 5031 4949 4950 850 849 767 768 + 8 5033 5032 4950 4951 851 850 768 769 + 8 5034 5033 4951 4952 852 851 769 770 + 8 5035 5034 4952 4953 853 852 770 771 + 8 5036 5035 4953 4954 854 853 771 772 + 8 5037 5036 4954 4955 855 854 772 773 + 8 5038 5037 4955 4956 856 855 773 774 + 8 5039 5038 4956 4957 857 856 774 775 + 8 5040 5039 4957 4958 858 857 775 776 + 8 5041 5040 4958 4959 859 858 776 777 + 8 5042 5041 4959 4960 860 859 777 778 + 8 5043 5042 4960 4961 861 860 778 779 + 8 5044 5043 4961 4962 862 861 779 780 + 8 5045 5044 4962 4963 863 862 780 781 + 8 5046 5045 4963 4964 864 863 781 782 + 8 5047 5046 4964 4965 865 864 782 783 + 8 5048 5047 4965 4966 866 865 783 784 + 8 5049 5048 4966 4967 867 866 784 785 + 8 5050 5049 4967 4968 868 867 785 786 + 8 5051 5050 4968 4969 869 868 786 787 + 8 5052 5051 4969 4970 870 869 787 788 + 8 5053 5052 4970 4971 871 870 788 789 + 8 5054 5053 4971 4972 872 871 789 790 + 8 5055 5054 4972 4973 873 872 790 791 + 8 5056 5055 4973 4974 874 873 791 792 + 8 5057 5056 4974 4975 875 874 792 793 + 8 5058 5057 4975 4976 876 875 793 794 + 8 5059 5058 4976 4977 877 876 794 795 + 8 5060 5059 4977 4978 878 877 795 796 + 8 5061 5060 4978 4979 879 878 796 797 + 8 5062 5061 4979 4980 880 879 797 798 + 8 5063 5062 4980 4981 881 880 798 799 + 8 5064 5063 4981 4982 882 881 799 800 + 8 5065 5064 4982 4983 883 882 800 801 + 8 5066 5065 4983 4984 884 883 801 802 + 8 5067 5066 4984 4985 885 884 802 803 + 8 5068 5067 4985 4986 886 885 803 804 + 8 5069 5068 4986 4987 887 886 804 805 + 8 5070 5069 4987 4988 888 887 805 806 + 8 5071 5070 4988 4989 889 888 806 807 + 8 5072 5071 4989 4990 890 889 807 808 + 8 5073 5072 4990 4991 891 890 808 809 + 8 5074 5073 4991 4992 892 891 809 810 + 8 5075 5074 4992 4993 893 892 810 811 + 8 5076 5075 4993 4994 894 893 811 812 + 8 5077 5076 4994 4995 895 894 812 813 + 8 5078 5077 4995 4996 896 895 813 814 + 8 5079 5078 4996 4997 897 896 814 815 + 8 5080 5079 4997 4998 898 897 815 816 + 8 5081 5080 4998 4999 899 898 816 817 + 8 5082 5081 4999 5000 900 899 817 818 + 8 5083 5082 5000 5001 901 900 818 819 + 8 5084 5085 5003 5002 902 903 821 820 + 8 5086 5084 5002 5004 904 902 820 822 + 8 5087 5086 5004 5005 905 904 822 823 + 8 5088 5087 5005 5006 906 905 823 824 + 8 5089 5088 5006 5007 907 906 824 825 + 8 5090 5089 5007 5008 908 907 825 826 + 8 5091 5090 5008 5009 909 908 826 827 + 8 5092 5091 5009 5010 910 909 827 828 + 8 5093 5092 5010 5011 911 910 828 829 + 8 5094 5093 5011 5012 912 911 829 830 + 8 5095 5094 5012 5013 913 912 830 831 + 8 5096 5095 5013 5014 914 913 831 832 + 8 5097 5096 5014 5015 915 914 832 833 + 8 5098 5097 5015 5016 916 915 833 834 + 8 5099 5098 5016 5017 917 916 834 835 + 8 5100 5099 5017 5018 918 917 835 836 + 8 5101 5100 5018 5019 919 918 836 837 + 8 5102 5101 5019 5020 920 919 837 838 + 8 5103 5102 5020 5021 921 920 838 839 + 8 5104 5103 5021 5022 922 921 839 840 + 8 5105 5104 5022 5023 923 922 840 841 + 8 5106 5105 5023 5024 924 923 841 842 + 8 5107 5106 5024 5025 925 924 842 843 + 8 5108 5107 5025 5026 926 925 843 844 + 8 5109 5108 5026 5027 927 926 844 845 + 8 5110 5109 5027 5028 928 927 845 846 + 8 5111 5110 5028 5029 929 928 846 847 + 8 5112 5111 5029 5030 930 929 847 848 + 8 5113 5112 5030 5031 931 930 848 849 + 8 5114 5113 5031 5032 932 931 849 850 + 8 5115 5114 5032 5033 933 932 850 851 + 8 5116 5115 5033 5034 934 933 851 852 + 8 5117 5116 5034 5035 935 934 852 853 + 8 5118 5117 5035 5036 936 935 853 854 + 8 5119 5118 5036 5037 937 936 854 855 + 8 5120 5119 5037 5038 938 937 855 856 + 8 5121 5120 5038 5039 939 938 856 857 + 8 5122 5121 5039 5040 940 939 857 858 + 8 5123 5122 5040 5041 941 940 858 859 + 8 5124 5123 5041 5042 942 941 859 860 + 8 5125 5124 5042 5043 943 942 860 861 + 8 5126 5125 5043 5044 944 943 861 862 + 8 5127 5126 5044 5045 945 944 862 863 + 8 5128 5127 5045 5046 946 945 863 864 + 8 5129 5128 5046 5047 947 946 864 865 + 8 5130 5129 5047 5048 948 947 865 866 + 8 5131 5130 5048 5049 949 948 866 867 + 8 5132 5131 5049 5050 950 949 867 868 + 8 5133 5132 5050 5051 951 950 868 869 + 8 5134 5133 5051 5052 952 951 869 870 + 8 5135 5134 5052 5053 953 952 870 871 + 8 5136 5135 5053 5054 954 953 871 872 + 8 5137 5136 5054 5055 955 954 872 873 + 8 5138 5137 5055 5056 956 955 873 874 + 8 5139 5138 5056 5057 957 956 874 875 + 8 5140 5139 5057 5058 958 957 875 876 + 8 5141 5140 5058 5059 959 958 876 877 + 8 5142 5141 5059 5060 960 959 877 878 + 8 5143 5142 5060 5061 961 960 878 879 + 8 5144 5143 5061 5062 962 961 879 880 + 8 5145 5144 5062 5063 963 962 880 881 + 8 5146 5145 5063 5064 964 963 881 882 + 8 5147 5146 5064 5065 965 964 882 883 + 8 5148 5147 5065 5066 966 965 883 884 + 8 5149 5148 5066 5067 967 966 884 885 + 8 5150 5149 5067 5068 968 967 885 886 + 8 5151 5150 5068 5069 969 968 886 887 + 8 5152 5151 5069 5070 970 969 887 888 + 8 5153 5152 5070 5071 971 970 888 889 + 8 5154 5153 5071 5072 972 971 889 890 + 8 5155 5154 5072 5073 973 972 890 891 + 8 5156 5155 5073 5074 974 973 891 892 + 8 5157 5156 5074 5075 975 974 892 893 + 8 5158 5157 5075 5076 976 975 893 894 + 8 5159 5158 5076 5077 977 976 894 895 + 8 5160 5159 5077 5078 978 977 895 896 + 8 5161 5160 5078 5079 979 978 896 897 + 8 5162 5161 5079 5080 980 979 897 898 + 8 5163 5162 5080 5081 981 980 898 899 + 8 5164 5163 5081 5082 982 981 899 900 + 8 5165 5164 5082 5083 983 982 900 901 + 8 5166 5167 5085 5084 984 985 903 902 + 8 5168 5166 5084 5086 986 984 902 904 + 8 5169 5168 5086 5087 987 986 904 905 + 8 5170 5169 5087 5088 988 987 905 906 + 8 5171 5170 5088 5089 989 988 906 907 + 8 5172 5171 5089 5090 990 989 907 908 + 8 5173 5172 5090 5091 991 990 908 909 + 8 5174 5173 5091 5092 992 991 909 910 + 8 5175 5174 5092 5093 993 992 910 911 + 8 5176 5175 5093 5094 994 993 911 912 + 8 5177 5176 5094 5095 995 994 912 913 + 8 5178 5177 5095 5096 996 995 913 914 + 8 5179 5178 5096 5097 997 996 914 915 + 8 5180 5179 5097 5098 998 997 915 916 + 8 5181 5180 5098 5099 999 998 916 917 + 8 5182 5181 5099 5100 1000 999 917 918 + 8 5183 5182 5100 5101 1001 1000 918 919 + 8 5184 5183 5101 5102 1002 1001 919 920 + 8 5185 5184 5102 5103 1003 1002 920 921 + 8 5186 5185 5103 5104 1004 1003 921 922 + 8 5187 5186 5104 5105 1005 1004 922 923 + 8 5188 5187 5105 5106 1006 1005 923 924 + 8 5189 5188 5106 5107 1007 1006 924 925 + 8 5190 5189 5107 5108 1008 1007 925 926 + 8 5191 5190 5108 5109 1009 1008 926 927 + 8 5192 5191 5109 5110 1010 1009 927 928 + 8 5193 5192 5110 5111 1011 1010 928 929 + 8 5194 5193 5111 5112 1012 1011 929 930 + 8 5195 5194 5112 5113 1013 1012 930 931 + 8 5196 5195 5113 5114 1014 1013 931 932 + 8 5197 5196 5114 5115 1015 1014 932 933 + 8 5198 5197 5115 5116 1016 1015 933 934 + 8 5199 5198 5116 5117 1017 1016 934 935 + 8 5200 5199 5117 5118 1018 1017 935 936 + 8 5201 5200 5118 5119 1019 1018 936 937 + 8 5202 5201 5119 5120 1020 1019 937 938 + 8 5203 5202 5120 5121 1021 1020 938 939 + 8 5204 5203 5121 5122 1022 1021 939 940 + 8 5205 5204 5122 5123 1023 1022 940 941 + 8 5206 5205 5123 5124 1024 1023 941 942 + 8 5207 5206 5124 5125 1025 1024 942 943 + 8 5208 5207 5125 5126 1026 1025 943 944 + 8 5209 5208 5126 5127 1027 1026 944 945 + 8 5210 5209 5127 5128 1028 1027 945 946 + 8 5211 5210 5128 5129 1029 1028 946 947 + 8 5212 5211 5129 5130 1030 1029 947 948 + 8 5213 5212 5130 5131 1031 1030 948 949 + 8 5214 5213 5131 5132 1032 1031 949 950 + 8 5215 5214 5132 5133 1033 1032 950 951 + 8 5216 5215 5133 5134 1034 1033 951 952 + 8 5217 5216 5134 5135 1035 1034 952 953 + 8 5218 5217 5135 5136 1036 1035 953 954 + 8 5219 5218 5136 5137 1037 1036 954 955 + 8 5220 5219 5137 5138 1038 1037 955 956 + 8 5221 5220 5138 5139 1039 1038 956 957 + 8 5222 5221 5139 5140 1040 1039 957 958 + 8 5223 5222 5140 5141 1041 1040 958 959 + 8 5224 5223 5141 5142 1042 1041 959 960 + 8 5225 5224 5142 5143 1043 1042 960 961 + 8 5226 5225 5143 5144 1044 1043 961 962 + 8 5227 5226 5144 5145 1045 1044 962 963 + 8 5228 5227 5145 5146 1046 1045 963 964 + 8 5229 5228 5146 5147 1047 1046 964 965 + 8 5230 5229 5147 5148 1048 1047 965 966 + 8 5231 5230 5148 5149 1049 1048 966 967 + 8 5232 5231 5149 5150 1050 1049 967 968 + 8 5233 5232 5150 5151 1051 1050 968 969 + 8 5234 5233 5151 5152 1052 1051 969 970 + 8 5235 5234 5152 5153 1053 1052 970 971 + 8 5236 5235 5153 5154 1054 1053 971 972 + 8 5237 5236 5154 5155 1055 1054 972 973 + 8 5238 5237 5155 5156 1056 1055 973 974 + 8 5239 5238 5156 5157 1057 1056 974 975 + 8 5240 5239 5157 5158 1058 1057 975 976 + 8 5241 5240 5158 5159 1059 1058 976 977 + 8 5242 5241 5159 5160 1060 1059 977 978 + 8 5243 5242 5160 5161 1061 1060 978 979 + 8 5244 5243 5161 5162 1062 1061 979 980 + 8 5245 5244 5162 5163 1063 1062 980 981 + 8 5246 5245 5163 5164 1064 1063 981 982 + 8 5247 5246 5164 5165 1065 1064 982 983 + 8 5248 5249 5167 5166 1066 1067 985 984 + 8 5250 5248 5166 5168 1068 1066 984 986 + 8 5251 5250 5168 5169 1069 1068 986 987 + 8 5252 5251 5169 5170 1070 1069 987 988 + 8 5253 5252 5170 5171 1071 1070 988 989 + 8 5254 5253 5171 5172 1072 1071 989 990 + 8 5255 5254 5172 5173 1073 1072 990 991 + 8 5256 5255 5173 5174 1074 1073 991 992 + 8 5257 5256 5174 5175 1075 1074 992 993 + 8 5258 5257 5175 5176 1076 1075 993 994 + 8 5259 5258 5176 5177 1077 1076 994 995 + 8 5260 5259 5177 5178 1078 1077 995 996 + 8 5261 5260 5178 5179 1079 1078 996 997 + 8 5262 5261 5179 5180 1080 1079 997 998 + 8 5263 5262 5180 5181 1081 1080 998 999 + 8 5264 5263 5181 5182 1082 1081 999 1000 + 8 5265 5264 5182 5183 1083 1082 1000 1001 + 8 5266 5265 5183 5184 1084 1083 1001 1002 + 8 5267 5266 5184 5185 1085 1084 1002 1003 + 8 5268 5267 5185 5186 1086 1085 1003 1004 + 8 5269 5268 5186 5187 1087 1086 1004 1005 + 8 5270 5269 5187 5188 1088 1087 1005 1006 + 8 5271 5270 5188 5189 1089 1088 1006 1007 + 8 5272 5271 5189 5190 1090 1089 1007 1008 + 8 5273 5272 5190 5191 1091 1090 1008 1009 + 8 5274 5273 5191 5192 1092 1091 1009 1010 + 8 5275 5274 5192 5193 1093 1092 1010 1011 + 8 5276 5275 5193 5194 1094 1093 1011 1012 + 8 5277 5276 5194 5195 1095 1094 1012 1013 + 8 5278 5277 5195 5196 1096 1095 1013 1014 + 8 5279 5278 5196 5197 1097 1096 1014 1015 + 8 5280 5279 5197 5198 1098 1097 1015 1016 + 8 5281 5280 5198 5199 1099 1098 1016 1017 + 8 5282 5281 5199 5200 1100 1099 1017 1018 + 8 5283 5282 5200 5201 1101 1100 1018 1019 + 8 5284 5283 5201 5202 1102 1101 1019 1020 + 8 5285 5284 5202 5203 1103 1102 1020 1021 + 8 5286 5285 5203 5204 1104 1103 1021 1022 + 8 5287 5286 5204 5205 1105 1104 1022 1023 + 8 5288 5287 5205 5206 1106 1105 1023 1024 + 8 5289 5288 5206 5207 1107 1106 1024 1025 + 8 5290 5289 5207 5208 1108 1107 1025 1026 + 8 5291 5290 5208 5209 1109 1108 1026 1027 + 8 5292 5291 5209 5210 1110 1109 1027 1028 + 8 5293 5292 5210 5211 1111 1110 1028 1029 + 8 5294 5293 5211 5212 1112 1111 1029 1030 + 8 5295 5294 5212 5213 1113 1112 1030 1031 + 8 5296 5295 5213 5214 1114 1113 1031 1032 + 8 5297 5296 5214 5215 1115 1114 1032 1033 + 8 5298 5297 5215 5216 1116 1115 1033 1034 + 8 5299 5298 5216 5217 1117 1116 1034 1035 + 8 5300 5299 5217 5218 1118 1117 1035 1036 + 8 5301 5300 5218 5219 1119 1118 1036 1037 + 8 5302 5301 5219 5220 1120 1119 1037 1038 + 8 5303 5302 5220 5221 1121 1120 1038 1039 + 8 5304 5303 5221 5222 1122 1121 1039 1040 + 8 5305 5304 5222 5223 1123 1122 1040 1041 + 8 5306 5305 5223 5224 1124 1123 1041 1042 + 8 5307 5306 5224 5225 1125 1124 1042 1043 + 8 5308 5307 5225 5226 1126 1125 1043 1044 + 8 5309 5308 5226 5227 1127 1126 1044 1045 + 8 5310 5309 5227 5228 1128 1127 1045 1046 + 8 5311 5310 5228 5229 1129 1128 1046 1047 + 8 5312 5311 5229 5230 1130 1129 1047 1048 + 8 5313 5312 5230 5231 1131 1130 1048 1049 + 8 5314 5313 5231 5232 1132 1131 1049 1050 + 8 5315 5314 5232 5233 1133 1132 1050 1051 + 8 5316 5315 5233 5234 1134 1133 1051 1052 + 8 5317 5316 5234 5235 1135 1134 1052 1053 + 8 5318 5317 5235 5236 1136 1135 1053 1054 + 8 5319 5318 5236 5237 1137 1136 1054 1055 + 8 5320 5319 5237 5238 1138 1137 1055 1056 + 8 5321 5320 5238 5239 1139 1138 1056 1057 + 8 5322 5321 5239 5240 1140 1139 1057 1058 + 8 5323 5322 5240 5241 1141 1140 1058 1059 + 8 5324 5323 5241 5242 1142 1141 1059 1060 + 8 5325 5324 5242 5243 1143 1142 1060 1061 + 8 5326 5325 5243 5244 1144 1143 1061 1062 + 8 5327 5326 5244 5245 1145 1144 1062 1063 + 8 5328 5327 5245 5246 1146 1145 1063 1064 + 8 5329 5328 5246 5247 1147 1146 1064 1065 + 8 5330 5331 5249 5248 1148 1149 1067 1066 + 8 5332 5330 5248 5250 1150 1148 1066 1068 + 8 5333 5332 5250 5251 1151 1150 1068 1069 + 8 5334 5333 5251 5252 1152 1151 1069 1070 + 8 5335 5334 5252 5253 1153 1152 1070 1071 + 8 5336 5335 5253 5254 1154 1153 1071 1072 + 8 5337 5336 5254 5255 1155 1154 1072 1073 + 8 5338 5337 5255 5256 1156 1155 1073 1074 + 8 5339 5338 5256 5257 1157 1156 1074 1075 + 8 5340 5339 5257 5258 1158 1157 1075 1076 + 8 5341 5340 5258 5259 1159 1158 1076 1077 + 8 5342 5341 5259 5260 1160 1159 1077 1078 + 8 5343 5342 5260 5261 1161 1160 1078 1079 + 8 5344 5343 5261 5262 1162 1161 1079 1080 + 8 5345 5344 5262 5263 1163 1162 1080 1081 + 8 5346 5345 5263 5264 1164 1163 1081 1082 + 8 5347 5346 5264 5265 1165 1164 1082 1083 + 8 5348 5347 5265 5266 1166 1165 1083 1084 + 8 5349 5348 5266 5267 1167 1166 1084 1085 + 8 5350 5349 5267 5268 1168 1167 1085 1086 + 8 5351 5350 5268 5269 1169 1168 1086 1087 + 8 5352 5351 5269 5270 1170 1169 1087 1088 + 8 5353 5352 5270 5271 1171 1170 1088 1089 + 8 5354 5353 5271 5272 1172 1171 1089 1090 + 8 5355 5354 5272 5273 1173 1172 1090 1091 + 8 5356 5355 5273 5274 1174 1173 1091 1092 + 8 5357 5356 5274 5275 1175 1174 1092 1093 + 8 5358 5357 5275 5276 1176 1175 1093 1094 + 8 5359 5358 5276 5277 1177 1176 1094 1095 + 8 5360 5359 5277 5278 1178 1177 1095 1096 + 8 5361 5360 5278 5279 1179 1178 1096 1097 + 8 5362 5361 5279 5280 1180 1179 1097 1098 + 8 5363 5362 5280 5281 1181 1180 1098 1099 + 8 5364 5363 5281 5282 1182 1181 1099 1100 + 8 5365 5364 5282 5283 1183 1182 1100 1101 + 8 5366 5365 5283 5284 1184 1183 1101 1102 + 8 5367 5366 5284 5285 1185 1184 1102 1103 + 8 5368 5367 5285 5286 1186 1185 1103 1104 + 8 5369 5368 5286 5287 1187 1186 1104 1105 + 8 5370 5369 5287 5288 1188 1187 1105 1106 + 8 5371 5370 5288 5289 1189 1188 1106 1107 + 8 5372 5371 5289 5290 1190 1189 1107 1108 + 8 5373 5372 5290 5291 1191 1190 1108 1109 + 8 5374 5373 5291 5292 1192 1191 1109 1110 + 8 5375 5374 5292 5293 1193 1192 1110 1111 + 8 5376 5375 5293 5294 1194 1193 1111 1112 + 8 5377 5376 5294 5295 1195 1194 1112 1113 + 8 5378 5377 5295 5296 1196 1195 1113 1114 + 8 5379 5378 5296 5297 1197 1196 1114 1115 + 8 5380 5379 5297 5298 1198 1197 1115 1116 + 8 5381 5380 5298 5299 1199 1198 1116 1117 + 8 5382 5381 5299 5300 1200 1199 1117 1118 + 8 5383 5382 5300 5301 1201 1200 1118 1119 + 8 5384 5383 5301 5302 1202 1201 1119 1120 + 8 5385 5384 5302 5303 1203 1202 1120 1121 + 8 5386 5385 5303 5304 1204 1203 1121 1122 + 8 5387 5386 5304 5305 1205 1204 1122 1123 + 8 5388 5387 5305 5306 1206 1205 1123 1124 + 8 5389 5388 5306 5307 1207 1206 1124 1125 + 8 5390 5389 5307 5308 1208 1207 1125 1126 + 8 5391 5390 5308 5309 1209 1208 1126 1127 + 8 5392 5391 5309 5310 1210 1209 1127 1128 + 8 5393 5392 5310 5311 1211 1210 1128 1129 + 8 5394 5393 5311 5312 1212 1211 1129 1130 + 8 5395 5394 5312 5313 1213 1212 1130 1131 + 8 5396 5395 5313 5314 1214 1213 1131 1132 + 8 5397 5396 5314 5315 1215 1214 1132 1133 + 8 5398 5397 5315 5316 1216 1215 1133 1134 + 8 5399 5398 5316 5317 1217 1216 1134 1135 + 8 5400 5399 5317 5318 1218 1217 1135 1136 + 8 5401 5400 5318 5319 1219 1218 1136 1137 + 8 5402 5401 5319 5320 1220 1219 1137 1138 + 8 5403 5402 5320 5321 1221 1220 1138 1139 + 8 5404 5403 5321 5322 1222 1221 1139 1140 + 8 5405 5404 5322 5323 1223 1222 1140 1141 + 8 5406 5405 5323 5324 1224 1223 1141 1142 + 8 5407 5406 5324 5325 1225 1224 1142 1143 + 8 5408 5407 5325 5326 1226 1225 1143 1144 + 8 5409 5408 5326 5327 1227 1226 1144 1145 + 8 5410 5409 5327 5328 1228 1227 1145 1146 + 8 5411 5410 5328 5329 1229 1228 1146 1147 + 8 5412 5413 5331 5330 1230 1231 1149 1148 + 8 5414 5412 5330 5332 1232 1230 1148 1150 + 8 5415 5414 5332 5333 1233 1232 1150 1151 + 8 5416 5415 5333 5334 1234 1233 1151 1152 + 8 5417 5416 5334 5335 1235 1234 1152 1153 + 8 5418 5417 5335 5336 1236 1235 1153 1154 + 8 5419 5418 5336 5337 1237 1236 1154 1155 + 8 5420 5419 5337 5338 1238 1237 1155 1156 + 8 5421 5420 5338 5339 1239 1238 1156 1157 + 8 5422 5421 5339 5340 1240 1239 1157 1158 + 8 5423 5422 5340 5341 1241 1240 1158 1159 + 8 5424 5423 5341 5342 1242 1241 1159 1160 + 8 5425 5424 5342 5343 1243 1242 1160 1161 + 8 5426 5425 5343 5344 1244 1243 1161 1162 + 8 5427 5426 5344 5345 1245 1244 1162 1163 + 8 5428 5427 5345 5346 1246 1245 1163 1164 + 8 5429 5428 5346 5347 1247 1246 1164 1165 + 8 5430 5429 5347 5348 1248 1247 1165 1166 + 8 5431 5430 5348 5349 1249 1248 1166 1167 + 8 5432 5431 5349 5350 1250 1249 1167 1168 + 8 5433 5432 5350 5351 1251 1250 1168 1169 + 8 5434 5433 5351 5352 1252 1251 1169 1170 + 8 5435 5434 5352 5353 1253 1252 1170 1171 + 8 5436 5435 5353 5354 1254 1253 1171 1172 + 8 5437 5436 5354 5355 1255 1254 1172 1173 + 8 5438 5437 5355 5356 1256 1255 1173 1174 + 8 5439 5438 5356 5357 1257 1256 1174 1175 + 8 5440 5439 5357 5358 1258 1257 1175 1176 + 8 5441 5440 5358 5359 1259 1258 1176 1177 + 8 5442 5441 5359 5360 1260 1259 1177 1178 + 8 5443 5442 5360 5361 1261 1260 1178 1179 + 8 5444 5443 5361 5362 1262 1261 1179 1180 + 8 5445 5444 5362 5363 1263 1262 1180 1181 + 8 5446 5445 5363 5364 1264 1263 1181 1182 + 8 5447 5446 5364 5365 1265 1264 1182 1183 + 8 5448 5447 5365 5366 1266 1265 1183 1184 + 8 5449 5448 5366 5367 1267 1266 1184 1185 + 8 5450 5449 5367 5368 1268 1267 1185 1186 + 8 5451 5450 5368 5369 1269 1268 1186 1187 + 8 5452 5451 5369 5370 1270 1269 1187 1188 + 8 5453 5452 5370 5371 1271 1270 1188 1189 + 8 5454 5453 5371 5372 1272 1271 1189 1190 + 8 5455 5454 5372 5373 1273 1272 1190 1191 + 8 5456 5455 5373 5374 1274 1273 1191 1192 + 8 5457 5456 5374 5375 1275 1274 1192 1193 + 8 5458 5457 5375 5376 1276 1275 1193 1194 + 8 5459 5458 5376 5377 1277 1276 1194 1195 + 8 5460 5459 5377 5378 1278 1277 1195 1196 + 8 5461 5460 5378 5379 1279 1278 1196 1197 + 8 5462 5461 5379 5380 1280 1279 1197 1198 + 8 5463 5462 5380 5381 1281 1280 1198 1199 + 8 5464 5463 5381 5382 1282 1281 1199 1200 + 8 5465 5464 5382 5383 1283 1282 1200 1201 + 8 5466 5465 5383 5384 1284 1283 1201 1202 + 8 5467 5466 5384 5385 1285 1284 1202 1203 + 8 5468 5467 5385 5386 1286 1285 1203 1204 + 8 5469 5468 5386 5387 1287 1286 1204 1205 + 8 5470 5469 5387 5388 1288 1287 1205 1206 + 8 5471 5470 5388 5389 1289 1288 1206 1207 + 8 5472 5471 5389 5390 1290 1289 1207 1208 + 8 5473 5472 5390 5391 1291 1290 1208 1209 + 8 5474 5473 5391 5392 1292 1291 1209 1210 + 8 5475 5474 5392 5393 1293 1292 1210 1211 + 8 5476 5475 5393 5394 1294 1293 1211 1212 + 8 5477 5476 5394 5395 1295 1294 1212 1213 + 8 5478 5477 5395 5396 1296 1295 1213 1214 + 8 5479 5478 5396 5397 1297 1296 1214 1215 + 8 5480 5479 5397 5398 1298 1297 1215 1216 + 8 5481 5480 5398 5399 1299 1298 1216 1217 + 8 5482 5481 5399 5400 1300 1299 1217 1218 + 8 5483 5482 5400 5401 1301 1300 1218 1219 + 8 5484 5483 5401 5402 1302 1301 1219 1220 + 8 5485 5484 5402 5403 1303 1302 1220 1221 + 8 5486 5485 5403 5404 1304 1303 1221 1222 + 8 5487 5486 5404 5405 1305 1304 1222 1223 + 8 5488 5487 5405 5406 1306 1305 1223 1224 + 8 5489 5488 5406 5407 1307 1306 1224 1225 + 8 5490 5489 5407 5408 1308 1307 1225 1226 + 8 5491 5490 5408 5409 1309 1308 1226 1227 + 8 5492 5491 5409 5410 1310 1309 1227 1228 + 8 5493 5492 5410 5411 1311 1310 1228 1229 + 8 5494 5495 5413 5412 1312 1313 1231 1230 + 8 5496 5494 5412 5414 1314 1312 1230 1232 + 8 5497 5496 5414 5415 1315 1314 1232 1233 + 8 5498 5497 5415 5416 1316 1315 1233 1234 + 8 5499 5498 5416 5417 1317 1316 1234 1235 + 8 5500 5499 5417 5418 1318 1317 1235 1236 + 8 5501 5500 5418 5419 1319 1318 1236 1237 + 8 5502 5501 5419 5420 1320 1319 1237 1238 + 8 5503 5502 5420 5421 1321 1320 1238 1239 + 8 5504 5503 5421 5422 1322 1321 1239 1240 + 8 5505 5504 5422 5423 1323 1322 1240 1241 + 8 5506 5505 5423 5424 1324 1323 1241 1242 + 8 5507 5506 5424 5425 1325 1324 1242 1243 + 8 5508 5507 5425 5426 1326 1325 1243 1244 + 8 5509 5508 5426 5427 1327 1326 1244 1245 + 8 5510 5509 5427 5428 1328 1327 1245 1246 + 8 5511 5510 5428 5429 1329 1328 1246 1247 + 8 5512 5511 5429 5430 1330 1329 1247 1248 + 8 5513 5512 5430 5431 1331 1330 1248 1249 + 8 5514 5513 5431 5432 1332 1331 1249 1250 + 8 5515 5514 5432 5433 1333 1332 1250 1251 + 8 5516 5515 5433 5434 1334 1333 1251 1252 + 8 5517 5516 5434 5435 1335 1334 1252 1253 + 8 5518 5517 5435 5436 1336 1335 1253 1254 + 8 5519 5518 5436 5437 1337 1336 1254 1255 + 8 5520 5519 5437 5438 1338 1337 1255 1256 + 8 5521 5520 5438 5439 1339 1338 1256 1257 + 8 5522 5521 5439 5440 1340 1339 1257 1258 + 8 5523 5522 5440 5441 1341 1340 1258 1259 + 8 5524 5523 5441 5442 1342 1341 1259 1260 + 8 5525 5524 5442 5443 1343 1342 1260 1261 + 8 5526 5525 5443 5444 1344 1343 1261 1262 + 8 5527 5526 5444 5445 1345 1344 1262 1263 + 8 5528 5527 5445 5446 1346 1345 1263 1264 + 8 5529 5528 5446 5447 1347 1346 1264 1265 + 8 5530 5529 5447 5448 1348 1347 1265 1266 + 8 5531 5530 5448 5449 1349 1348 1266 1267 + 8 5532 5531 5449 5450 1350 1349 1267 1268 + 8 5533 5532 5450 5451 1351 1350 1268 1269 + 8 5534 5533 5451 5452 1352 1351 1269 1270 + 8 5535 5534 5452 5453 1353 1352 1270 1271 + 8 5536 5535 5453 5454 1354 1353 1271 1272 + 8 5537 5536 5454 5455 1355 1354 1272 1273 + 8 5538 5537 5455 5456 1356 1355 1273 1274 + 8 5539 5538 5456 5457 1357 1356 1274 1275 + 8 5540 5539 5457 5458 1358 1357 1275 1276 + 8 5541 5540 5458 5459 1359 1358 1276 1277 + 8 5542 5541 5459 5460 1360 1359 1277 1278 + 8 5543 5542 5460 5461 1361 1360 1278 1279 + 8 5544 5543 5461 5462 1362 1361 1279 1280 + 8 5545 5544 5462 5463 1363 1362 1280 1281 + 8 5546 5545 5463 5464 1364 1363 1281 1282 + 8 5547 5546 5464 5465 1365 1364 1282 1283 + 8 5548 5547 5465 5466 1366 1365 1283 1284 + 8 5549 5548 5466 5467 1367 1366 1284 1285 + 8 5550 5549 5467 5468 1368 1367 1285 1286 + 8 5551 5550 5468 5469 1369 1368 1286 1287 + 8 5552 5551 5469 5470 1370 1369 1287 1288 + 8 5553 5552 5470 5471 1371 1370 1288 1289 + 8 5554 5553 5471 5472 1372 1371 1289 1290 + 8 5555 5554 5472 5473 1373 1372 1290 1291 + 8 5556 5555 5473 5474 1374 1373 1291 1292 + 8 5557 5556 5474 5475 1375 1374 1292 1293 + 8 5558 5557 5475 5476 1376 1375 1293 1294 + 8 5559 5558 5476 5477 1377 1376 1294 1295 + 8 5560 5559 5477 5478 1378 1377 1295 1296 + 8 5561 5560 5478 5479 1379 1378 1296 1297 + 8 5562 5561 5479 5480 1380 1379 1297 1298 + 8 5563 5562 5480 5481 1381 1380 1298 1299 + 8 5564 5563 5481 5482 1382 1381 1299 1300 + 8 5565 5564 5482 5483 1383 1382 1300 1301 + 8 5566 5565 5483 5484 1384 1383 1301 1302 + 8 5567 5566 5484 5485 1385 1384 1302 1303 + 8 5568 5567 5485 5486 1386 1385 1303 1304 + 8 5569 5568 5486 5487 1387 1386 1304 1305 + 8 5570 5569 5487 5488 1388 1387 1305 1306 + 8 5571 5570 5488 5489 1389 1388 1306 1307 + 8 5572 5571 5489 5490 1390 1389 1307 1308 + 8 5573 5572 5490 5491 1391 1390 1308 1309 + 8 5574 5573 5491 5492 1392 1391 1309 1310 + 8 5575 5574 5492 5493 1393 1392 1310 1311 + 8 5576 5577 5495 5494 1394 1395 1313 1312 + 8 5578 5576 5494 5496 1396 1394 1312 1314 + 8 5579 5578 5496 5497 1397 1396 1314 1315 + 8 5580 5579 5497 5498 1398 1397 1315 1316 + 8 5581 5580 5498 5499 1399 1398 1316 1317 + 8 5582 5581 5499 5500 1400 1399 1317 1318 + 8 5583 5582 5500 5501 1401 1400 1318 1319 + 8 5584 5583 5501 5502 1402 1401 1319 1320 + 8 5585 5584 5502 5503 1403 1402 1320 1321 + 8 5586 5585 5503 5504 1404 1403 1321 1322 + 8 5587 5586 5504 5505 1405 1404 1322 1323 + 8 5588 5587 5505 5506 1406 1405 1323 1324 + 8 5589 5588 5506 5507 1407 1406 1324 1325 + 8 5590 5589 5507 5508 1408 1407 1325 1326 + 8 5591 5590 5508 5509 1409 1408 1326 1327 + 8 5592 5591 5509 5510 1410 1409 1327 1328 + 8 5593 5592 5510 5511 1411 1410 1328 1329 + 8 5594 5593 5511 5512 1412 1411 1329 1330 + 8 5595 5594 5512 5513 1413 1412 1330 1331 + 8 5596 5595 5513 5514 1414 1413 1331 1332 + 8 5597 5596 5514 5515 1415 1414 1332 1333 + 8 5598 5597 5515 5516 1416 1415 1333 1334 + 8 5599 5598 5516 5517 1417 1416 1334 1335 + 8 5600 5599 5517 5518 1418 1417 1335 1336 + 8 5601 5600 5518 5519 1419 1418 1336 1337 + 8 5602 5601 5519 5520 1420 1419 1337 1338 + 8 5603 5602 5520 5521 1421 1420 1338 1339 + 8 5604 5603 5521 5522 1422 1421 1339 1340 + 8 5605 5604 5522 5523 1423 1422 1340 1341 + 8 5606 5605 5523 5524 1424 1423 1341 1342 + 8 5607 5606 5524 5525 1425 1424 1342 1343 + 8 5608 5607 5525 5526 1426 1425 1343 1344 + 8 5609 5608 5526 5527 1427 1426 1344 1345 + 8 5610 5609 5527 5528 1428 1427 1345 1346 + 8 5611 5610 5528 5529 1429 1428 1346 1347 + 8 5612 5611 5529 5530 1430 1429 1347 1348 + 8 5613 5612 5530 5531 1431 1430 1348 1349 + 8 5614 5613 5531 5532 1432 1431 1349 1350 + 8 5615 5614 5532 5533 1433 1432 1350 1351 + 8 5616 5615 5533 5534 1434 1433 1351 1352 + 8 5617 5616 5534 5535 1435 1434 1352 1353 + 8 5618 5617 5535 5536 1436 1435 1353 1354 + 8 5619 5618 5536 5537 1437 1436 1354 1355 + 8 5620 5619 5537 5538 1438 1437 1355 1356 + 8 5621 5620 5538 5539 1439 1438 1356 1357 + 8 5622 5621 5539 5540 1440 1439 1357 1358 + 8 5623 5622 5540 5541 1441 1440 1358 1359 + 8 5624 5623 5541 5542 1442 1441 1359 1360 + 8 5625 5624 5542 5543 1443 1442 1360 1361 + 8 5626 5625 5543 5544 1444 1443 1361 1362 + 8 5627 5626 5544 5545 1445 1444 1362 1363 + 8 5628 5627 5545 5546 1446 1445 1363 1364 + 8 5629 5628 5546 5547 1447 1446 1364 1365 + 8 5630 5629 5547 5548 1448 1447 1365 1366 + 8 5631 5630 5548 5549 1449 1448 1366 1367 + 8 5632 5631 5549 5550 1450 1449 1367 1368 + 8 5633 5632 5550 5551 1451 1450 1368 1369 + 8 5634 5633 5551 5552 1452 1451 1369 1370 + 8 5635 5634 5552 5553 1453 1452 1370 1371 + 8 5636 5635 5553 5554 1454 1453 1371 1372 + 8 5637 5636 5554 5555 1455 1454 1372 1373 + 8 5638 5637 5555 5556 1456 1455 1373 1374 + 8 5639 5638 5556 5557 1457 1456 1374 1375 + 8 5640 5639 5557 5558 1458 1457 1375 1376 + 8 5641 5640 5558 5559 1459 1458 1376 1377 + 8 5642 5641 5559 5560 1460 1459 1377 1378 + 8 5643 5642 5560 5561 1461 1460 1378 1379 + 8 5644 5643 5561 5562 1462 1461 1379 1380 + 8 5645 5644 5562 5563 1463 1462 1380 1381 + 8 5646 5645 5563 5564 1464 1463 1381 1382 + 8 5647 5646 5564 5565 1465 1464 1382 1383 + 8 5648 5647 5565 5566 1466 1465 1383 1384 + 8 5649 5648 5566 5567 1467 1466 1384 1385 + 8 5650 5649 5567 5568 1468 1467 1385 1386 + 8 5651 5650 5568 5569 1469 1468 1386 1387 + 8 5652 5651 5569 5570 1470 1469 1387 1388 + 8 5653 5652 5570 5571 1471 1470 1388 1389 + 8 5654 5653 5571 5572 1472 1471 1389 1390 + 8 5655 5654 5572 5573 1473 1472 1390 1391 + 8 5656 5655 5573 5574 1474 1473 1391 1392 + 8 5657 5656 5574 5575 1475 1474 1392 1393 + 8 5658 5659 5577 5576 1476 1477 1395 1394 + 8 5660 5658 5576 5578 1478 1476 1394 1396 + 8 5661 5660 5578 5579 1479 1478 1396 1397 + 8 5662 5661 5579 5580 1480 1479 1397 1398 + 8 5663 5662 5580 5581 1481 1480 1398 1399 + 8 5664 5663 5581 5582 1482 1481 1399 1400 + 8 5665 5664 5582 5583 1483 1482 1400 1401 + 8 5666 5665 5583 5584 1484 1483 1401 1402 + 8 5667 5666 5584 5585 1485 1484 1402 1403 + 8 5668 5667 5585 5586 1486 1485 1403 1404 + 8 5669 5668 5586 5587 1487 1486 1404 1405 + 8 5670 5669 5587 5588 1488 1487 1405 1406 + 8 5671 5670 5588 5589 1489 1488 1406 1407 + 8 5672 5671 5589 5590 1490 1489 1407 1408 + 8 5673 5672 5590 5591 1491 1490 1408 1409 + 8 5674 5673 5591 5592 1492 1491 1409 1410 + 8 5675 5674 5592 5593 1493 1492 1410 1411 + 8 5676 5675 5593 5594 1494 1493 1411 1412 + 8 5677 5676 5594 5595 1495 1494 1412 1413 + 8 5678 5677 5595 5596 1496 1495 1413 1414 + 8 5679 5678 5596 5597 1497 1496 1414 1415 + 8 5680 5679 5597 5598 1498 1497 1415 1416 + 8 5681 5680 5598 5599 1499 1498 1416 1417 + 8 5682 5681 5599 5600 1500 1499 1417 1418 + 8 5683 5682 5600 5601 1501 1500 1418 1419 + 8 5684 5683 5601 5602 1502 1501 1419 1420 + 8 5685 5684 5602 5603 1503 1502 1420 1421 + 8 5686 5685 5603 5604 1504 1503 1421 1422 + 8 5687 5686 5604 5605 1505 1504 1422 1423 + 8 5688 5687 5605 5606 1506 1505 1423 1424 + 8 5689 5688 5606 5607 1507 1506 1424 1425 + 8 5690 5689 5607 5608 1508 1507 1425 1426 + 8 5691 5690 5608 5609 1509 1508 1426 1427 + 8 5692 5691 5609 5610 1510 1509 1427 1428 + 8 5693 5692 5610 5611 1511 1510 1428 1429 + 8 5694 5693 5611 5612 1512 1511 1429 1430 + 8 5695 5694 5612 5613 1513 1512 1430 1431 + 8 5696 5695 5613 5614 1514 1513 1431 1432 + 8 5697 5696 5614 5615 1515 1514 1432 1433 + 8 5698 5697 5615 5616 1516 1515 1433 1434 + 8 5699 5698 5616 5617 1517 1516 1434 1435 + 8 5700 5699 5617 5618 1518 1517 1435 1436 + 8 5701 5700 5618 5619 1519 1518 1436 1437 + 8 5702 5701 5619 5620 1520 1519 1437 1438 + 8 5703 5702 5620 5621 1521 1520 1438 1439 + 8 5704 5703 5621 5622 1522 1521 1439 1440 + 8 5705 5704 5622 5623 1523 1522 1440 1441 + 8 5706 5705 5623 5624 1524 1523 1441 1442 + 8 5707 5706 5624 5625 1525 1524 1442 1443 + 8 5708 5707 5625 5626 1526 1525 1443 1444 + 8 5709 5708 5626 5627 1527 1526 1444 1445 + 8 5710 5709 5627 5628 1528 1527 1445 1446 + 8 5711 5710 5628 5629 1529 1528 1446 1447 + 8 5712 5711 5629 5630 1530 1529 1447 1448 + 8 5713 5712 5630 5631 1531 1530 1448 1449 + 8 5714 5713 5631 5632 1532 1531 1449 1450 + 8 5715 5714 5632 5633 1533 1532 1450 1451 + 8 5716 5715 5633 5634 1534 1533 1451 1452 + 8 5717 5716 5634 5635 1535 1534 1452 1453 + 8 5718 5717 5635 5636 1536 1535 1453 1454 + 8 5719 5718 5636 5637 1537 1536 1454 1455 + 8 5720 5719 5637 5638 1538 1537 1455 1456 + 8 5721 5720 5638 5639 1539 1538 1456 1457 + 8 5722 5721 5639 5640 1540 1539 1457 1458 + 8 5723 5722 5640 5641 1541 1540 1458 1459 + 8 5724 5723 5641 5642 1542 1541 1459 1460 + 8 5725 5724 5642 5643 1543 1542 1460 1461 + 8 5726 5725 5643 5644 1544 1543 1461 1462 + 8 5727 5726 5644 5645 1545 1544 1462 1463 + 8 5728 5727 5645 5646 1546 1545 1463 1464 + 8 5729 5728 5646 5647 1547 1546 1464 1465 + 8 5730 5729 5647 5648 1548 1547 1465 1466 + 8 5731 5730 5648 5649 1549 1548 1466 1467 + 8 5732 5731 5649 5650 1550 1549 1467 1468 + 8 5733 5732 5650 5651 1551 1550 1468 1469 + 8 5734 5733 5651 5652 1552 1551 1469 1470 + 8 5735 5734 5652 5653 1553 1552 1470 1471 + 8 5736 5735 5653 5654 1554 1553 1471 1472 + 8 5737 5736 5654 5655 1555 1554 1472 1473 + 8 5738 5737 5655 5656 1556 1555 1473 1474 + 8 5739 5738 5656 5657 1557 1556 1474 1475 + 8 5740 5741 5659 5658 1558 1559 1477 1476 + 8 5742 5740 5658 5660 1560 1558 1476 1478 + 8 5743 5742 5660 5661 1561 1560 1478 1479 + 8 5744 5743 5661 5662 1562 1561 1479 1480 + 8 5745 5744 5662 5663 1563 1562 1480 1481 + 8 5746 5745 5663 5664 1564 1563 1481 1482 + 8 5747 5746 5664 5665 1565 1564 1482 1483 + 8 5748 5747 5665 5666 1566 1565 1483 1484 + 8 5749 5748 5666 5667 1567 1566 1484 1485 + 8 5750 5749 5667 5668 1568 1567 1485 1486 + 8 5751 5750 5668 5669 1569 1568 1486 1487 + 8 5752 5751 5669 5670 1570 1569 1487 1488 + 8 5753 5752 5670 5671 1571 1570 1488 1489 + 8 5754 5753 5671 5672 1572 1571 1489 1490 + 8 5755 5754 5672 5673 1573 1572 1490 1491 + 8 5756 5755 5673 5674 1574 1573 1491 1492 + 8 5757 5756 5674 5675 1575 1574 1492 1493 + 8 5758 5757 5675 5676 1576 1575 1493 1494 + 8 5759 5758 5676 5677 1577 1576 1494 1495 + 8 5760 5759 5677 5678 1578 1577 1495 1496 + 8 5761 5760 5678 5679 1579 1578 1496 1497 + 8 5762 5761 5679 5680 1580 1579 1497 1498 + 8 5763 5762 5680 5681 1581 1580 1498 1499 + 8 5764 5763 5681 5682 1582 1581 1499 1500 + 8 5765 5764 5682 5683 1583 1582 1500 1501 + 8 5766 5765 5683 5684 1584 1583 1501 1502 + 8 5767 5766 5684 5685 1585 1584 1502 1503 + 8 5768 5767 5685 5686 1586 1585 1503 1504 + 8 5769 5768 5686 5687 1587 1586 1504 1505 + 8 5770 5769 5687 5688 1588 1587 1505 1506 + 8 5771 5770 5688 5689 1589 1588 1506 1507 + 8 5772 5771 5689 5690 1590 1589 1507 1508 + 8 5773 5772 5690 5691 1591 1590 1508 1509 + 8 5774 5773 5691 5692 1592 1591 1509 1510 + 8 5775 5774 5692 5693 1593 1592 1510 1511 + 8 5776 5775 5693 5694 1594 1593 1511 1512 + 8 5777 5776 5694 5695 1595 1594 1512 1513 + 8 5778 5777 5695 5696 1596 1595 1513 1514 + 8 5779 5778 5696 5697 1597 1596 1514 1515 + 8 5780 5779 5697 5698 1598 1597 1515 1516 + 8 5781 5780 5698 5699 1599 1598 1516 1517 + 8 5782 5781 5699 5700 1600 1599 1517 1518 + 8 5783 5782 5700 5701 1601 1600 1518 1519 + 8 5784 5783 5701 5702 1602 1601 1519 1520 + 8 5785 5784 5702 5703 1603 1602 1520 1521 + 8 5786 5785 5703 5704 1604 1603 1521 1522 + 8 5787 5786 5704 5705 1605 1604 1522 1523 + 8 5788 5787 5705 5706 1606 1605 1523 1524 + 8 5789 5788 5706 5707 1607 1606 1524 1525 + 8 5790 5789 5707 5708 1608 1607 1525 1526 + 8 5791 5790 5708 5709 1609 1608 1526 1527 + 8 5792 5791 5709 5710 1610 1609 1527 1528 + 8 5793 5792 5710 5711 1611 1610 1528 1529 + 8 5794 5793 5711 5712 1612 1611 1529 1530 + 8 5795 5794 5712 5713 1613 1612 1530 1531 + 8 5796 5795 5713 5714 1614 1613 1531 1532 + 8 5797 5796 5714 5715 1615 1614 1532 1533 + 8 5798 5797 5715 5716 1616 1615 1533 1534 + 8 5799 5798 5716 5717 1617 1616 1534 1535 + 8 5800 5799 5717 5718 1618 1617 1535 1536 + 8 5801 5800 5718 5719 1619 1618 1536 1537 + 8 5802 5801 5719 5720 1620 1619 1537 1538 + 8 5803 5802 5720 5721 1621 1620 1538 1539 + 8 5804 5803 5721 5722 1622 1621 1539 1540 + 8 5805 5804 5722 5723 1623 1622 1540 1541 + 8 5806 5805 5723 5724 1624 1623 1541 1542 + 8 5807 5806 5724 5725 1625 1624 1542 1543 + 8 5808 5807 5725 5726 1626 1625 1543 1544 + 8 5809 5808 5726 5727 1627 1626 1544 1545 + 8 5810 5809 5727 5728 1628 1627 1545 1546 + 8 5811 5810 5728 5729 1629 1628 1546 1547 + 8 5812 5811 5729 5730 1630 1629 1547 1548 + 8 5813 5812 5730 5731 1631 1630 1548 1549 + 8 5814 5813 5731 5732 1632 1631 1549 1550 + 8 5815 5814 5732 5733 1633 1632 1550 1551 + 8 5816 5815 5733 5734 1634 1633 1551 1552 + 8 5817 5816 5734 5735 1635 1634 1552 1553 + 8 5818 5817 5735 5736 1636 1635 1553 1554 + 8 5819 5818 5736 5737 1637 1636 1554 1555 + 8 5820 5819 5737 5738 1638 1637 1555 1556 + 8 5821 5820 5738 5739 1639 1638 1556 1557 + 8 5822 5823 5741 5740 1640 1641 1559 1558 + 8 5824 5822 5740 5742 1642 1640 1558 1560 + 8 5825 5824 5742 5743 1643 1642 1560 1561 + 8 5826 5825 5743 5744 1644 1643 1561 1562 + 8 5827 5826 5744 5745 1645 1644 1562 1563 + 8 5828 5827 5745 5746 1646 1645 1563 1564 + 8 5829 5828 5746 5747 1647 1646 1564 1565 + 8 5830 5829 5747 5748 1648 1647 1565 1566 + 8 5831 5830 5748 5749 1649 1648 1566 1567 + 8 5832 5831 5749 5750 1650 1649 1567 1568 + 8 5833 5832 5750 5751 1651 1650 1568 1569 + 8 5834 5833 5751 5752 1652 1651 1569 1570 + 8 5835 5834 5752 5753 1653 1652 1570 1571 + 8 5836 5835 5753 5754 1654 1653 1571 1572 + 8 5837 5836 5754 5755 1655 1654 1572 1573 + 8 5838 5837 5755 5756 1656 1655 1573 1574 + 8 5839 5838 5756 5757 1657 1656 1574 1575 + 8 5840 5839 5757 5758 1658 1657 1575 1576 + 8 5841 5840 5758 5759 1659 1658 1576 1577 + 8 5842 5841 5759 5760 1660 1659 1577 1578 + 8 5843 5842 5760 5761 1661 1660 1578 1579 + 8 5844 5843 5761 5762 1662 1661 1579 1580 + 8 5845 5844 5762 5763 1663 1662 1580 1581 + 8 5846 5845 5763 5764 1664 1663 1581 1582 + 8 5847 5846 5764 5765 1665 1664 1582 1583 + 8 5848 5847 5765 5766 1666 1665 1583 1584 + 8 5849 5848 5766 5767 1667 1666 1584 1585 + 8 5850 5849 5767 5768 1668 1667 1585 1586 + 8 5851 5850 5768 5769 1669 1668 1586 1587 + 8 5852 5851 5769 5770 1670 1669 1587 1588 + 8 5853 5852 5770 5771 1671 1670 1588 1589 + 8 5854 5853 5771 5772 1672 1671 1589 1590 + 8 5855 5854 5772 5773 1673 1672 1590 1591 + 8 5856 5855 5773 5774 1674 1673 1591 1592 + 8 5857 5856 5774 5775 1675 1674 1592 1593 + 8 5858 5857 5775 5776 1676 1675 1593 1594 + 8 5859 5858 5776 5777 1677 1676 1594 1595 + 8 5860 5859 5777 5778 1678 1677 1595 1596 + 8 5861 5860 5778 5779 1679 1678 1596 1597 + 8 5862 5861 5779 5780 1680 1679 1597 1598 + 8 5863 5862 5780 5781 1681 1680 1598 1599 + 8 5864 5863 5781 5782 1682 1681 1599 1600 + 8 5865 5864 5782 5783 1683 1682 1600 1601 + 8 5866 5865 5783 5784 1684 1683 1601 1602 + 8 5867 5866 5784 5785 1685 1684 1602 1603 + 8 5868 5867 5785 5786 1686 1685 1603 1604 + 8 5869 5868 5786 5787 1687 1686 1604 1605 + 8 5870 5869 5787 5788 1688 1687 1605 1606 + 8 5871 5870 5788 5789 1689 1688 1606 1607 + 8 5872 5871 5789 5790 1690 1689 1607 1608 + 8 5873 5872 5790 5791 1691 1690 1608 1609 + 8 5874 5873 5791 5792 1692 1691 1609 1610 + 8 5875 5874 5792 5793 1693 1692 1610 1611 + 8 5876 5875 5793 5794 1694 1693 1611 1612 + 8 5877 5876 5794 5795 1695 1694 1612 1613 + 8 5878 5877 5795 5796 1696 1695 1613 1614 + 8 5879 5878 5796 5797 1697 1696 1614 1615 + 8 5880 5879 5797 5798 1698 1697 1615 1616 + 8 5881 5880 5798 5799 1699 1698 1616 1617 + 8 5882 5881 5799 5800 1700 1699 1617 1618 + 8 5883 5882 5800 5801 1701 1700 1618 1619 + 8 5884 5883 5801 5802 1702 1701 1619 1620 + 8 5885 5884 5802 5803 1703 1702 1620 1621 + 8 5886 5885 5803 5804 1704 1703 1621 1622 + 8 5887 5886 5804 5805 1705 1704 1622 1623 + 8 5888 5887 5805 5806 1706 1705 1623 1624 + 8 5889 5888 5806 5807 1707 1706 1624 1625 + 8 5890 5889 5807 5808 1708 1707 1625 1626 + 8 5891 5890 5808 5809 1709 1708 1626 1627 + 8 5892 5891 5809 5810 1710 1709 1627 1628 + 8 5893 5892 5810 5811 1711 1710 1628 1629 + 8 5894 5893 5811 5812 1712 1711 1629 1630 + 8 5895 5894 5812 5813 1713 1712 1630 1631 + 8 5896 5895 5813 5814 1714 1713 1631 1632 + 8 5897 5896 5814 5815 1715 1714 1632 1633 + 8 5898 5897 5815 5816 1716 1715 1633 1634 + 8 5899 5898 5816 5817 1717 1716 1634 1635 + 8 5900 5899 5817 5818 1718 1717 1635 1636 + 8 5901 5900 5818 5819 1719 1718 1636 1637 + 8 5902 5901 5819 5820 1720 1719 1637 1638 + 8 5903 5902 5820 5821 1721 1720 1638 1639 + 8 5904 5905 5823 5822 1722 1723 1641 1640 + 8 5906 5904 5822 5824 1724 1722 1640 1642 + 8 5907 5906 5824 5825 1725 1724 1642 1643 + 8 5908 5907 5825 5826 1726 1725 1643 1644 + 8 5909 5908 5826 5827 1727 1726 1644 1645 + 8 5910 5909 5827 5828 1728 1727 1645 1646 + 8 5911 5910 5828 5829 1729 1728 1646 1647 + 8 5912 5911 5829 5830 1730 1729 1647 1648 + 8 5913 5912 5830 5831 1731 1730 1648 1649 + 8 5914 5913 5831 5832 1732 1731 1649 1650 + 8 5915 5914 5832 5833 1733 1732 1650 1651 + 8 5916 5915 5833 5834 1734 1733 1651 1652 + 8 5917 5916 5834 5835 1735 1734 1652 1653 + 8 5918 5917 5835 5836 1736 1735 1653 1654 + 8 5919 5918 5836 5837 1737 1736 1654 1655 + 8 5920 5919 5837 5838 1738 1737 1655 1656 + 8 5921 5920 5838 5839 1739 1738 1656 1657 + 8 5922 5921 5839 5840 1740 1739 1657 1658 + 8 5923 5922 5840 5841 1741 1740 1658 1659 + 8 5924 5923 5841 5842 1742 1741 1659 1660 + 8 5925 5924 5842 5843 1743 1742 1660 1661 + 8 5926 5925 5843 5844 1744 1743 1661 1662 + 8 5927 5926 5844 5845 1745 1744 1662 1663 + 8 5928 5927 5845 5846 1746 1745 1663 1664 + 8 5929 5928 5846 5847 1747 1746 1664 1665 + 8 5930 5929 5847 5848 1748 1747 1665 1666 + 8 5931 5930 5848 5849 1749 1748 1666 1667 + 8 5932 5931 5849 5850 1750 1749 1667 1668 + 8 5933 5932 5850 5851 1751 1750 1668 1669 + 8 5934 5933 5851 5852 1752 1751 1669 1670 + 8 5935 5934 5852 5853 1753 1752 1670 1671 + 8 5936 5935 5853 5854 1754 1753 1671 1672 + 8 5937 5936 5854 5855 1755 1754 1672 1673 + 8 5938 5937 5855 5856 1756 1755 1673 1674 + 8 5939 5938 5856 5857 1757 1756 1674 1675 + 8 5940 5939 5857 5858 1758 1757 1675 1676 + 8 5941 5940 5858 5859 1759 1758 1676 1677 + 8 5942 5941 5859 5860 1760 1759 1677 1678 + 8 5943 5942 5860 5861 1761 1760 1678 1679 + 8 5944 5943 5861 5862 1762 1761 1679 1680 + 8 5945 5944 5862 5863 1763 1762 1680 1681 + 8 5946 5945 5863 5864 1764 1763 1681 1682 + 8 5947 5946 5864 5865 1765 1764 1682 1683 + 8 5948 5947 5865 5866 1766 1765 1683 1684 + 8 5949 5948 5866 5867 1767 1766 1684 1685 + 8 5950 5949 5867 5868 1768 1767 1685 1686 + 8 5951 5950 5868 5869 1769 1768 1686 1687 + 8 5952 5951 5869 5870 1770 1769 1687 1688 + 8 5953 5952 5870 5871 1771 1770 1688 1689 + 8 5954 5953 5871 5872 1772 1771 1689 1690 + 8 5955 5954 5872 5873 1773 1772 1690 1691 + 8 5956 5955 5873 5874 1774 1773 1691 1692 + 8 5957 5956 5874 5875 1775 1774 1692 1693 + 8 5958 5957 5875 5876 1776 1775 1693 1694 + 8 5959 5958 5876 5877 1777 1776 1694 1695 + 8 5960 5959 5877 5878 1778 1777 1695 1696 + 8 5961 5960 5878 5879 1779 1778 1696 1697 + 8 5962 5961 5879 5880 1780 1779 1697 1698 + 8 5963 5962 5880 5881 1781 1780 1698 1699 + 8 5964 5963 5881 5882 1782 1781 1699 1700 + 8 5965 5964 5882 5883 1783 1782 1700 1701 + 8 5966 5965 5883 5884 1784 1783 1701 1702 + 8 5967 5966 5884 5885 1785 1784 1702 1703 + 8 5968 5967 5885 5886 1786 1785 1703 1704 + 8 5969 5968 5886 5887 1787 1786 1704 1705 + 8 5970 5969 5887 5888 1788 1787 1705 1706 + 8 5971 5970 5888 5889 1789 1788 1706 1707 + 8 5972 5971 5889 5890 1790 1789 1707 1708 + 8 5973 5972 5890 5891 1791 1790 1708 1709 + 8 5974 5973 5891 5892 1792 1791 1709 1710 + 8 5975 5974 5892 5893 1793 1792 1710 1711 + 8 5976 5975 5893 5894 1794 1793 1711 1712 + 8 5977 5976 5894 5895 1795 1794 1712 1713 + 8 5978 5977 5895 5896 1796 1795 1713 1714 + 8 5979 5978 5896 5897 1797 1796 1714 1715 + 8 5980 5979 5897 5898 1798 1797 1715 1716 + 8 5981 5980 5898 5899 1799 1798 1716 1717 + 8 5982 5981 5899 5900 1800 1799 1717 1718 + 8 5983 5982 5900 5901 1801 1800 1718 1719 + 8 5984 5983 5901 5902 1802 1801 1719 1720 + 8 5985 5984 5902 5903 1803 1802 1720 1721 + 8 5986 5987 5905 5904 1804 1805 1723 1722 + 8 5988 5986 5904 5906 1806 1804 1722 1724 + 8 5989 5988 5906 5907 1807 1806 1724 1725 + 8 5990 5989 5907 5908 1808 1807 1725 1726 + 8 5991 5990 5908 5909 1809 1808 1726 1727 + 8 5992 5991 5909 5910 1810 1809 1727 1728 + 8 5993 5992 5910 5911 1811 1810 1728 1729 + 8 5994 5993 5911 5912 1812 1811 1729 1730 + 8 5995 5994 5912 5913 1813 1812 1730 1731 + 8 5996 5995 5913 5914 1814 1813 1731 1732 + 8 5997 5996 5914 5915 1815 1814 1732 1733 + 8 5998 5997 5915 5916 1816 1815 1733 1734 + 8 5999 5998 5916 5917 1817 1816 1734 1735 + 8 6000 5999 5917 5918 1818 1817 1735 1736 + 8 6001 6000 5918 5919 1819 1818 1736 1737 + 8 6002 6001 5919 5920 1820 1819 1737 1738 + 8 6003 6002 5920 5921 1821 1820 1738 1739 + 8 6004 6003 5921 5922 1822 1821 1739 1740 + 8 6005 6004 5922 5923 1823 1822 1740 1741 + 8 6006 6005 5923 5924 1824 1823 1741 1742 + 8 6007 6006 5924 5925 1825 1824 1742 1743 + 8 6008 6007 5925 5926 1826 1825 1743 1744 + 8 6009 6008 5926 5927 1827 1826 1744 1745 + 8 6010 6009 5927 5928 1828 1827 1745 1746 + 8 6011 6010 5928 5929 1829 1828 1746 1747 + 8 6012 6011 5929 5930 1830 1829 1747 1748 + 8 6013 6012 5930 5931 1831 1830 1748 1749 + 8 6014 6013 5931 5932 1832 1831 1749 1750 + 8 6015 6014 5932 5933 1833 1832 1750 1751 + 8 6016 6015 5933 5934 1834 1833 1751 1752 + 8 6017 6016 5934 5935 1835 1834 1752 1753 + 8 6018 6017 5935 5936 1836 1835 1753 1754 + 8 6019 6018 5936 5937 1837 1836 1754 1755 + 8 6020 6019 5937 5938 1838 1837 1755 1756 + 8 6021 6020 5938 5939 1839 1838 1756 1757 + 8 6022 6021 5939 5940 1840 1839 1757 1758 + 8 6023 6022 5940 5941 1841 1840 1758 1759 + 8 6024 6023 5941 5942 1842 1841 1759 1760 + 8 6025 6024 5942 5943 1843 1842 1760 1761 + 8 6026 6025 5943 5944 1844 1843 1761 1762 + 8 6027 6026 5944 5945 1845 1844 1762 1763 + 8 6028 6027 5945 5946 1846 1845 1763 1764 + 8 6029 6028 5946 5947 1847 1846 1764 1765 + 8 6030 6029 5947 5948 1848 1847 1765 1766 + 8 6031 6030 5948 5949 1849 1848 1766 1767 + 8 6032 6031 5949 5950 1850 1849 1767 1768 + 8 6033 6032 5950 5951 1851 1850 1768 1769 + 8 6034 6033 5951 5952 1852 1851 1769 1770 + 8 6035 6034 5952 5953 1853 1852 1770 1771 + 8 6036 6035 5953 5954 1854 1853 1771 1772 + 8 6037 6036 5954 5955 1855 1854 1772 1773 + 8 6038 6037 5955 5956 1856 1855 1773 1774 + 8 6039 6038 5956 5957 1857 1856 1774 1775 + 8 6040 6039 5957 5958 1858 1857 1775 1776 + 8 6041 6040 5958 5959 1859 1858 1776 1777 + 8 6042 6041 5959 5960 1860 1859 1777 1778 + 8 6043 6042 5960 5961 1861 1860 1778 1779 + 8 6044 6043 5961 5962 1862 1861 1779 1780 + 8 6045 6044 5962 5963 1863 1862 1780 1781 + 8 6046 6045 5963 5964 1864 1863 1781 1782 + 8 6047 6046 5964 5965 1865 1864 1782 1783 + 8 6048 6047 5965 5966 1866 1865 1783 1784 + 8 6049 6048 5966 5967 1867 1866 1784 1785 + 8 6050 6049 5967 5968 1868 1867 1785 1786 + 8 6051 6050 5968 5969 1869 1868 1786 1787 + 8 6052 6051 5969 5970 1870 1869 1787 1788 + 8 6053 6052 5970 5971 1871 1870 1788 1789 + 8 6054 6053 5971 5972 1872 1871 1789 1790 + 8 6055 6054 5972 5973 1873 1872 1790 1791 + 8 6056 6055 5973 5974 1874 1873 1791 1792 + 8 6057 6056 5974 5975 1875 1874 1792 1793 + 8 6058 6057 5975 5976 1876 1875 1793 1794 + 8 6059 6058 5976 5977 1877 1876 1794 1795 + 8 6060 6059 5977 5978 1878 1877 1795 1796 + 8 6061 6060 5978 5979 1879 1878 1796 1797 + 8 6062 6061 5979 5980 1880 1879 1797 1798 + 8 6063 6062 5980 5981 1881 1880 1798 1799 + 8 6064 6063 5981 5982 1882 1881 1799 1800 + 8 6065 6064 5982 5983 1883 1882 1800 1801 + 8 6066 6065 5983 5984 1884 1883 1801 1802 + 8 6067 6066 5984 5985 1885 1884 1802 1803 + 8 6068 6069 5987 5986 1886 1887 1805 1804 + 8 6070 6068 5986 5988 1888 1886 1804 1806 + 8 6071 6070 5988 5989 1889 1888 1806 1807 + 8 6072 6071 5989 5990 1890 1889 1807 1808 + 8 6073 6072 5990 5991 1891 1890 1808 1809 + 8 6074 6073 5991 5992 1892 1891 1809 1810 + 8 6075 6074 5992 5993 1893 1892 1810 1811 + 8 6076 6075 5993 5994 1894 1893 1811 1812 + 8 6077 6076 5994 5995 1895 1894 1812 1813 + 8 6078 6077 5995 5996 1896 1895 1813 1814 + 8 6079 6078 5996 5997 1897 1896 1814 1815 + 8 6080 6079 5997 5998 1898 1897 1815 1816 + 8 6081 6080 5998 5999 1899 1898 1816 1817 + 8 6082 6081 5999 6000 1900 1899 1817 1818 + 8 6083 6082 6000 6001 1901 1900 1818 1819 + 8 6084 6083 6001 6002 1902 1901 1819 1820 + 8 6085 6084 6002 6003 1903 1902 1820 1821 + 8 6086 6085 6003 6004 1904 1903 1821 1822 + 8 6087 6086 6004 6005 1905 1904 1822 1823 + 8 6088 6087 6005 6006 1906 1905 1823 1824 + 8 6089 6088 6006 6007 1907 1906 1824 1825 + 8 6090 6089 6007 6008 1908 1907 1825 1826 + 8 6091 6090 6008 6009 1909 1908 1826 1827 + 8 6092 6091 6009 6010 1910 1909 1827 1828 + 8 6093 6092 6010 6011 1911 1910 1828 1829 + 8 6094 6093 6011 6012 1912 1911 1829 1830 + 8 6095 6094 6012 6013 1913 1912 1830 1831 + 8 6096 6095 6013 6014 1914 1913 1831 1832 + 8 6097 6096 6014 6015 1915 1914 1832 1833 + 8 6098 6097 6015 6016 1916 1915 1833 1834 + 8 6099 6098 6016 6017 1917 1916 1834 1835 + 8 6100 6099 6017 6018 1918 1917 1835 1836 + 8 6101 6100 6018 6019 1919 1918 1836 1837 + 8 6102 6101 6019 6020 1920 1919 1837 1838 + 8 6103 6102 6020 6021 1921 1920 1838 1839 + 8 6104 6103 6021 6022 1922 1921 1839 1840 + 8 6105 6104 6022 6023 1923 1922 1840 1841 + 8 6106 6105 6023 6024 1924 1923 1841 1842 + 8 6107 6106 6024 6025 1925 1924 1842 1843 + 8 6108 6107 6025 6026 1926 1925 1843 1844 + 8 6109 6108 6026 6027 1927 1926 1844 1845 + 8 6110 6109 6027 6028 1928 1927 1845 1846 + 8 6111 6110 6028 6029 1929 1928 1846 1847 + 8 6112 6111 6029 6030 1930 1929 1847 1848 + 8 6113 6112 6030 6031 1931 1930 1848 1849 + 8 6114 6113 6031 6032 1932 1931 1849 1850 + 8 6115 6114 6032 6033 1933 1932 1850 1851 + 8 6116 6115 6033 6034 1934 1933 1851 1852 + 8 6117 6116 6034 6035 1935 1934 1852 1853 + 8 6118 6117 6035 6036 1936 1935 1853 1854 + 8 6119 6118 6036 6037 1937 1936 1854 1855 + 8 6120 6119 6037 6038 1938 1937 1855 1856 + 8 6121 6120 6038 6039 1939 1938 1856 1857 + 8 6122 6121 6039 6040 1940 1939 1857 1858 + 8 6123 6122 6040 6041 1941 1940 1858 1859 + 8 6124 6123 6041 6042 1942 1941 1859 1860 + 8 6125 6124 6042 6043 1943 1942 1860 1861 + 8 6126 6125 6043 6044 1944 1943 1861 1862 + 8 6127 6126 6044 6045 1945 1944 1862 1863 + 8 6128 6127 6045 6046 1946 1945 1863 1864 + 8 6129 6128 6046 6047 1947 1946 1864 1865 + 8 6130 6129 6047 6048 1948 1947 1865 1866 + 8 6131 6130 6048 6049 1949 1948 1866 1867 + 8 6132 6131 6049 6050 1950 1949 1867 1868 + 8 6133 6132 6050 6051 1951 1950 1868 1869 + 8 6134 6133 6051 6052 1952 1951 1869 1870 + 8 6135 6134 6052 6053 1953 1952 1870 1871 + 8 6136 6135 6053 6054 1954 1953 1871 1872 + 8 6137 6136 6054 6055 1955 1954 1872 1873 + 8 6138 6137 6055 6056 1956 1955 1873 1874 + 8 6139 6138 6056 6057 1957 1956 1874 1875 + 8 6140 6139 6057 6058 1958 1957 1875 1876 + 8 6141 6140 6058 6059 1959 1958 1876 1877 + 8 6142 6141 6059 6060 1960 1959 1877 1878 + 8 6143 6142 6060 6061 1961 1960 1878 1879 + 8 6144 6143 6061 6062 1962 1961 1879 1880 + 8 6145 6144 6062 6063 1963 1962 1880 1881 + 8 6146 6145 6063 6064 1964 1963 1881 1882 + 8 6147 6146 6064 6065 1965 1964 1882 1883 + 8 6148 6147 6065 6066 1966 1965 1883 1884 + 8 6149 6148 6066 6067 1967 1966 1884 1885 + 8 6150 6151 6069 6068 1968 1969 1887 1886 + 8 6152 6150 6068 6070 1970 1968 1886 1888 + 8 6153 6152 6070 6071 1971 1970 1888 1889 + 8 6154 6153 6071 6072 1972 1971 1889 1890 + 8 6155 6154 6072 6073 1973 1972 1890 1891 + 8 6156 6155 6073 6074 1974 1973 1891 1892 + 8 6157 6156 6074 6075 1975 1974 1892 1893 + 8 6158 6157 6075 6076 1976 1975 1893 1894 + 8 6159 6158 6076 6077 1977 1976 1894 1895 + 8 6160 6159 6077 6078 1978 1977 1895 1896 + 8 6161 6160 6078 6079 1979 1978 1896 1897 + 8 6162 6161 6079 6080 1980 1979 1897 1898 + 8 6163 6162 6080 6081 1981 1980 1898 1899 + 8 6164 6163 6081 6082 1982 1981 1899 1900 + 8 6165 6164 6082 6083 1983 1982 1900 1901 + 8 6166 6165 6083 6084 1984 1983 1901 1902 + 8 6167 6166 6084 6085 1985 1984 1902 1903 + 8 6168 6167 6085 6086 1986 1985 1903 1904 + 8 6169 6168 6086 6087 1987 1986 1904 1905 + 8 6170 6169 6087 6088 1988 1987 1905 1906 + 8 6171 6170 6088 6089 1989 1988 1906 1907 + 8 6172 6171 6089 6090 1990 1989 1907 1908 + 8 6173 6172 6090 6091 1991 1990 1908 1909 + 8 6174 6173 6091 6092 1992 1991 1909 1910 + 8 6175 6174 6092 6093 1993 1992 1910 1911 + 8 6176 6175 6093 6094 1994 1993 1911 1912 + 8 6177 6176 6094 6095 1995 1994 1912 1913 + 8 6178 6177 6095 6096 1996 1995 1913 1914 + 8 6179 6178 6096 6097 1997 1996 1914 1915 + 8 6180 6179 6097 6098 1998 1997 1915 1916 + 8 6181 6180 6098 6099 1999 1998 1916 1917 + 8 6182 6181 6099 6100 2000 1999 1917 1918 + 8 6183 6182 6100 6101 2001 2000 1918 1919 + 8 6184 6183 6101 6102 2002 2001 1919 1920 + 8 6185 6184 6102 6103 2003 2002 1920 1921 + 8 6186 6185 6103 6104 2004 2003 1921 1922 + 8 6187 6186 6104 6105 2005 2004 1922 1923 + 8 6188 6187 6105 6106 2006 2005 1923 1924 + 8 6189 6188 6106 6107 2007 2006 1924 1925 + 8 6190 6189 6107 6108 2008 2007 1925 1926 + 8 6191 6190 6108 6109 2009 2008 1926 1927 + 8 6192 6191 6109 6110 2010 2009 1927 1928 + 8 6193 6192 6110 6111 2011 2010 1928 1929 + 8 6194 6193 6111 6112 2012 2011 1929 1930 + 8 6195 6194 6112 6113 2013 2012 1930 1931 + 8 6196 6195 6113 6114 2014 2013 1931 1932 + 8 6197 6196 6114 6115 2015 2014 1932 1933 + 8 6198 6197 6115 6116 2016 2015 1933 1934 + 8 6199 6198 6116 6117 2017 2016 1934 1935 + 8 6200 6199 6117 6118 2018 2017 1935 1936 + 8 6201 6200 6118 6119 2019 2018 1936 1937 + 8 6202 6201 6119 6120 2020 2019 1937 1938 + 8 6203 6202 6120 6121 2021 2020 1938 1939 + 8 6204 6203 6121 6122 2022 2021 1939 1940 + 8 6205 6204 6122 6123 2023 2022 1940 1941 + 8 6206 6205 6123 6124 2024 2023 1941 1942 + 8 6207 6206 6124 6125 2025 2024 1942 1943 + 8 6208 6207 6125 6126 2026 2025 1943 1944 + 8 6209 6208 6126 6127 2027 2026 1944 1945 + 8 6210 6209 6127 6128 2028 2027 1945 1946 + 8 6211 6210 6128 6129 2029 2028 1946 1947 + 8 6212 6211 6129 6130 2030 2029 1947 1948 + 8 6213 6212 6130 6131 2031 2030 1948 1949 + 8 6214 6213 6131 6132 2032 2031 1949 1950 + 8 6215 6214 6132 6133 2033 2032 1950 1951 + 8 6216 6215 6133 6134 2034 2033 1951 1952 + 8 6217 6216 6134 6135 2035 2034 1952 1953 + 8 6218 6217 6135 6136 2036 2035 1953 1954 + 8 6219 6218 6136 6137 2037 2036 1954 1955 + 8 6220 6219 6137 6138 2038 2037 1955 1956 + 8 6221 6220 6138 6139 2039 2038 1956 1957 + 8 6222 6221 6139 6140 2040 2039 1957 1958 + 8 6223 6222 6140 6141 2041 2040 1958 1959 + 8 6224 6223 6141 6142 2042 2041 1959 1960 + 8 6225 6224 6142 6143 2043 2042 1960 1961 + 8 6226 6225 6143 6144 2044 2043 1961 1962 + 8 6227 6226 6144 6145 2045 2044 1962 1963 + 8 6228 6227 6145 6146 2046 2045 1963 1964 + 8 6229 6228 6146 6147 2047 2046 1964 1965 + 8 6230 6229 6147 6148 2048 2047 1965 1966 + 8 6231 6230 6148 6149 2049 2048 1966 1967 + 8 6232 6233 6151 6150 2050 2051 1969 1968 + 8 6234 6232 6150 6152 2052 2050 1968 1970 + 8 6235 6234 6152 6153 2053 2052 1970 1971 + 8 6236 6235 6153 6154 2054 2053 1971 1972 + 8 6237 6236 6154 6155 2055 2054 1972 1973 + 8 6238 6237 6155 6156 2056 2055 1973 1974 + 8 6239 6238 6156 6157 2057 2056 1974 1975 + 8 6240 6239 6157 6158 2058 2057 1975 1976 + 8 6241 6240 6158 6159 2059 2058 1976 1977 + 8 6242 6241 6159 6160 2060 2059 1977 1978 + 8 6243 6242 6160 6161 2061 2060 1978 1979 + 8 6244 6243 6161 6162 2062 2061 1979 1980 + 8 6245 6244 6162 6163 2063 2062 1980 1981 + 8 6246 6245 6163 6164 2064 2063 1981 1982 + 8 6247 6246 6164 6165 2065 2064 1982 1983 + 8 6248 6247 6165 6166 2066 2065 1983 1984 + 8 6249 6248 6166 6167 2067 2066 1984 1985 + 8 6250 6249 6167 6168 2068 2067 1985 1986 + 8 6251 6250 6168 6169 2069 2068 1986 1987 + 8 6252 6251 6169 6170 2070 2069 1987 1988 + 8 6253 6252 6170 6171 2071 2070 1988 1989 + 8 6254 6253 6171 6172 2072 2071 1989 1990 + 8 6255 6254 6172 6173 2073 2072 1990 1991 + 8 6256 6255 6173 6174 2074 2073 1991 1992 + 8 6257 6256 6174 6175 2075 2074 1992 1993 + 8 6258 6257 6175 6176 2076 2075 1993 1994 + 8 6259 6258 6176 6177 2077 2076 1994 1995 + 8 6260 6259 6177 6178 2078 2077 1995 1996 + 8 6261 6260 6178 6179 2079 2078 1996 1997 + 8 6262 6261 6179 6180 2080 2079 1997 1998 + 8 6263 6262 6180 6181 2081 2080 1998 1999 + 8 6264 6263 6181 6182 2082 2081 1999 2000 + 8 6265 6264 6182 6183 2083 2082 2000 2001 + 8 6266 6265 6183 6184 2084 2083 2001 2002 + 8 6267 6266 6184 6185 2085 2084 2002 2003 + 8 6268 6267 6185 6186 2086 2085 2003 2004 + 8 6269 6268 6186 6187 2087 2086 2004 2005 + 8 6270 6269 6187 6188 2088 2087 2005 2006 + 8 6271 6270 6188 6189 2089 2088 2006 2007 + 8 6272 6271 6189 6190 2090 2089 2007 2008 + 8 6273 6272 6190 6191 2091 2090 2008 2009 + 8 6274 6273 6191 6192 2092 2091 2009 2010 + 8 6275 6274 6192 6193 2093 2092 2010 2011 + 8 6276 6275 6193 6194 2094 2093 2011 2012 + 8 6277 6276 6194 6195 2095 2094 2012 2013 + 8 6278 6277 6195 6196 2096 2095 2013 2014 + 8 6279 6278 6196 6197 2097 2096 2014 2015 + 8 6280 6279 6197 6198 2098 2097 2015 2016 + 8 6281 6280 6198 6199 2099 2098 2016 2017 + 8 6282 6281 6199 6200 2100 2099 2017 2018 + 8 6283 6282 6200 6201 2101 2100 2018 2019 + 8 6284 6283 6201 6202 2102 2101 2019 2020 + 8 6285 6284 6202 6203 2103 2102 2020 2021 + 8 6286 6285 6203 6204 2104 2103 2021 2022 + 8 6287 6286 6204 6205 2105 2104 2022 2023 + 8 6288 6287 6205 6206 2106 2105 2023 2024 + 8 6289 6288 6206 6207 2107 2106 2024 2025 + 8 6290 6289 6207 6208 2108 2107 2025 2026 + 8 6291 6290 6208 6209 2109 2108 2026 2027 + 8 6292 6291 6209 6210 2110 2109 2027 2028 + 8 6293 6292 6210 6211 2111 2110 2028 2029 + 8 6294 6293 6211 6212 2112 2111 2029 2030 + 8 6295 6294 6212 6213 2113 2112 2030 2031 + 8 6296 6295 6213 6214 2114 2113 2031 2032 + 8 6297 6296 6214 6215 2115 2114 2032 2033 + 8 6298 6297 6215 6216 2116 2115 2033 2034 + 8 6299 6298 6216 6217 2117 2116 2034 2035 + 8 6300 6299 6217 6218 2118 2117 2035 2036 + 8 6301 6300 6218 6219 2119 2118 2036 2037 + 8 6302 6301 6219 6220 2120 2119 2037 2038 + 8 6303 6302 6220 6221 2121 2120 2038 2039 + 8 6304 6303 6221 6222 2122 2121 2039 2040 + 8 6305 6304 6222 6223 2123 2122 2040 2041 + 8 6306 6305 6223 6224 2124 2123 2041 2042 + 8 6307 6306 6224 6225 2125 2124 2042 2043 + 8 6308 6307 6225 6226 2126 2125 2043 2044 + 8 6309 6308 6226 6227 2127 2126 2044 2045 + 8 6310 6309 6227 6228 2128 2127 2045 2046 + 8 6311 6310 6228 6229 2129 2128 2046 2047 + 8 6312 6311 6229 6230 2130 2129 2047 2048 + 8 6313 6312 6230 6231 2131 2130 2048 2049 + 8 6314 6315 6233 6232 2132 2133 2051 2050 + 8 6316 6314 6232 6234 2134 2132 2050 2052 + 8 6317 6316 6234 6235 2135 2134 2052 2053 + 8 6318 6317 6235 6236 2136 2135 2053 2054 + 8 6319 6318 6236 6237 2137 2136 2054 2055 + 8 6320 6319 6237 6238 2138 2137 2055 2056 + 8 6321 6320 6238 6239 2139 2138 2056 2057 + 8 6322 6321 6239 6240 2140 2139 2057 2058 + 8 6323 6322 6240 6241 2141 2140 2058 2059 + 8 6324 6323 6241 6242 2142 2141 2059 2060 + 8 6325 6324 6242 6243 2143 2142 2060 2061 + 8 6326 6325 6243 6244 2144 2143 2061 2062 + 8 6327 6326 6244 6245 2145 2144 2062 2063 + 8 6328 6327 6245 6246 2146 2145 2063 2064 + 8 6329 6328 6246 6247 2147 2146 2064 2065 + 8 6330 6329 6247 6248 2148 2147 2065 2066 + 8 6331 6330 6248 6249 2149 2148 2066 2067 + 8 6332 6331 6249 6250 2150 2149 2067 2068 + 8 6333 6332 6250 6251 2151 2150 2068 2069 + 8 6334 6333 6251 6252 2152 2151 2069 2070 + 8 6335 6334 6252 6253 2153 2152 2070 2071 + 8 6336 6335 6253 6254 2154 2153 2071 2072 + 8 6337 6336 6254 6255 2155 2154 2072 2073 + 8 6338 6337 6255 6256 2156 2155 2073 2074 + 8 6339 6338 6256 6257 2157 2156 2074 2075 + 8 6340 6339 6257 6258 2158 2157 2075 2076 + 8 6341 6340 6258 6259 2159 2158 2076 2077 + 8 6342 6341 6259 6260 2160 2159 2077 2078 + 8 6343 6342 6260 6261 2161 2160 2078 2079 + 8 6344 6343 6261 6262 2162 2161 2079 2080 + 8 6345 6344 6262 6263 2163 2162 2080 2081 + 8 6346 6345 6263 6264 2164 2163 2081 2082 + 8 6347 6346 6264 6265 2165 2164 2082 2083 + 8 6348 6347 6265 6266 2166 2165 2083 2084 + 8 6349 6348 6266 6267 2167 2166 2084 2085 + 8 6350 6349 6267 6268 2168 2167 2085 2086 + 8 6351 6350 6268 6269 2169 2168 2086 2087 + 8 6352 6351 6269 6270 2170 2169 2087 2088 + 8 6353 6352 6270 6271 2171 2170 2088 2089 + 8 6354 6353 6271 6272 2172 2171 2089 2090 + 8 6355 6354 6272 6273 2173 2172 2090 2091 + 8 6356 6355 6273 6274 2174 2173 2091 2092 + 8 6357 6356 6274 6275 2175 2174 2092 2093 + 8 6358 6357 6275 6276 2176 2175 2093 2094 + 8 6359 6358 6276 6277 2177 2176 2094 2095 + 8 6360 6359 6277 6278 2178 2177 2095 2096 + 8 6361 6360 6278 6279 2179 2178 2096 2097 + 8 6362 6361 6279 6280 2180 2179 2097 2098 + 8 6363 6362 6280 6281 2181 2180 2098 2099 + 8 6364 6363 6281 6282 2182 2181 2099 2100 + 8 6365 6364 6282 6283 2183 2182 2100 2101 + 8 6366 6365 6283 6284 2184 2183 2101 2102 + 8 6367 6366 6284 6285 2185 2184 2102 2103 + 8 6368 6367 6285 6286 2186 2185 2103 2104 + 8 6369 6368 6286 6287 2187 2186 2104 2105 + 8 6370 6369 6287 6288 2188 2187 2105 2106 + 8 6371 6370 6288 6289 2189 2188 2106 2107 + 8 6372 6371 6289 6290 2190 2189 2107 2108 + 8 6373 6372 6290 6291 2191 2190 2108 2109 + 8 6374 6373 6291 6292 2192 2191 2109 2110 + 8 6375 6374 6292 6293 2193 2192 2110 2111 + 8 6376 6375 6293 6294 2194 2193 2111 2112 + 8 6377 6376 6294 6295 2195 2194 2112 2113 + 8 6378 6377 6295 6296 2196 2195 2113 2114 + 8 6379 6378 6296 6297 2197 2196 2114 2115 + 8 6380 6379 6297 6298 2198 2197 2115 2116 + 8 6381 6380 6298 6299 2199 2198 2116 2117 + 8 6382 6381 6299 6300 2200 2199 2117 2118 + 8 6383 6382 6300 6301 2201 2200 2118 2119 + 8 6384 6383 6301 6302 2202 2201 2119 2120 + 8 6385 6384 6302 6303 2203 2202 2120 2121 + 8 6386 6385 6303 6304 2204 2203 2121 2122 + 8 6387 6386 6304 6305 2205 2204 2122 2123 + 8 6388 6387 6305 6306 2206 2205 2123 2124 + 8 6389 6388 6306 6307 2207 2206 2124 2125 + 8 6390 6389 6307 6308 2208 2207 2125 2126 + 8 6391 6390 6308 6309 2209 2208 2126 2127 + 8 6392 6391 6309 6310 2210 2209 2127 2128 + 8 6393 6392 6310 6311 2211 2210 2128 2129 + 8 6394 6393 6311 6312 2212 2211 2129 2130 + 8 6395 6394 6312 6313 2213 2212 2130 2131 + 8 6396 6397 6315 6314 2214 2215 2133 2132 + 8 6398 6396 6314 6316 2216 2214 2132 2134 + 8 6399 6398 6316 6317 2217 2216 2134 2135 + 8 6400 6399 6317 6318 2218 2217 2135 2136 + 8 6401 6400 6318 6319 2219 2218 2136 2137 + 8 6402 6401 6319 6320 2220 2219 2137 2138 + 8 6403 6402 6320 6321 2221 2220 2138 2139 + 8 6404 6403 6321 6322 2222 2221 2139 2140 + 8 6405 6404 6322 6323 2223 2222 2140 2141 + 8 6406 6405 6323 6324 2224 2223 2141 2142 + 8 6407 6406 6324 6325 2225 2224 2142 2143 + 8 6408 6407 6325 6326 2226 2225 2143 2144 + 8 6409 6408 6326 6327 2227 2226 2144 2145 + 8 6410 6409 6327 6328 2228 2227 2145 2146 + 8 6411 6410 6328 6329 2229 2228 2146 2147 + 8 6412 6411 6329 6330 2230 2229 2147 2148 + 8 6413 6412 6330 6331 2231 2230 2148 2149 + 8 6414 6413 6331 6332 2232 2231 2149 2150 + 8 6415 6414 6332 6333 2233 2232 2150 2151 + 8 6416 6415 6333 6334 2234 2233 2151 2152 + 8 6417 6416 6334 6335 2235 2234 2152 2153 + 8 6418 6417 6335 6336 2236 2235 2153 2154 + 8 6419 6418 6336 6337 2237 2236 2154 2155 + 8 6420 6419 6337 6338 2238 2237 2155 2156 + 8 6421 6420 6338 6339 2239 2238 2156 2157 + 8 6422 6421 6339 6340 2240 2239 2157 2158 + 8 6423 6422 6340 6341 2241 2240 2158 2159 + 8 6424 6423 6341 6342 2242 2241 2159 2160 + 8 6425 6424 6342 6343 2243 2242 2160 2161 + 8 6426 6425 6343 6344 2244 2243 2161 2162 + 8 6427 6426 6344 6345 2245 2244 2162 2163 + 8 6428 6427 6345 6346 2246 2245 2163 2164 + 8 6429 6428 6346 6347 2247 2246 2164 2165 + 8 6430 6429 6347 6348 2248 2247 2165 2166 + 8 6431 6430 6348 6349 2249 2248 2166 2167 + 8 6432 6431 6349 6350 2250 2249 2167 2168 + 8 6433 6432 6350 6351 2251 2250 2168 2169 + 8 6434 6433 6351 6352 2252 2251 2169 2170 + 8 6435 6434 6352 6353 2253 2252 2170 2171 + 8 6436 6435 6353 6354 2254 2253 2171 2172 + 8 6437 6436 6354 6355 2255 2254 2172 2173 + 8 6438 6437 6355 6356 2256 2255 2173 2174 + 8 6439 6438 6356 6357 2257 2256 2174 2175 + 8 6440 6439 6357 6358 2258 2257 2175 2176 + 8 6441 6440 6358 6359 2259 2258 2176 2177 + 8 6442 6441 6359 6360 2260 2259 2177 2178 + 8 6443 6442 6360 6361 2261 2260 2178 2179 + 8 6444 6443 6361 6362 2262 2261 2179 2180 + 8 6445 6444 6362 6363 2263 2262 2180 2181 + 8 6446 6445 6363 6364 2264 2263 2181 2182 + 8 6447 6446 6364 6365 2265 2264 2182 2183 + 8 6448 6447 6365 6366 2266 2265 2183 2184 + 8 6449 6448 6366 6367 2267 2266 2184 2185 + 8 6450 6449 6367 6368 2268 2267 2185 2186 + 8 6451 6450 6368 6369 2269 2268 2186 2187 + 8 6452 6451 6369 6370 2270 2269 2187 2188 + 8 6453 6452 6370 6371 2271 2270 2188 2189 + 8 6454 6453 6371 6372 2272 2271 2189 2190 + 8 6455 6454 6372 6373 2273 2272 2190 2191 + 8 6456 6455 6373 6374 2274 2273 2191 2192 + 8 6457 6456 6374 6375 2275 2274 2192 2193 + 8 6458 6457 6375 6376 2276 2275 2193 2194 + 8 6459 6458 6376 6377 2277 2276 2194 2195 + 8 6460 6459 6377 6378 2278 2277 2195 2196 + 8 6461 6460 6378 6379 2279 2278 2196 2197 + 8 6462 6461 6379 6380 2280 2279 2197 2198 + 8 6463 6462 6380 6381 2281 2280 2198 2199 + 8 6464 6463 6381 6382 2282 2281 2199 2200 + 8 6465 6464 6382 6383 2283 2282 2200 2201 + 8 6466 6465 6383 6384 2284 2283 2201 2202 + 8 6467 6466 6384 6385 2285 2284 2202 2203 + 8 6468 6467 6385 6386 2286 2285 2203 2204 + 8 6469 6468 6386 6387 2287 2286 2204 2205 + 8 6470 6469 6387 6388 2288 2287 2205 2206 + 8 6471 6470 6388 6389 2289 2288 2206 2207 + 8 6472 6471 6389 6390 2290 2289 2207 2208 + 8 6473 6472 6390 6391 2291 2290 2208 2209 + 8 6474 6473 6391 6392 2292 2291 2209 2210 + 8 6475 6474 6392 6393 2293 2292 2210 2211 + 8 6476 6475 6393 6394 2294 2293 2211 2212 + 8 6477 6476 6394 6395 2295 2294 2212 2213 + 8 6478 6479 6397 6396 2296 2297 2215 2214 + 8 6480 6478 6396 6398 2298 2296 2214 2216 + 8 6481 6480 6398 6399 2299 2298 2216 2217 + 8 6482 6481 6399 6400 2300 2299 2217 2218 + 8 6483 6482 6400 6401 2301 2300 2218 2219 + 8 6484 6483 6401 6402 2302 2301 2219 2220 + 8 6485 6484 6402 6403 2303 2302 2220 2221 + 8 6486 6485 6403 6404 2304 2303 2221 2222 + 8 6487 6486 6404 6405 2305 2304 2222 2223 + 8 6488 6487 6405 6406 2306 2305 2223 2224 + 8 6489 6488 6406 6407 2307 2306 2224 2225 + 8 6490 6489 6407 6408 2308 2307 2225 2226 + 8 6491 6490 6408 6409 2309 2308 2226 2227 + 8 6492 6491 6409 6410 2310 2309 2227 2228 + 8 6493 6492 6410 6411 2311 2310 2228 2229 + 8 6494 6493 6411 6412 2312 2311 2229 2230 + 8 6495 6494 6412 6413 2313 2312 2230 2231 + 8 6496 6495 6413 6414 2314 2313 2231 2232 + 8 6497 6496 6414 6415 2315 2314 2232 2233 + 8 6498 6497 6415 6416 2316 2315 2233 2234 + 8 6499 6498 6416 6417 2317 2316 2234 2235 + 8 6500 6499 6417 6418 2318 2317 2235 2236 + 8 6501 6500 6418 6419 2319 2318 2236 2237 + 8 6502 6501 6419 6420 2320 2319 2237 2238 + 8 6503 6502 6420 6421 2321 2320 2238 2239 + 8 6504 6503 6421 6422 2322 2321 2239 2240 + 8 6505 6504 6422 6423 2323 2322 2240 2241 + 8 6506 6505 6423 6424 2324 2323 2241 2242 + 8 6507 6506 6424 6425 2325 2324 2242 2243 + 8 6508 6507 6425 6426 2326 2325 2243 2244 + 8 6509 6508 6426 6427 2327 2326 2244 2245 + 8 6510 6509 6427 6428 2328 2327 2245 2246 + 8 6511 6510 6428 6429 2329 2328 2246 2247 + 8 6512 6511 6429 6430 2330 2329 2247 2248 + 8 6513 6512 6430 6431 2331 2330 2248 2249 + 8 6514 6513 6431 6432 2332 2331 2249 2250 + 8 6515 6514 6432 6433 2333 2332 2250 2251 + 8 6516 6515 6433 6434 2334 2333 2251 2252 + 8 6517 6516 6434 6435 2335 2334 2252 2253 + 8 6518 6517 6435 6436 2336 2335 2253 2254 + 8 6519 6518 6436 6437 2337 2336 2254 2255 + 8 6520 6519 6437 6438 2338 2337 2255 2256 + 8 6521 6520 6438 6439 2339 2338 2256 2257 + 8 6522 6521 6439 6440 2340 2339 2257 2258 + 8 6523 6522 6440 6441 2341 2340 2258 2259 + 8 6524 6523 6441 6442 2342 2341 2259 2260 + 8 6525 6524 6442 6443 2343 2342 2260 2261 + 8 6526 6525 6443 6444 2344 2343 2261 2262 + 8 6527 6526 6444 6445 2345 2344 2262 2263 + 8 6528 6527 6445 6446 2346 2345 2263 2264 + 8 6529 6528 6446 6447 2347 2346 2264 2265 + 8 6530 6529 6447 6448 2348 2347 2265 2266 + 8 6531 6530 6448 6449 2349 2348 2266 2267 + 8 6532 6531 6449 6450 2350 2349 2267 2268 + 8 6533 6532 6450 6451 2351 2350 2268 2269 + 8 6534 6533 6451 6452 2352 2351 2269 2270 + 8 6535 6534 6452 6453 2353 2352 2270 2271 + 8 6536 6535 6453 6454 2354 2353 2271 2272 + 8 6537 6536 6454 6455 2355 2354 2272 2273 + 8 6538 6537 6455 6456 2356 2355 2273 2274 + 8 6539 6538 6456 6457 2357 2356 2274 2275 + 8 6540 6539 6457 6458 2358 2357 2275 2276 + 8 6541 6540 6458 6459 2359 2358 2276 2277 + 8 6542 6541 6459 6460 2360 2359 2277 2278 + 8 6543 6542 6460 6461 2361 2360 2278 2279 + 8 6544 6543 6461 6462 2362 2361 2279 2280 + 8 6545 6544 6462 6463 2363 2362 2280 2281 + 8 6546 6545 6463 6464 2364 2363 2281 2282 + 8 6547 6546 6464 6465 2365 2364 2282 2283 + 8 6548 6547 6465 6466 2366 2365 2283 2284 + 8 6549 6548 6466 6467 2367 2366 2284 2285 + 8 6550 6549 6467 6468 2368 2367 2285 2286 + 8 6551 6550 6468 6469 2369 2368 2286 2287 + 8 6552 6551 6469 6470 2370 2369 2287 2288 + 8 6553 6552 6470 6471 2371 2370 2288 2289 + 8 6554 6553 6471 6472 2372 2371 2289 2290 + 8 6555 6554 6472 6473 2373 2372 2290 2291 + 8 6556 6555 6473 6474 2374 2373 2291 2292 + 8 6557 6556 6474 6475 2375 2374 2292 2293 + 8 6558 6557 6475 6476 2376 2375 2293 2294 + 8 6559 6558 6476 6477 2377 2376 2294 2295 + 8 6560 6561 6479 6478 2378 2379 2297 2296 + 8 6562 6560 6478 6480 2380 2378 2296 2298 + 8 6563 6562 6480 6481 2381 2380 2298 2299 + 8 6564 6563 6481 6482 2382 2381 2299 2300 + 8 6565 6564 6482 6483 2383 2382 2300 2301 + 8 6566 6565 6483 6484 2384 2383 2301 2302 + 8 6567 6566 6484 6485 2385 2384 2302 2303 + 8 6568 6567 6485 6486 2386 2385 2303 2304 + 8 6569 6568 6486 6487 2387 2386 2304 2305 + 8 6570 6569 6487 6488 2388 2387 2305 2306 + 8 6571 6570 6488 6489 2389 2388 2306 2307 + 8 6572 6571 6489 6490 2390 2389 2307 2308 + 8 6573 6572 6490 6491 2391 2390 2308 2309 + 8 6574 6573 6491 6492 2392 2391 2309 2310 + 8 6575 6574 6492 6493 2393 2392 2310 2311 + 8 6576 6575 6493 6494 2394 2393 2311 2312 + 8 6577 6576 6494 6495 2395 2394 2312 2313 + 8 6578 6577 6495 6496 2396 2395 2313 2314 + 8 6579 6578 6496 6497 2397 2396 2314 2315 + 8 6580 6579 6497 6498 2398 2397 2315 2316 + 8 6581 6580 6498 6499 2399 2398 2316 2317 + 8 6582 6581 6499 6500 2400 2399 2317 2318 + 8 6583 6582 6500 6501 2401 2400 2318 2319 + 8 6584 6583 6501 6502 2402 2401 2319 2320 + 8 6585 6584 6502 6503 2403 2402 2320 2321 + 8 6586 6585 6503 6504 2404 2403 2321 2322 + 8 6587 6586 6504 6505 2405 2404 2322 2323 + 8 6588 6587 6505 6506 2406 2405 2323 2324 + 8 6589 6588 6506 6507 2407 2406 2324 2325 + 8 6590 6589 6507 6508 2408 2407 2325 2326 + 8 6591 6590 6508 6509 2409 2408 2326 2327 + 8 6592 6591 6509 6510 2410 2409 2327 2328 + 8 6593 6592 6510 6511 2411 2410 2328 2329 + 8 6594 6593 6511 6512 2412 2411 2329 2330 + 8 6595 6594 6512 6513 2413 2412 2330 2331 + 8 6596 6595 6513 6514 2414 2413 2331 2332 + 8 6597 6596 6514 6515 2415 2414 2332 2333 + 8 6598 6597 6515 6516 2416 2415 2333 2334 + 8 6599 6598 6516 6517 2417 2416 2334 2335 + 8 6600 6599 6517 6518 2418 2417 2335 2336 + 8 6601 6600 6518 6519 2419 2418 2336 2337 + 8 6602 6601 6519 6520 2420 2419 2337 2338 + 8 6603 6602 6520 6521 2421 2420 2338 2339 + 8 6604 6603 6521 6522 2422 2421 2339 2340 + 8 6605 6604 6522 6523 2423 2422 2340 2341 + 8 6606 6605 6523 6524 2424 2423 2341 2342 + 8 6607 6606 6524 6525 2425 2424 2342 2343 + 8 6608 6607 6525 6526 2426 2425 2343 2344 + 8 6609 6608 6526 6527 2427 2426 2344 2345 + 8 6610 6609 6527 6528 2428 2427 2345 2346 + 8 6611 6610 6528 6529 2429 2428 2346 2347 + 8 6612 6611 6529 6530 2430 2429 2347 2348 + 8 6613 6612 6530 6531 2431 2430 2348 2349 + 8 6614 6613 6531 6532 2432 2431 2349 2350 + 8 6615 6614 6532 6533 2433 2432 2350 2351 + 8 6616 6615 6533 6534 2434 2433 2351 2352 + 8 6617 6616 6534 6535 2435 2434 2352 2353 + 8 6618 6617 6535 6536 2436 2435 2353 2354 + 8 6619 6618 6536 6537 2437 2436 2354 2355 + 8 6620 6619 6537 6538 2438 2437 2355 2356 + 8 6621 6620 6538 6539 2439 2438 2356 2357 + 8 6622 6621 6539 6540 2440 2439 2357 2358 + 8 6623 6622 6540 6541 2441 2440 2358 2359 + 8 6624 6623 6541 6542 2442 2441 2359 2360 + 8 6625 6624 6542 6543 2443 2442 2360 2361 + 8 6626 6625 6543 6544 2444 2443 2361 2362 + 8 6627 6626 6544 6545 2445 2444 2362 2363 + 8 6628 6627 6545 6546 2446 2445 2363 2364 + 8 6629 6628 6546 6547 2447 2446 2364 2365 + 8 6630 6629 6547 6548 2448 2447 2365 2366 + 8 6631 6630 6548 6549 2449 2448 2366 2367 + 8 6632 6631 6549 6550 2450 2449 2367 2368 + 8 6633 6632 6550 6551 2451 2450 2368 2369 + 8 6634 6633 6551 6552 2452 2451 2369 2370 + 8 6635 6634 6552 6553 2453 2452 2370 2371 + 8 6636 6635 6553 6554 2454 2453 2371 2372 + 8 6637 6636 6554 6555 2455 2454 2372 2373 + 8 6638 6637 6555 6556 2456 2455 2373 2374 + 8 6639 6638 6556 6557 2457 2456 2374 2375 + 8 6640 6639 6557 6558 2458 2457 2375 2376 + 8 6641 6640 6558 6559 2459 2458 2376 2377 + 8 6642 6643 6561 6560 2460 2461 2379 2378 + 8 6644 6642 6560 6562 2462 2460 2378 2380 + 8 6645 6644 6562 6563 2463 2462 2380 2381 + 8 6646 6645 6563 6564 2464 2463 2381 2382 + 8 6647 6646 6564 6565 2465 2464 2382 2383 + 8 6648 6647 6565 6566 2466 2465 2383 2384 + 8 6649 6648 6566 6567 2467 2466 2384 2385 + 8 6650 6649 6567 6568 2468 2467 2385 2386 + 8 6651 6650 6568 6569 2469 2468 2386 2387 + 8 6652 6651 6569 6570 2470 2469 2387 2388 + 8 6653 6652 6570 6571 2471 2470 2388 2389 + 8 6654 6653 6571 6572 2472 2471 2389 2390 + 8 6655 6654 6572 6573 2473 2472 2390 2391 + 8 6656 6655 6573 6574 2474 2473 2391 2392 + 8 6657 6656 6574 6575 2475 2474 2392 2393 + 8 6658 6657 6575 6576 2476 2475 2393 2394 + 8 6659 6658 6576 6577 2477 2476 2394 2395 + 8 6660 6659 6577 6578 2478 2477 2395 2396 + 8 6661 6660 6578 6579 2479 2478 2396 2397 + 8 6662 6661 6579 6580 2480 2479 2397 2398 + 8 6663 6662 6580 6581 2481 2480 2398 2399 + 8 6664 6663 6581 6582 2482 2481 2399 2400 + 8 6665 6664 6582 6583 2483 2482 2400 2401 + 8 6666 6665 6583 6584 2484 2483 2401 2402 + 8 6667 6666 6584 6585 2485 2484 2402 2403 + 8 6668 6667 6585 6586 2486 2485 2403 2404 + 8 6669 6668 6586 6587 2487 2486 2404 2405 + 8 6670 6669 6587 6588 2488 2487 2405 2406 + 8 6671 6670 6588 6589 2489 2488 2406 2407 + 8 6672 6671 6589 6590 2490 2489 2407 2408 + 8 6673 6672 6590 6591 2491 2490 2408 2409 + 8 6674 6673 6591 6592 2492 2491 2409 2410 + 8 6675 6674 6592 6593 2493 2492 2410 2411 + 8 6676 6675 6593 6594 2494 2493 2411 2412 + 8 6677 6676 6594 6595 2495 2494 2412 2413 + 8 6678 6677 6595 6596 2496 2495 2413 2414 + 8 6679 6678 6596 6597 2497 2496 2414 2415 + 8 6680 6679 6597 6598 2498 2497 2415 2416 + 8 6681 6680 6598 6599 2499 2498 2416 2417 + 8 6682 6681 6599 6600 2500 2499 2417 2418 + 8 6683 6682 6600 6601 2501 2500 2418 2419 + 8 6684 6683 6601 6602 2502 2501 2419 2420 + 8 6685 6684 6602 6603 2503 2502 2420 2421 + 8 6686 6685 6603 6604 2504 2503 2421 2422 + 8 6687 6686 6604 6605 2505 2504 2422 2423 + 8 6688 6687 6605 6606 2506 2505 2423 2424 + 8 6689 6688 6606 6607 2507 2506 2424 2425 + 8 6690 6689 6607 6608 2508 2507 2425 2426 + 8 6691 6690 6608 6609 2509 2508 2426 2427 + 8 6692 6691 6609 6610 2510 2509 2427 2428 + 8 6693 6692 6610 6611 2511 2510 2428 2429 + 8 6694 6693 6611 6612 2512 2511 2429 2430 + 8 6695 6694 6612 6613 2513 2512 2430 2431 + 8 6696 6695 6613 6614 2514 2513 2431 2432 + 8 6697 6696 6614 6615 2515 2514 2432 2433 + 8 6698 6697 6615 6616 2516 2515 2433 2434 + 8 6699 6698 6616 6617 2517 2516 2434 2435 + 8 6700 6699 6617 6618 2518 2517 2435 2436 + 8 6701 6700 6618 6619 2519 2518 2436 2437 + 8 6702 6701 6619 6620 2520 2519 2437 2438 + 8 6703 6702 6620 6621 2521 2520 2438 2439 + 8 6704 6703 6621 6622 2522 2521 2439 2440 + 8 6705 6704 6622 6623 2523 2522 2440 2441 + 8 6706 6705 6623 6624 2524 2523 2441 2442 + 8 6707 6706 6624 6625 2525 2524 2442 2443 + 8 6708 6707 6625 6626 2526 2525 2443 2444 + 8 6709 6708 6626 6627 2527 2526 2444 2445 + 8 6710 6709 6627 6628 2528 2527 2445 2446 + 8 6711 6710 6628 6629 2529 2528 2446 2447 + 8 6712 6711 6629 6630 2530 2529 2447 2448 + 8 6713 6712 6630 6631 2531 2530 2448 2449 + 8 6714 6713 6631 6632 2532 2531 2449 2450 + 8 6715 6714 6632 6633 2533 2532 2450 2451 + 8 6716 6715 6633 6634 2534 2533 2451 2452 + 8 6717 6716 6634 6635 2535 2534 2452 2453 + 8 6718 6717 6635 6636 2536 2535 2453 2454 + 8 6719 6718 6636 6637 2537 2536 2454 2455 + 8 6720 6719 6637 6638 2538 2537 2455 2456 + 8 6721 6720 6638 6639 2539 2538 2456 2457 + 8 6722 6721 6639 6640 2540 2539 2457 2458 + 8 6723 6722 6640 6641 2541 2540 2458 2459 + 8 6724 6725 6643 6642 2542 2543 2461 2460 + 8 6726 6724 6642 6644 2544 2542 2460 2462 + 8 6727 6726 6644 6645 2545 2544 2462 2463 + 8 6728 6727 6645 6646 2546 2545 2463 2464 + 8 6729 6728 6646 6647 2547 2546 2464 2465 + 8 6730 6729 6647 6648 2548 2547 2465 2466 + 8 6731 6730 6648 6649 2549 2548 2466 2467 + 8 6732 6731 6649 6650 2550 2549 2467 2468 + 8 6733 6732 6650 6651 2551 2550 2468 2469 + 8 6734 6733 6651 6652 2552 2551 2469 2470 + 8 6735 6734 6652 6653 2553 2552 2470 2471 + 8 6736 6735 6653 6654 2554 2553 2471 2472 + 8 6737 6736 6654 6655 2555 2554 2472 2473 + 8 6738 6737 6655 6656 2556 2555 2473 2474 + 8 6739 6738 6656 6657 2557 2556 2474 2475 + 8 6740 6739 6657 6658 2558 2557 2475 2476 + 8 6741 6740 6658 6659 2559 2558 2476 2477 + 8 6742 6741 6659 6660 2560 2559 2477 2478 + 8 6743 6742 6660 6661 2561 2560 2478 2479 + 8 6744 6743 6661 6662 2562 2561 2479 2480 + 8 6745 6744 6662 6663 2563 2562 2480 2481 + 8 6746 6745 6663 6664 2564 2563 2481 2482 + 8 6747 6746 6664 6665 2565 2564 2482 2483 + 8 6748 6747 6665 6666 2566 2565 2483 2484 + 8 6749 6748 6666 6667 2567 2566 2484 2485 + 8 6750 6749 6667 6668 2568 2567 2485 2486 + 8 6751 6750 6668 6669 2569 2568 2486 2487 + 8 6752 6751 6669 6670 2570 2569 2487 2488 + 8 6753 6752 6670 6671 2571 2570 2488 2489 + 8 6754 6753 6671 6672 2572 2571 2489 2490 + 8 6755 6754 6672 6673 2573 2572 2490 2491 + 8 6756 6755 6673 6674 2574 2573 2491 2492 + 8 6757 6756 6674 6675 2575 2574 2492 2493 + 8 6758 6757 6675 6676 2576 2575 2493 2494 + 8 6759 6758 6676 6677 2577 2576 2494 2495 + 8 6760 6759 6677 6678 2578 2577 2495 2496 + 8 6761 6760 6678 6679 2579 2578 2496 2497 + 8 6762 6761 6679 6680 2580 2579 2497 2498 + 8 6763 6762 6680 6681 2581 2580 2498 2499 + 8 6764 6763 6681 6682 2582 2581 2499 2500 + 8 6765 6764 6682 6683 2583 2582 2500 2501 + 8 6766 6765 6683 6684 2584 2583 2501 2502 + 8 6767 6766 6684 6685 2585 2584 2502 2503 + 8 6768 6767 6685 6686 2586 2585 2503 2504 + 8 6769 6768 6686 6687 2587 2586 2504 2505 + 8 6770 6769 6687 6688 2588 2587 2505 2506 + 8 6771 6770 6688 6689 2589 2588 2506 2507 + 8 6772 6771 6689 6690 2590 2589 2507 2508 + 8 6773 6772 6690 6691 2591 2590 2508 2509 + 8 6774 6773 6691 6692 2592 2591 2509 2510 + 8 6775 6774 6692 6693 2593 2592 2510 2511 + 8 6776 6775 6693 6694 2594 2593 2511 2512 + 8 6777 6776 6694 6695 2595 2594 2512 2513 + 8 6778 6777 6695 6696 2596 2595 2513 2514 + 8 6779 6778 6696 6697 2597 2596 2514 2515 + 8 6780 6779 6697 6698 2598 2597 2515 2516 + 8 6781 6780 6698 6699 2599 2598 2516 2517 + 8 6782 6781 6699 6700 2600 2599 2517 2518 + 8 6783 6782 6700 6701 2601 2600 2518 2519 + 8 6784 6783 6701 6702 2602 2601 2519 2520 + 8 6785 6784 6702 6703 2603 2602 2520 2521 + 8 6786 6785 6703 6704 2604 2603 2521 2522 + 8 6787 6786 6704 6705 2605 2604 2522 2523 + 8 6788 6787 6705 6706 2606 2605 2523 2524 + 8 6789 6788 6706 6707 2607 2606 2524 2525 + 8 6790 6789 6707 6708 2608 2607 2525 2526 + 8 6791 6790 6708 6709 2609 2608 2526 2527 + 8 6792 6791 6709 6710 2610 2609 2527 2528 + 8 6793 6792 6710 6711 2611 2610 2528 2529 + 8 6794 6793 6711 6712 2612 2611 2529 2530 + 8 6795 6794 6712 6713 2613 2612 2530 2531 + 8 6796 6795 6713 6714 2614 2613 2531 2532 + 8 6797 6796 6714 6715 2615 2614 2532 2533 + 8 6798 6797 6715 6716 2616 2615 2533 2534 + 8 6799 6798 6716 6717 2617 2616 2534 2535 + 8 6800 6799 6717 6718 2618 2617 2535 2536 + 8 6801 6800 6718 6719 2619 2618 2536 2537 + 8 6802 6801 6719 6720 2620 2619 2537 2538 + 8 6803 6802 6720 6721 2621 2620 2538 2539 + 8 6804 6803 6721 6722 2622 2621 2539 2540 + 8 6805 6804 6722 6723 2623 2622 2540 2541 + 8 6806 6807 6725 6724 2624 2625 2543 2542 + 8 6808 6806 6724 6726 2626 2624 2542 2544 + 8 6809 6808 6726 6727 2627 2626 2544 2545 + 8 6810 6809 6727 6728 2628 2627 2545 2546 + 8 6811 6810 6728 6729 2629 2628 2546 2547 + 8 6812 6811 6729 6730 2630 2629 2547 2548 + 8 6813 6812 6730 6731 2631 2630 2548 2549 + 8 6814 6813 6731 6732 2632 2631 2549 2550 + 8 6815 6814 6732 6733 2633 2632 2550 2551 + 8 6816 6815 6733 6734 2634 2633 2551 2552 + 8 6817 6816 6734 6735 2635 2634 2552 2553 + 8 6818 6817 6735 6736 2636 2635 2553 2554 + 8 6819 6818 6736 6737 2637 2636 2554 2555 + 8 6820 6819 6737 6738 2638 2637 2555 2556 + 8 6821 6820 6738 6739 2639 2638 2556 2557 + 8 6822 6821 6739 6740 2640 2639 2557 2558 + 8 6823 6822 6740 6741 2641 2640 2558 2559 + 8 6824 6823 6741 6742 2642 2641 2559 2560 + 8 6825 6824 6742 6743 2643 2642 2560 2561 + 8 6826 6825 6743 6744 2644 2643 2561 2562 + 8 6827 6826 6744 6745 2645 2644 2562 2563 + 8 6828 6827 6745 6746 2646 2645 2563 2564 + 8 6829 6828 6746 6747 2647 2646 2564 2565 + 8 6830 6829 6747 6748 2648 2647 2565 2566 + 8 6831 6830 6748 6749 2649 2648 2566 2567 + 8 6832 6831 6749 6750 2650 2649 2567 2568 + 8 6833 6832 6750 6751 2651 2650 2568 2569 + 8 6834 6833 6751 6752 2652 2651 2569 2570 + 8 6835 6834 6752 6753 2653 2652 2570 2571 + 8 6836 6835 6753 6754 2654 2653 2571 2572 + 8 6837 6836 6754 6755 2655 2654 2572 2573 + 8 6838 6837 6755 6756 2656 2655 2573 2574 + 8 6839 6838 6756 6757 2657 2656 2574 2575 + 8 6840 6839 6757 6758 2658 2657 2575 2576 + 8 6841 6840 6758 6759 2659 2658 2576 2577 + 8 6842 6841 6759 6760 2660 2659 2577 2578 + 8 6843 6842 6760 6761 2661 2660 2578 2579 + 8 6844 6843 6761 6762 2662 2661 2579 2580 + 8 6845 6844 6762 6763 2663 2662 2580 2581 + 8 6846 6845 6763 6764 2664 2663 2581 2582 + 8 6847 6846 6764 6765 2665 2664 2582 2583 + 8 6848 6847 6765 6766 2666 2665 2583 2584 + 8 6849 6848 6766 6767 2667 2666 2584 2585 + 8 6850 6849 6767 6768 2668 2667 2585 2586 + 8 6851 6850 6768 6769 2669 2668 2586 2587 + 8 6852 6851 6769 6770 2670 2669 2587 2588 + 8 6853 6852 6770 6771 2671 2670 2588 2589 + 8 6854 6853 6771 6772 2672 2671 2589 2590 + 8 6855 6854 6772 6773 2673 2672 2590 2591 + 8 6856 6855 6773 6774 2674 2673 2591 2592 + 8 6857 6856 6774 6775 2675 2674 2592 2593 + 8 6858 6857 6775 6776 2676 2675 2593 2594 + 8 6859 6858 6776 6777 2677 2676 2594 2595 + 8 6860 6859 6777 6778 2678 2677 2595 2596 + 8 6861 6860 6778 6779 2679 2678 2596 2597 + 8 6862 6861 6779 6780 2680 2679 2597 2598 + 8 6863 6862 6780 6781 2681 2680 2598 2599 + 8 6864 6863 6781 6782 2682 2681 2599 2600 + 8 6865 6864 6782 6783 2683 2682 2600 2601 + 8 6866 6865 6783 6784 2684 2683 2601 2602 + 8 6867 6866 6784 6785 2685 2684 2602 2603 + 8 6868 6867 6785 6786 2686 2685 2603 2604 + 8 6869 6868 6786 6787 2687 2686 2604 2605 + 8 6870 6869 6787 6788 2688 2687 2605 2606 + 8 6871 6870 6788 6789 2689 2688 2606 2607 + 8 6872 6871 6789 6790 2690 2689 2607 2608 + 8 6873 6872 6790 6791 2691 2690 2608 2609 + 8 6874 6873 6791 6792 2692 2691 2609 2610 + 8 6875 6874 6792 6793 2693 2692 2610 2611 + 8 6876 6875 6793 6794 2694 2693 2611 2612 + 8 6877 6876 6794 6795 2695 2694 2612 2613 + 8 6878 6877 6795 6796 2696 2695 2613 2614 + 8 6879 6878 6796 6797 2697 2696 2614 2615 + 8 6880 6879 6797 6798 2698 2697 2615 2616 + 8 6881 6880 6798 6799 2699 2698 2616 2617 + 8 6882 6881 6799 6800 2700 2699 2617 2618 + 8 6883 6882 6800 6801 2701 2700 2618 2619 + 8 6884 6883 6801 6802 2702 2701 2619 2620 + 8 6885 6884 6802 6803 2703 2702 2620 2621 + 8 6886 6885 6803 6804 2704 2703 2621 2622 + 8 6887 6886 6804 6805 2705 2704 2622 2623 + 8 6888 6889 6807 6806 2706 2707 2625 2624 + 8 6890 6888 6806 6808 2708 2706 2624 2626 + 8 6891 6890 6808 6809 2709 2708 2626 2627 + 8 6892 6891 6809 6810 2710 2709 2627 2628 + 8 6893 6892 6810 6811 2711 2710 2628 2629 + 8 6894 6893 6811 6812 2712 2711 2629 2630 + 8 6895 6894 6812 6813 2713 2712 2630 2631 + 8 6896 6895 6813 6814 2714 2713 2631 2632 + 8 6897 6896 6814 6815 2715 2714 2632 2633 + 8 6898 6897 6815 6816 2716 2715 2633 2634 + 8 6899 6898 6816 6817 2717 2716 2634 2635 + 8 6900 6899 6817 6818 2718 2717 2635 2636 + 8 6901 6900 6818 6819 2719 2718 2636 2637 + 8 6902 6901 6819 6820 2720 2719 2637 2638 + 8 6903 6902 6820 6821 2721 2720 2638 2639 + 8 6904 6903 6821 6822 2722 2721 2639 2640 + 8 6905 6904 6822 6823 2723 2722 2640 2641 + 8 6906 6905 6823 6824 2724 2723 2641 2642 + 8 6907 6906 6824 6825 2725 2724 2642 2643 + 8 6908 6907 6825 6826 2726 2725 2643 2644 + 8 6909 6908 6826 6827 2727 2726 2644 2645 + 8 6910 6909 6827 6828 2728 2727 2645 2646 + 8 6911 6910 6828 6829 2729 2728 2646 2647 + 8 6912 6911 6829 6830 2730 2729 2647 2648 + 8 6913 6912 6830 6831 2731 2730 2648 2649 + 8 6914 6913 6831 6832 2732 2731 2649 2650 + 8 6915 6914 6832 6833 2733 2732 2650 2651 + 8 6916 6915 6833 6834 2734 2733 2651 2652 + 8 6917 6916 6834 6835 2735 2734 2652 2653 + 8 6918 6917 6835 6836 2736 2735 2653 2654 + 8 6919 6918 6836 6837 2737 2736 2654 2655 + 8 6920 6919 6837 6838 2738 2737 2655 2656 + 8 6921 6920 6838 6839 2739 2738 2656 2657 + 8 6922 6921 6839 6840 2740 2739 2657 2658 + 8 6923 6922 6840 6841 2741 2740 2658 2659 + 8 6924 6923 6841 6842 2742 2741 2659 2660 + 8 6925 6924 6842 6843 2743 2742 2660 2661 + 8 6926 6925 6843 6844 2744 2743 2661 2662 + 8 6927 6926 6844 6845 2745 2744 2662 2663 + 8 6928 6927 6845 6846 2746 2745 2663 2664 + 8 6929 6928 6846 6847 2747 2746 2664 2665 + 8 6930 6929 6847 6848 2748 2747 2665 2666 + 8 6931 6930 6848 6849 2749 2748 2666 2667 + 8 6932 6931 6849 6850 2750 2749 2667 2668 + 8 6933 6932 6850 6851 2751 2750 2668 2669 + 8 6934 6933 6851 6852 2752 2751 2669 2670 + 8 6935 6934 6852 6853 2753 2752 2670 2671 + 8 6936 6935 6853 6854 2754 2753 2671 2672 + 8 6937 6936 6854 6855 2755 2754 2672 2673 + 8 6938 6937 6855 6856 2756 2755 2673 2674 + 8 6939 6938 6856 6857 2757 2756 2674 2675 + 8 6940 6939 6857 6858 2758 2757 2675 2676 + 8 6941 6940 6858 6859 2759 2758 2676 2677 + 8 6942 6941 6859 6860 2760 2759 2677 2678 + 8 6943 6942 6860 6861 2761 2760 2678 2679 + 8 6944 6943 6861 6862 2762 2761 2679 2680 + 8 6945 6944 6862 6863 2763 2762 2680 2681 + 8 6946 6945 6863 6864 2764 2763 2681 2682 + 8 6947 6946 6864 6865 2765 2764 2682 2683 + 8 6948 6947 6865 6866 2766 2765 2683 2684 + 8 6949 6948 6866 6867 2767 2766 2684 2685 + 8 6950 6949 6867 6868 2768 2767 2685 2686 + 8 6951 6950 6868 6869 2769 2768 2686 2687 + 8 6952 6951 6869 6870 2770 2769 2687 2688 + 8 6953 6952 6870 6871 2771 2770 2688 2689 + 8 6954 6953 6871 6872 2772 2771 2689 2690 + 8 6955 6954 6872 6873 2773 2772 2690 2691 + 8 6956 6955 6873 6874 2774 2773 2691 2692 + 8 6957 6956 6874 6875 2775 2774 2692 2693 + 8 6958 6957 6875 6876 2776 2775 2693 2694 + 8 6959 6958 6876 6877 2777 2776 2694 2695 + 8 6960 6959 6877 6878 2778 2777 2695 2696 + 8 6961 6960 6878 6879 2779 2778 2696 2697 + 8 6962 6961 6879 6880 2780 2779 2697 2698 + 8 6963 6962 6880 6881 2781 2780 2698 2699 + 8 6964 6963 6881 6882 2782 2781 2699 2700 + 8 6965 6964 6882 6883 2783 2782 2700 2701 + 8 6966 6965 6883 6884 2784 2783 2701 2702 + 8 6967 6966 6884 6885 2785 2784 2702 2703 + 8 6968 6967 6885 6886 2786 2785 2703 2704 + 8 6969 6968 6886 6887 2787 2786 2704 2705 + 8 6970 6971 6889 6888 2788 2789 2707 2706 + 8 6972 6970 6888 6890 2790 2788 2706 2708 + 8 6973 6972 6890 6891 2791 2790 2708 2709 + 8 6974 6973 6891 6892 2792 2791 2709 2710 + 8 6975 6974 6892 6893 2793 2792 2710 2711 + 8 6976 6975 6893 6894 2794 2793 2711 2712 + 8 6977 6976 6894 6895 2795 2794 2712 2713 + 8 6978 6977 6895 6896 2796 2795 2713 2714 + 8 6979 6978 6896 6897 2797 2796 2714 2715 + 8 6980 6979 6897 6898 2798 2797 2715 2716 + 8 6981 6980 6898 6899 2799 2798 2716 2717 + 8 6982 6981 6899 6900 2800 2799 2717 2718 + 8 6983 6982 6900 6901 2801 2800 2718 2719 + 8 6984 6983 6901 6902 2802 2801 2719 2720 + 8 6985 6984 6902 6903 2803 2802 2720 2721 + 8 6986 6985 6903 6904 2804 2803 2721 2722 + 8 6987 6986 6904 6905 2805 2804 2722 2723 + 8 6988 6987 6905 6906 2806 2805 2723 2724 + 8 6989 6988 6906 6907 2807 2806 2724 2725 + 8 6990 6989 6907 6908 2808 2807 2725 2726 + 8 6991 6990 6908 6909 2809 2808 2726 2727 + 8 6992 6991 6909 6910 2810 2809 2727 2728 + 8 6993 6992 6910 6911 2811 2810 2728 2729 + 8 6994 6993 6911 6912 2812 2811 2729 2730 + 8 6995 6994 6912 6913 2813 2812 2730 2731 + 8 6996 6995 6913 6914 2814 2813 2731 2732 + 8 6997 6996 6914 6915 2815 2814 2732 2733 + 8 6998 6997 6915 6916 2816 2815 2733 2734 + 8 6999 6998 6916 6917 2817 2816 2734 2735 + 8 7000 6999 6917 6918 2818 2817 2735 2736 + 8 7001 7000 6918 6919 2819 2818 2736 2737 + 8 7002 7001 6919 6920 2820 2819 2737 2738 + 8 7003 7002 6920 6921 2821 2820 2738 2739 + 8 7004 7003 6921 6922 2822 2821 2739 2740 + 8 7005 7004 6922 6923 2823 2822 2740 2741 + 8 7006 7005 6923 6924 2824 2823 2741 2742 + 8 7007 7006 6924 6925 2825 2824 2742 2743 + 8 7008 7007 6925 6926 2826 2825 2743 2744 + 8 7009 7008 6926 6927 2827 2826 2744 2745 + 8 7010 7009 6927 6928 2828 2827 2745 2746 + 8 7011 7010 6928 6929 2829 2828 2746 2747 + 8 7012 7011 6929 6930 2830 2829 2747 2748 + 8 7013 7012 6930 6931 2831 2830 2748 2749 + 8 7014 7013 6931 6932 2832 2831 2749 2750 + 8 7015 7014 6932 6933 2833 2832 2750 2751 + 8 7016 7015 6933 6934 2834 2833 2751 2752 + 8 7017 7016 6934 6935 2835 2834 2752 2753 + 8 7018 7017 6935 6936 2836 2835 2753 2754 + 8 7019 7018 6936 6937 2837 2836 2754 2755 + 8 7020 7019 6937 6938 2838 2837 2755 2756 + 8 7021 7020 6938 6939 2839 2838 2756 2757 + 8 7022 7021 6939 6940 2840 2839 2757 2758 + 8 7023 7022 6940 6941 2841 2840 2758 2759 + 8 7024 7023 6941 6942 2842 2841 2759 2760 + 8 7025 7024 6942 6943 2843 2842 2760 2761 + 8 7026 7025 6943 6944 2844 2843 2761 2762 + 8 7027 7026 6944 6945 2845 2844 2762 2763 + 8 7028 7027 6945 6946 2846 2845 2763 2764 + 8 7029 7028 6946 6947 2847 2846 2764 2765 + 8 7030 7029 6947 6948 2848 2847 2765 2766 + 8 7031 7030 6948 6949 2849 2848 2766 2767 + 8 7032 7031 6949 6950 2850 2849 2767 2768 + 8 7033 7032 6950 6951 2851 2850 2768 2769 + 8 7034 7033 6951 6952 2852 2851 2769 2770 + 8 7035 7034 6952 6953 2853 2852 2770 2771 + 8 7036 7035 6953 6954 2854 2853 2771 2772 + 8 7037 7036 6954 6955 2855 2854 2772 2773 + 8 7038 7037 6955 6956 2856 2855 2773 2774 + 8 7039 7038 6956 6957 2857 2856 2774 2775 + 8 7040 7039 6957 6958 2858 2857 2775 2776 + 8 7041 7040 6958 6959 2859 2858 2776 2777 + 8 7042 7041 6959 6960 2860 2859 2777 2778 + 8 7043 7042 6960 6961 2861 2860 2778 2779 + 8 7044 7043 6961 6962 2862 2861 2779 2780 + 8 7045 7044 6962 6963 2863 2862 2780 2781 + 8 7046 7045 6963 6964 2864 2863 2781 2782 + 8 7047 7046 6964 6965 2865 2864 2782 2783 + 8 7048 7047 6965 6966 2866 2865 2783 2784 + 8 7049 7048 6966 6967 2867 2866 2784 2785 + 8 7050 7049 6967 6968 2868 2867 2785 2786 + 8 7051 7050 6968 6969 2869 2868 2786 2787 + 8 7052 7053 6971 6970 2870 2871 2789 2788 + 8 7054 7052 6970 6972 2872 2870 2788 2790 + 8 7055 7054 6972 6973 2873 2872 2790 2791 + 8 7056 7055 6973 6974 2874 2873 2791 2792 + 8 7057 7056 6974 6975 2875 2874 2792 2793 + 8 7058 7057 6975 6976 2876 2875 2793 2794 + 8 7059 7058 6976 6977 2877 2876 2794 2795 + 8 7060 7059 6977 6978 2878 2877 2795 2796 + 8 7061 7060 6978 6979 2879 2878 2796 2797 + 8 7062 7061 6979 6980 2880 2879 2797 2798 + 8 7063 7062 6980 6981 2881 2880 2798 2799 + 8 7064 7063 6981 6982 2882 2881 2799 2800 + 8 7065 7064 6982 6983 2883 2882 2800 2801 + 8 7066 7065 6983 6984 2884 2883 2801 2802 + 8 7067 7066 6984 6985 2885 2884 2802 2803 + 8 7068 7067 6985 6986 2886 2885 2803 2804 + 8 7069 7068 6986 6987 2887 2886 2804 2805 + 8 7070 7069 6987 6988 2888 2887 2805 2806 + 8 7071 7070 6988 6989 2889 2888 2806 2807 + 8 7072 7071 6989 6990 2890 2889 2807 2808 + 8 7073 7072 6990 6991 2891 2890 2808 2809 + 8 7074 7073 6991 6992 2892 2891 2809 2810 + 8 7075 7074 6992 6993 2893 2892 2810 2811 + 8 7076 7075 6993 6994 2894 2893 2811 2812 + 8 7077 7076 6994 6995 2895 2894 2812 2813 + 8 7078 7077 6995 6996 2896 2895 2813 2814 + 8 7079 7078 6996 6997 2897 2896 2814 2815 + 8 7080 7079 6997 6998 2898 2897 2815 2816 + 8 7081 7080 6998 6999 2899 2898 2816 2817 + 8 7082 7081 6999 7000 2900 2899 2817 2818 + 8 7083 7082 7000 7001 2901 2900 2818 2819 + 8 7084 7083 7001 7002 2902 2901 2819 2820 + 8 7085 7084 7002 7003 2903 2902 2820 2821 + 8 7086 7085 7003 7004 2904 2903 2821 2822 + 8 7087 7086 7004 7005 2905 2904 2822 2823 + 8 7088 7087 7005 7006 2906 2905 2823 2824 + 8 7089 7088 7006 7007 2907 2906 2824 2825 + 8 7090 7089 7007 7008 2908 2907 2825 2826 + 8 7091 7090 7008 7009 2909 2908 2826 2827 + 8 7092 7091 7009 7010 2910 2909 2827 2828 + 8 7093 7092 7010 7011 2911 2910 2828 2829 + 8 7094 7093 7011 7012 2912 2911 2829 2830 + 8 7095 7094 7012 7013 2913 2912 2830 2831 + 8 7096 7095 7013 7014 2914 2913 2831 2832 + 8 7097 7096 7014 7015 2915 2914 2832 2833 + 8 7098 7097 7015 7016 2916 2915 2833 2834 + 8 7099 7098 7016 7017 2917 2916 2834 2835 + 8 7100 7099 7017 7018 2918 2917 2835 2836 + 8 7101 7100 7018 7019 2919 2918 2836 2837 + 8 7102 7101 7019 7020 2920 2919 2837 2838 + 8 7103 7102 7020 7021 2921 2920 2838 2839 + 8 7104 7103 7021 7022 2922 2921 2839 2840 + 8 7105 7104 7022 7023 2923 2922 2840 2841 + 8 7106 7105 7023 7024 2924 2923 2841 2842 + 8 7107 7106 7024 7025 2925 2924 2842 2843 + 8 7108 7107 7025 7026 2926 2925 2843 2844 + 8 7109 7108 7026 7027 2927 2926 2844 2845 + 8 7110 7109 7027 7028 2928 2927 2845 2846 + 8 7111 7110 7028 7029 2929 2928 2846 2847 + 8 7112 7111 7029 7030 2930 2929 2847 2848 + 8 7113 7112 7030 7031 2931 2930 2848 2849 + 8 7114 7113 7031 7032 2932 2931 2849 2850 + 8 7115 7114 7032 7033 2933 2932 2850 2851 + 8 7116 7115 7033 7034 2934 2933 2851 2852 + 8 7117 7116 7034 7035 2935 2934 2852 2853 + 8 7118 7117 7035 7036 2936 2935 2853 2854 + 8 7119 7118 7036 7037 2937 2936 2854 2855 + 8 7120 7119 7037 7038 2938 2937 2855 2856 + 8 7121 7120 7038 7039 2939 2938 2856 2857 + 8 7122 7121 7039 7040 2940 2939 2857 2858 + 8 7123 7122 7040 7041 2941 2940 2858 2859 + 8 7124 7123 7041 7042 2942 2941 2859 2860 + 8 7125 7124 7042 7043 2943 2942 2860 2861 + 8 7126 7125 7043 7044 2944 2943 2861 2862 + 8 7127 7126 7044 7045 2945 2944 2862 2863 + 8 7128 7127 7045 7046 2946 2945 2863 2864 + 8 7129 7128 7046 7047 2947 2946 2864 2865 + 8 7130 7129 7047 7048 2948 2947 2865 2866 + 8 7131 7130 7048 7049 2949 2948 2866 2867 + 8 7132 7131 7049 7050 2950 2949 2867 2868 + 8 7133 7132 7050 7051 2951 2950 2868 2869 + 8 7134 7135 7053 7052 2952 2953 2871 2870 + 8 7136 7134 7052 7054 2954 2952 2870 2872 + 8 7137 7136 7054 7055 2955 2954 2872 2873 + 8 7138 7137 7055 7056 2956 2955 2873 2874 + 8 7139 7138 7056 7057 2957 2956 2874 2875 + 8 7140 7139 7057 7058 2958 2957 2875 2876 + 8 7141 7140 7058 7059 2959 2958 2876 2877 + 8 7142 7141 7059 7060 2960 2959 2877 2878 + 8 7143 7142 7060 7061 2961 2960 2878 2879 + 8 7144 7143 7061 7062 2962 2961 2879 2880 + 8 7145 7144 7062 7063 2963 2962 2880 2881 + 8 7146 7145 7063 7064 2964 2963 2881 2882 + 8 7147 7146 7064 7065 2965 2964 2882 2883 + 8 7148 7147 7065 7066 2966 2965 2883 2884 + 8 7149 7148 7066 7067 2967 2966 2884 2885 + 8 7150 7149 7067 7068 2968 2967 2885 2886 + 8 7151 7150 7068 7069 2969 2968 2886 2887 + 8 7152 7151 7069 7070 2970 2969 2887 2888 + 8 7153 7152 7070 7071 2971 2970 2888 2889 + 8 7154 7153 7071 7072 2972 2971 2889 2890 + 8 7155 7154 7072 7073 2973 2972 2890 2891 + 8 7156 7155 7073 7074 2974 2973 2891 2892 + 8 7157 7156 7074 7075 2975 2974 2892 2893 + 8 7158 7157 7075 7076 2976 2975 2893 2894 + 8 7159 7158 7076 7077 2977 2976 2894 2895 + 8 7160 7159 7077 7078 2978 2977 2895 2896 + 8 7161 7160 7078 7079 2979 2978 2896 2897 + 8 7162 7161 7079 7080 2980 2979 2897 2898 + 8 7163 7162 7080 7081 2981 2980 2898 2899 + 8 7164 7163 7081 7082 2982 2981 2899 2900 + 8 7165 7164 7082 7083 2983 2982 2900 2901 + 8 7166 7165 7083 7084 2984 2983 2901 2902 + 8 7167 7166 7084 7085 2985 2984 2902 2903 + 8 7168 7167 7085 7086 2986 2985 2903 2904 + 8 7169 7168 7086 7087 2987 2986 2904 2905 + 8 7170 7169 7087 7088 2988 2987 2905 2906 + 8 7171 7170 7088 7089 2989 2988 2906 2907 + 8 7172 7171 7089 7090 2990 2989 2907 2908 + 8 7173 7172 7090 7091 2991 2990 2908 2909 + 8 7174 7173 7091 7092 2992 2991 2909 2910 + 8 7175 7174 7092 7093 2993 2992 2910 2911 + 8 7176 7175 7093 7094 2994 2993 2911 2912 + 8 7177 7176 7094 7095 2995 2994 2912 2913 + 8 7178 7177 7095 7096 2996 2995 2913 2914 + 8 7179 7178 7096 7097 2997 2996 2914 2915 + 8 7180 7179 7097 7098 2998 2997 2915 2916 + 8 7181 7180 7098 7099 2999 2998 2916 2917 + 8 7182 7181 7099 7100 3000 2999 2917 2918 + 8 7183 7182 7100 7101 3001 3000 2918 2919 + 8 7184 7183 7101 7102 3002 3001 2919 2920 + 8 7185 7184 7102 7103 3003 3002 2920 2921 + 8 7186 7185 7103 7104 3004 3003 2921 2922 + 8 7187 7186 7104 7105 3005 3004 2922 2923 + 8 7188 7187 7105 7106 3006 3005 2923 2924 + 8 7189 7188 7106 7107 3007 3006 2924 2925 + 8 7190 7189 7107 7108 3008 3007 2925 2926 + 8 7191 7190 7108 7109 3009 3008 2926 2927 + 8 7192 7191 7109 7110 3010 3009 2927 2928 + 8 7193 7192 7110 7111 3011 3010 2928 2929 + 8 7194 7193 7111 7112 3012 3011 2929 2930 + 8 7195 7194 7112 7113 3013 3012 2930 2931 + 8 7196 7195 7113 7114 3014 3013 2931 2932 + 8 7197 7196 7114 7115 3015 3014 2932 2933 + 8 7198 7197 7115 7116 3016 3015 2933 2934 + 8 7199 7198 7116 7117 3017 3016 2934 2935 + 8 7200 7199 7117 7118 3018 3017 2935 2936 + 8 7201 7200 7118 7119 3019 3018 2936 2937 + 8 7202 7201 7119 7120 3020 3019 2937 2938 + 8 7203 7202 7120 7121 3021 3020 2938 2939 + 8 7204 7203 7121 7122 3022 3021 2939 2940 + 8 7205 7204 7122 7123 3023 3022 2940 2941 + 8 7206 7205 7123 7124 3024 3023 2941 2942 + 8 7207 7206 7124 7125 3025 3024 2942 2943 + 8 7208 7207 7125 7126 3026 3025 2943 2944 + 8 7209 7208 7126 7127 3027 3026 2944 2945 + 8 7210 7209 7127 7128 3028 3027 2945 2946 + 8 7211 7210 7128 7129 3029 3028 2946 2947 + 8 7212 7211 7129 7130 3030 3029 2947 2948 + 8 7213 7212 7130 7131 3031 3030 2948 2949 + 8 7214 7213 7131 7132 3032 3031 2949 2950 + 8 7215 7214 7132 7133 3033 3032 2950 2951 + 8 7216 7217 7135 7134 3034 3035 2953 2952 + 8 7218 7216 7134 7136 3036 3034 2952 2954 + 8 7219 7218 7136 7137 3037 3036 2954 2955 + 8 7220 7219 7137 7138 3038 3037 2955 2956 + 8 7221 7220 7138 7139 3039 3038 2956 2957 + 8 7222 7221 7139 7140 3040 3039 2957 2958 + 8 7223 7222 7140 7141 3041 3040 2958 2959 + 8 7224 7223 7141 7142 3042 3041 2959 2960 + 8 7225 7224 7142 7143 3043 3042 2960 2961 + 8 7226 7225 7143 7144 3044 3043 2961 2962 + 8 7227 7226 7144 7145 3045 3044 2962 2963 + 8 7228 7227 7145 7146 3046 3045 2963 2964 + 8 7229 7228 7146 7147 3047 3046 2964 2965 + 8 7230 7229 7147 7148 3048 3047 2965 2966 + 8 7231 7230 7148 7149 3049 3048 2966 2967 + 8 7232 7231 7149 7150 3050 3049 2967 2968 + 8 7233 7232 7150 7151 3051 3050 2968 2969 + 8 7234 7233 7151 7152 3052 3051 2969 2970 + 8 7235 7234 7152 7153 3053 3052 2970 2971 + 8 7236 7235 7153 7154 3054 3053 2971 2972 + 8 7237 7236 7154 7155 3055 3054 2972 2973 + 8 7238 7237 7155 7156 3056 3055 2973 2974 + 8 7239 7238 7156 7157 3057 3056 2974 2975 + 8 7240 7239 7157 7158 3058 3057 2975 2976 + 8 7241 7240 7158 7159 3059 3058 2976 2977 + 8 7242 7241 7159 7160 3060 3059 2977 2978 + 8 7243 7242 7160 7161 3061 3060 2978 2979 + 8 7244 7243 7161 7162 3062 3061 2979 2980 + 8 7245 7244 7162 7163 3063 3062 2980 2981 + 8 7246 7245 7163 7164 3064 3063 2981 2982 + 8 7247 7246 7164 7165 3065 3064 2982 2983 + 8 7248 7247 7165 7166 3066 3065 2983 2984 + 8 7249 7248 7166 7167 3067 3066 2984 2985 + 8 7250 7249 7167 7168 3068 3067 2985 2986 + 8 7251 7250 7168 7169 3069 3068 2986 2987 + 8 7252 7251 7169 7170 3070 3069 2987 2988 + 8 7253 7252 7170 7171 3071 3070 2988 2989 + 8 7254 7253 7171 7172 3072 3071 2989 2990 + 8 7255 7254 7172 7173 3073 3072 2990 2991 + 8 7256 7255 7173 7174 3074 3073 2991 2992 + 8 7257 7256 7174 7175 3075 3074 2992 2993 + 8 7258 7257 7175 7176 3076 3075 2993 2994 + 8 7259 7258 7176 7177 3077 3076 2994 2995 + 8 7260 7259 7177 7178 3078 3077 2995 2996 + 8 7261 7260 7178 7179 3079 3078 2996 2997 + 8 7262 7261 7179 7180 3080 3079 2997 2998 + 8 7263 7262 7180 7181 3081 3080 2998 2999 + 8 7264 7263 7181 7182 3082 3081 2999 3000 + 8 7265 7264 7182 7183 3083 3082 3000 3001 + 8 7266 7265 7183 7184 3084 3083 3001 3002 + 8 7267 7266 7184 7185 3085 3084 3002 3003 + 8 7268 7267 7185 7186 3086 3085 3003 3004 + 8 7269 7268 7186 7187 3087 3086 3004 3005 + 8 7270 7269 7187 7188 3088 3087 3005 3006 + 8 7271 7270 7188 7189 3089 3088 3006 3007 + 8 7272 7271 7189 7190 3090 3089 3007 3008 + 8 7273 7272 7190 7191 3091 3090 3008 3009 + 8 7274 7273 7191 7192 3092 3091 3009 3010 + 8 7275 7274 7192 7193 3093 3092 3010 3011 + 8 7276 7275 7193 7194 3094 3093 3011 3012 + 8 7277 7276 7194 7195 3095 3094 3012 3013 + 8 7278 7277 7195 7196 3096 3095 3013 3014 + 8 7279 7278 7196 7197 3097 3096 3014 3015 + 8 7280 7279 7197 7198 3098 3097 3015 3016 + 8 7281 7280 7198 7199 3099 3098 3016 3017 + 8 7282 7281 7199 7200 3100 3099 3017 3018 + 8 7283 7282 7200 7201 3101 3100 3018 3019 + 8 7284 7283 7201 7202 3102 3101 3019 3020 + 8 7285 7284 7202 7203 3103 3102 3020 3021 + 8 7286 7285 7203 7204 3104 3103 3021 3022 + 8 7287 7286 7204 7205 3105 3104 3022 3023 + 8 7288 7287 7205 7206 3106 3105 3023 3024 + 8 7289 7288 7206 7207 3107 3106 3024 3025 + 8 7290 7289 7207 7208 3108 3107 3025 3026 + 8 7291 7290 7208 7209 3109 3108 3026 3027 + 8 7292 7291 7209 7210 3110 3109 3027 3028 + 8 7293 7292 7210 7211 3111 3110 3028 3029 + 8 7294 7293 7211 7212 3112 3111 3029 3030 + 8 7295 7294 7212 7213 3113 3112 3030 3031 + 8 7296 7295 7213 7214 3114 3113 3031 3032 + 8 7297 7296 7214 7215 3115 3114 3032 3033 + 8 7298 7299 7217 7216 3116 3117 3035 3034 + 8 7300 7298 7216 7218 3118 3116 3034 3036 + 8 7301 7300 7218 7219 3119 3118 3036 3037 + 8 7302 7301 7219 7220 3120 3119 3037 3038 + 8 7303 7302 7220 7221 3121 3120 3038 3039 + 8 7304 7303 7221 7222 3122 3121 3039 3040 + 8 7305 7304 7222 7223 3123 3122 3040 3041 + 8 7306 7305 7223 7224 3124 3123 3041 3042 + 8 7307 7306 7224 7225 3125 3124 3042 3043 + 8 7308 7307 7225 7226 3126 3125 3043 3044 + 8 7309 7308 7226 7227 3127 3126 3044 3045 + 8 7310 7309 7227 7228 3128 3127 3045 3046 + 8 7311 7310 7228 7229 3129 3128 3046 3047 + 8 7312 7311 7229 7230 3130 3129 3047 3048 + 8 7313 7312 7230 7231 3131 3130 3048 3049 + 8 7314 7313 7231 7232 3132 3131 3049 3050 + 8 7315 7314 7232 7233 3133 3132 3050 3051 + 8 7316 7315 7233 7234 3134 3133 3051 3052 + 8 7317 7316 7234 7235 3135 3134 3052 3053 + 8 7318 7317 7235 7236 3136 3135 3053 3054 + 8 7319 7318 7236 7237 3137 3136 3054 3055 + 8 7320 7319 7237 7238 3138 3137 3055 3056 + 8 7321 7320 7238 7239 3139 3138 3056 3057 + 8 7322 7321 7239 7240 3140 3139 3057 3058 + 8 7323 7322 7240 7241 3141 3140 3058 3059 + 8 7324 7323 7241 7242 3142 3141 3059 3060 + 8 7325 7324 7242 7243 3143 3142 3060 3061 + 8 7326 7325 7243 7244 3144 3143 3061 3062 + 8 7327 7326 7244 7245 3145 3144 3062 3063 + 8 7328 7327 7245 7246 3146 3145 3063 3064 + 8 7329 7328 7246 7247 3147 3146 3064 3065 + 8 7330 7329 7247 7248 3148 3147 3065 3066 + 8 7331 7330 7248 7249 3149 3148 3066 3067 + 8 7332 7331 7249 7250 3150 3149 3067 3068 + 8 7333 7332 7250 7251 3151 3150 3068 3069 + 8 7334 7333 7251 7252 3152 3151 3069 3070 + 8 7335 7334 7252 7253 3153 3152 3070 3071 + 8 7336 7335 7253 7254 3154 3153 3071 3072 + 8 7337 7336 7254 7255 3155 3154 3072 3073 + 8 7338 7337 7255 7256 3156 3155 3073 3074 + 8 7339 7338 7256 7257 3157 3156 3074 3075 + 8 7340 7339 7257 7258 3158 3157 3075 3076 + 8 7341 7340 7258 7259 3159 3158 3076 3077 + 8 7342 7341 7259 7260 3160 3159 3077 3078 + 8 7343 7342 7260 7261 3161 3160 3078 3079 + 8 7344 7343 7261 7262 3162 3161 3079 3080 + 8 7345 7344 7262 7263 3163 3162 3080 3081 + 8 7346 7345 7263 7264 3164 3163 3081 3082 + 8 7347 7346 7264 7265 3165 3164 3082 3083 + 8 7348 7347 7265 7266 3166 3165 3083 3084 + 8 7349 7348 7266 7267 3167 3166 3084 3085 + 8 7350 7349 7267 7268 3168 3167 3085 3086 + 8 7351 7350 7268 7269 3169 3168 3086 3087 + 8 7352 7351 7269 7270 3170 3169 3087 3088 + 8 7353 7352 7270 7271 3171 3170 3088 3089 + 8 7354 7353 7271 7272 3172 3171 3089 3090 + 8 7355 7354 7272 7273 3173 3172 3090 3091 + 8 7356 7355 7273 7274 3174 3173 3091 3092 + 8 7357 7356 7274 7275 3175 3174 3092 3093 + 8 7358 7357 7275 7276 3176 3175 3093 3094 + 8 7359 7358 7276 7277 3177 3176 3094 3095 + 8 7360 7359 7277 7278 3178 3177 3095 3096 + 8 7361 7360 7278 7279 3179 3178 3096 3097 + 8 7362 7361 7279 7280 3180 3179 3097 3098 + 8 7363 7362 7280 7281 3181 3180 3098 3099 + 8 7364 7363 7281 7282 3182 3181 3099 3100 + 8 7365 7364 7282 7283 3183 3182 3100 3101 + 8 7366 7365 7283 7284 3184 3183 3101 3102 + 8 7367 7366 7284 7285 3185 3184 3102 3103 + 8 7368 7367 7285 7286 3186 3185 3103 3104 + 8 7369 7368 7286 7287 3187 3186 3104 3105 + 8 7370 7369 7287 7288 3188 3187 3105 3106 + 8 7371 7370 7288 7289 3189 3188 3106 3107 + 8 7372 7371 7289 7290 3190 3189 3107 3108 + 8 7373 7372 7290 7291 3191 3190 3108 3109 + 8 7374 7373 7291 7292 3192 3191 3109 3110 + 8 7375 7374 7292 7293 3193 3192 3110 3111 + 8 7376 7375 7293 7294 3194 3193 3111 3112 + 8 7377 7376 7294 7295 3195 3194 3112 3113 + 8 7378 7377 7295 7296 3196 3195 3113 3114 + 8 7379 7378 7296 7297 3197 3196 3114 3115 + 8 7380 7381 7299 7298 3198 3199 3117 3116 + 8 7382 7380 7298 7300 3200 3198 3116 3118 + 8 7383 7382 7300 7301 3201 3200 3118 3119 + 8 7384 7383 7301 7302 3202 3201 3119 3120 + 8 7385 7384 7302 7303 3203 3202 3120 3121 + 8 7386 7385 7303 7304 3204 3203 3121 3122 + 8 7387 7386 7304 7305 3205 3204 3122 3123 + 8 7388 7387 7305 7306 3206 3205 3123 3124 + 8 7389 7388 7306 7307 3207 3206 3124 3125 + 8 7390 7389 7307 7308 3208 3207 3125 3126 + 8 7391 7390 7308 7309 3209 3208 3126 3127 + 8 7392 7391 7309 7310 3210 3209 3127 3128 + 8 7393 7392 7310 7311 3211 3210 3128 3129 + 8 7394 7393 7311 7312 3212 3211 3129 3130 + 8 7395 7394 7312 7313 3213 3212 3130 3131 + 8 7396 7395 7313 7314 3214 3213 3131 3132 + 8 7397 7396 7314 7315 3215 3214 3132 3133 + 8 7398 7397 7315 7316 3216 3215 3133 3134 + 8 7399 7398 7316 7317 3217 3216 3134 3135 + 8 7400 7399 7317 7318 3218 3217 3135 3136 + 8 7401 7400 7318 7319 3219 3218 3136 3137 + 8 7402 7401 7319 7320 3220 3219 3137 3138 + 8 7403 7402 7320 7321 3221 3220 3138 3139 + 8 7404 7403 7321 7322 3222 3221 3139 3140 + 8 7405 7404 7322 7323 3223 3222 3140 3141 + 8 7406 7405 7323 7324 3224 3223 3141 3142 + 8 7407 7406 7324 7325 3225 3224 3142 3143 + 8 7408 7407 7325 7326 3226 3225 3143 3144 + 8 7409 7408 7326 7327 3227 3226 3144 3145 + 8 7410 7409 7327 7328 3228 3227 3145 3146 + 8 7411 7410 7328 7329 3229 3228 3146 3147 + 8 7412 7411 7329 7330 3230 3229 3147 3148 + 8 7413 7412 7330 7331 3231 3230 3148 3149 + 8 7414 7413 7331 7332 3232 3231 3149 3150 + 8 7415 7414 7332 7333 3233 3232 3150 3151 + 8 7416 7415 7333 7334 3234 3233 3151 3152 + 8 7417 7416 7334 7335 3235 3234 3152 3153 + 8 7418 7417 7335 7336 3236 3235 3153 3154 + 8 7419 7418 7336 7337 3237 3236 3154 3155 + 8 7420 7419 7337 7338 3238 3237 3155 3156 + 8 7421 7420 7338 7339 3239 3238 3156 3157 + 8 7422 7421 7339 7340 3240 3239 3157 3158 + 8 7423 7422 7340 7341 3241 3240 3158 3159 + 8 7424 7423 7341 7342 3242 3241 3159 3160 + 8 7425 7424 7342 7343 3243 3242 3160 3161 + 8 7426 7425 7343 7344 3244 3243 3161 3162 + 8 7427 7426 7344 7345 3245 3244 3162 3163 + 8 7428 7427 7345 7346 3246 3245 3163 3164 + 8 7429 7428 7346 7347 3247 3246 3164 3165 + 8 7430 7429 7347 7348 3248 3247 3165 3166 + 8 7431 7430 7348 7349 3249 3248 3166 3167 + 8 7432 7431 7349 7350 3250 3249 3167 3168 + 8 7433 7432 7350 7351 3251 3250 3168 3169 + 8 7434 7433 7351 7352 3252 3251 3169 3170 + 8 7435 7434 7352 7353 3253 3252 3170 3171 + 8 7436 7435 7353 7354 3254 3253 3171 3172 + 8 7437 7436 7354 7355 3255 3254 3172 3173 + 8 7438 7437 7355 7356 3256 3255 3173 3174 + 8 7439 7438 7356 7357 3257 3256 3174 3175 + 8 7440 7439 7357 7358 3258 3257 3175 3176 + 8 7441 7440 7358 7359 3259 3258 3176 3177 + 8 7442 7441 7359 7360 3260 3259 3177 3178 + 8 7443 7442 7360 7361 3261 3260 3178 3179 + 8 7444 7443 7361 7362 3262 3261 3179 3180 + 8 7445 7444 7362 7363 3263 3262 3180 3181 + 8 7446 7445 7363 7364 3264 3263 3181 3182 + 8 7447 7446 7364 7365 3265 3264 3182 3183 + 8 7448 7447 7365 7366 3266 3265 3183 3184 + 8 7449 7448 7366 7367 3267 3266 3184 3185 + 8 7450 7449 7367 7368 3268 3267 3185 3186 + 8 7451 7450 7368 7369 3269 3268 3186 3187 + 8 7452 7451 7369 7370 3270 3269 3187 3188 + 8 7453 7452 7370 7371 3271 3270 3188 3189 + 8 7454 7453 7371 7372 3272 3271 3189 3190 + 8 7455 7454 7372 7373 3273 3272 3190 3191 + 8 7456 7455 7373 7374 3274 3273 3191 3192 + 8 7457 7456 7374 7375 3275 3274 3192 3193 + 8 7458 7457 7375 7376 3276 3275 3193 3194 + 8 7459 7458 7376 7377 3277 3276 3194 3195 + 8 7460 7459 7377 7378 3278 3277 3195 3196 + 8 7461 7460 7378 7379 3279 3278 3196 3197 + 8 7462 7463 7381 7380 3280 3281 3199 3198 + 8 7464 7462 7380 7382 3282 3280 3198 3200 + 8 7465 7464 7382 7383 3283 3282 3200 3201 + 8 7466 7465 7383 7384 3284 3283 3201 3202 + 8 7467 7466 7384 7385 3285 3284 3202 3203 + 8 7468 7467 7385 7386 3286 3285 3203 3204 + 8 7469 7468 7386 7387 3287 3286 3204 3205 + 8 7470 7469 7387 7388 3288 3287 3205 3206 + 8 7471 7470 7388 7389 3289 3288 3206 3207 + 8 7472 7471 7389 7390 3290 3289 3207 3208 + 8 7473 7472 7390 7391 3291 3290 3208 3209 + 8 7474 7473 7391 7392 3292 3291 3209 3210 + 8 7475 7474 7392 7393 3293 3292 3210 3211 + 8 7476 7475 7393 7394 3294 3293 3211 3212 + 8 7477 7476 7394 7395 3295 3294 3212 3213 + 8 7478 7477 7395 7396 3296 3295 3213 3214 + 8 7479 7478 7396 7397 3297 3296 3214 3215 + 8 7480 7479 7397 7398 3298 3297 3215 3216 + 8 7481 7480 7398 7399 3299 3298 3216 3217 + 8 7482 7481 7399 7400 3300 3299 3217 3218 + 8 7483 7482 7400 7401 3301 3300 3218 3219 + 8 7484 7483 7401 7402 3302 3301 3219 3220 + 8 7485 7484 7402 7403 3303 3302 3220 3221 + 8 7486 7485 7403 7404 3304 3303 3221 3222 + 8 7487 7486 7404 7405 3305 3304 3222 3223 + 8 7488 7487 7405 7406 3306 3305 3223 3224 + 8 7489 7488 7406 7407 3307 3306 3224 3225 + 8 7490 7489 7407 7408 3308 3307 3225 3226 + 8 7491 7490 7408 7409 3309 3308 3226 3227 + 8 7492 7491 7409 7410 3310 3309 3227 3228 + 8 7493 7492 7410 7411 3311 3310 3228 3229 + 8 7494 7493 7411 7412 3312 3311 3229 3230 + 8 7495 7494 7412 7413 3313 3312 3230 3231 + 8 7496 7495 7413 7414 3314 3313 3231 3232 + 8 7497 7496 7414 7415 3315 3314 3232 3233 + 8 7498 7497 7415 7416 3316 3315 3233 3234 + 8 7499 7498 7416 7417 3317 3316 3234 3235 + 8 7500 7499 7417 7418 3318 3317 3235 3236 + 8 7501 7500 7418 7419 3319 3318 3236 3237 + 8 7502 7501 7419 7420 3320 3319 3237 3238 + 8 7503 7502 7420 7421 3321 3320 3238 3239 + 8 7504 7503 7421 7422 3322 3321 3239 3240 + 8 7505 7504 7422 7423 3323 3322 3240 3241 + 8 7506 7505 7423 7424 3324 3323 3241 3242 + 8 7507 7506 7424 7425 3325 3324 3242 3243 + 8 7508 7507 7425 7426 3326 3325 3243 3244 + 8 7509 7508 7426 7427 3327 3326 3244 3245 + 8 7510 7509 7427 7428 3328 3327 3245 3246 + 8 7511 7510 7428 7429 3329 3328 3246 3247 + 8 7512 7511 7429 7430 3330 3329 3247 3248 + 8 7513 7512 7430 7431 3331 3330 3248 3249 + 8 7514 7513 7431 7432 3332 3331 3249 3250 + 8 7515 7514 7432 7433 3333 3332 3250 3251 + 8 7516 7515 7433 7434 3334 3333 3251 3252 + 8 7517 7516 7434 7435 3335 3334 3252 3253 + 8 7518 7517 7435 7436 3336 3335 3253 3254 + 8 7519 7518 7436 7437 3337 3336 3254 3255 + 8 7520 7519 7437 7438 3338 3337 3255 3256 + 8 7521 7520 7438 7439 3339 3338 3256 3257 + 8 7522 7521 7439 7440 3340 3339 3257 3258 + 8 7523 7522 7440 7441 3341 3340 3258 3259 + 8 7524 7523 7441 7442 3342 3341 3259 3260 + 8 7525 7524 7442 7443 3343 3342 3260 3261 + 8 7526 7525 7443 7444 3344 3343 3261 3262 + 8 7527 7526 7444 7445 3345 3344 3262 3263 + 8 7528 7527 7445 7446 3346 3345 3263 3264 + 8 7529 7528 7446 7447 3347 3346 3264 3265 + 8 7530 7529 7447 7448 3348 3347 3265 3266 + 8 7531 7530 7448 7449 3349 3348 3266 3267 + 8 7532 7531 7449 7450 3350 3349 3267 3268 + 8 7533 7532 7450 7451 3351 3350 3268 3269 + 8 7534 7533 7451 7452 3352 3351 3269 3270 + 8 7535 7534 7452 7453 3353 3352 3270 3271 + 8 7536 7535 7453 7454 3354 3353 3271 3272 + 8 7537 7536 7454 7455 3355 3354 3272 3273 + 8 7538 7537 7455 7456 3356 3355 3273 3274 + 8 7539 7538 7456 7457 3357 3356 3274 3275 + 8 7540 7539 7457 7458 3358 3357 3275 3276 + 8 7541 7540 7458 7459 3359 3358 3276 3277 + 8 7542 7541 7459 7460 3360 3359 3277 3278 + 8 7543 7542 7460 7461 3361 3360 3278 3279 + 8 7544 7545 7463 7462 3362 3363 3281 3280 + 8 7546 7544 7462 7464 3364 3362 3280 3282 + 8 7547 7546 7464 7465 3365 3364 3282 3283 + 8 7548 7547 7465 7466 3366 3365 3283 3284 + 8 7549 7548 7466 7467 3367 3366 3284 3285 + 8 7550 7549 7467 7468 3368 3367 3285 3286 + 8 7551 7550 7468 7469 3369 3368 3286 3287 + 8 7552 7551 7469 7470 3370 3369 3287 3288 + 8 7553 7552 7470 7471 3371 3370 3288 3289 + 8 7554 7553 7471 7472 3372 3371 3289 3290 + 8 7555 7554 7472 7473 3373 3372 3290 3291 + 8 7556 7555 7473 7474 3374 3373 3291 3292 + 8 7557 7556 7474 7475 3375 3374 3292 3293 + 8 7558 7557 7475 7476 3376 3375 3293 3294 + 8 7559 7558 7476 7477 3377 3376 3294 3295 + 8 7560 7559 7477 7478 3378 3377 3295 3296 + 8 7561 7560 7478 7479 3379 3378 3296 3297 + 8 7562 7561 7479 7480 3380 3379 3297 3298 + 8 7563 7562 7480 7481 3381 3380 3298 3299 + 8 7564 7563 7481 7482 3382 3381 3299 3300 + 8 7565 7564 7482 7483 3383 3382 3300 3301 + 8 7566 7565 7483 7484 3384 3383 3301 3302 + 8 7567 7566 7484 7485 3385 3384 3302 3303 + 8 7568 7567 7485 7486 3386 3385 3303 3304 + 8 7569 7568 7486 7487 3387 3386 3304 3305 + 8 7570 7569 7487 7488 3388 3387 3305 3306 + 8 7571 7570 7488 7489 3389 3388 3306 3307 + 8 7572 7571 7489 7490 3390 3389 3307 3308 + 8 7573 7572 7490 7491 3391 3390 3308 3309 + 8 7574 7573 7491 7492 3392 3391 3309 3310 + 8 7575 7574 7492 7493 3393 3392 3310 3311 + 8 7576 7575 7493 7494 3394 3393 3311 3312 + 8 7577 7576 7494 7495 3395 3394 3312 3313 + 8 7578 7577 7495 7496 3396 3395 3313 3314 + 8 7579 7578 7496 7497 3397 3396 3314 3315 + 8 7580 7579 7497 7498 3398 3397 3315 3316 + 8 7581 7580 7498 7499 3399 3398 3316 3317 + 8 7582 7581 7499 7500 3400 3399 3317 3318 + 8 7583 7582 7500 7501 3401 3400 3318 3319 + 8 7584 7583 7501 7502 3402 3401 3319 3320 + 8 7585 7584 7502 7503 3403 3402 3320 3321 + 8 7586 7585 7503 7504 3404 3403 3321 3322 + 8 7587 7586 7504 7505 3405 3404 3322 3323 + 8 7588 7587 7505 7506 3406 3405 3323 3324 + 8 7589 7588 7506 7507 3407 3406 3324 3325 + 8 7590 7589 7507 7508 3408 3407 3325 3326 + 8 7591 7590 7508 7509 3409 3408 3326 3327 + 8 7592 7591 7509 7510 3410 3409 3327 3328 + 8 7593 7592 7510 7511 3411 3410 3328 3329 + 8 7594 7593 7511 7512 3412 3411 3329 3330 + 8 7595 7594 7512 7513 3413 3412 3330 3331 + 8 7596 7595 7513 7514 3414 3413 3331 3332 + 8 7597 7596 7514 7515 3415 3414 3332 3333 + 8 7598 7597 7515 7516 3416 3415 3333 3334 + 8 7599 7598 7516 7517 3417 3416 3334 3335 + 8 7600 7599 7517 7518 3418 3417 3335 3336 + 8 7601 7600 7518 7519 3419 3418 3336 3337 + 8 7602 7601 7519 7520 3420 3419 3337 3338 + 8 7603 7602 7520 7521 3421 3420 3338 3339 + 8 7604 7603 7521 7522 3422 3421 3339 3340 + 8 7605 7604 7522 7523 3423 3422 3340 3341 + 8 7606 7605 7523 7524 3424 3423 3341 3342 + 8 7607 7606 7524 7525 3425 3424 3342 3343 + 8 7608 7607 7525 7526 3426 3425 3343 3344 + 8 7609 7608 7526 7527 3427 3426 3344 3345 + 8 7610 7609 7527 7528 3428 3427 3345 3346 + 8 7611 7610 7528 7529 3429 3428 3346 3347 + 8 7612 7611 7529 7530 3430 3429 3347 3348 + 8 7613 7612 7530 7531 3431 3430 3348 3349 + 8 7614 7613 7531 7532 3432 3431 3349 3350 + 8 7615 7614 7532 7533 3433 3432 3350 3351 + 8 7616 7615 7533 7534 3434 3433 3351 3352 + 8 7617 7616 7534 7535 3435 3434 3352 3353 + 8 7618 7617 7535 7536 3436 3435 3353 3354 + 8 7619 7618 7536 7537 3437 3436 3354 3355 + 8 7620 7619 7537 7538 3438 3437 3355 3356 + 8 7621 7620 7538 7539 3439 3438 3356 3357 + 8 7622 7621 7539 7540 3440 3439 3357 3358 + 8 7623 7622 7540 7541 3441 3440 3358 3359 + 8 7624 7623 7541 7542 3442 3441 3359 3360 + 8 7625 7624 7542 7543 3443 3442 3360 3361 + 8 7626 7627 7545 7544 3444 3445 3363 3362 + 8 7628 7626 7544 7546 3446 3444 3362 3364 + 8 7629 7628 7546 7547 3447 3446 3364 3365 + 8 7630 7629 7547 7548 3448 3447 3365 3366 + 8 7631 7630 7548 7549 3449 3448 3366 3367 + 8 7632 7631 7549 7550 3450 3449 3367 3368 + 8 7633 7632 7550 7551 3451 3450 3368 3369 + 8 7634 7633 7551 7552 3452 3451 3369 3370 + 8 7635 7634 7552 7553 3453 3452 3370 3371 + 8 7636 7635 7553 7554 3454 3453 3371 3372 + 8 7637 7636 7554 7555 3455 3454 3372 3373 + 8 7638 7637 7555 7556 3456 3455 3373 3374 + 8 7639 7638 7556 7557 3457 3456 3374 3375 + 8 7640 7639 7557 7558 3458 3457 3375 3376 + 8 7641 7640 7558 7559 3459 3458 3376 3377 + 8 7642 7641 7559 7560 3460 3459 3377 3378 + 8 7643 7642 7560 7561 3461 3460 3378 3379 + 8 7644 7643 7561 7562 3462 3461 3379 3380 + 8 7645 7644 7562 7563 3463 3462 3380 3381 + 8 7646 7645 7563 7564 3464 3463 3381 3382 + 8 7647 7646 7564 7565 3465 3464 3382 3383 + 8 7648 7647 7565 7566 3466 3465 3383 3384 + 8 7649 7648 7566 7567 3467 3466 3384 3385 + 8 7650 7649 7567 7568 3468 3467 3385 3386 + 8 7651 7650 7568 7569 3469 3468 3386 3387 + 8 7652 7651 7569 7570 3470 3469 3387 3388 + 8 7653 7652 7570 7571 3471 3470 3388 3389 + 8 7654 7653 7571 7572 3472 3471 3389 3390 + 8 7655 7654 7572 7573 3473 3472 3390 3391 + 8 7656 7655 7573 7574 3474 3473 3391 3392 + 8 7657 7656 7574 7575 3475 3474 3392 3393 + 8 7658 7657 7575 7576 3476 3475 3393 3394 + 8 7659 7658 7576 7577 3477 3476 3394 3395 + 8 7660 7659 7577 7578 3478 3477 3395 3396 + 8 7661 7660 7578 7579 3479 3478 3396 3397 + 8 7662 7661 7579 7580 3480 3479 3397 3398 + 8 7663 7662 7580 7581 3481 3480 3398 3399 + 8 7664 7663 7581 7582 3482 3481 3399 3400 + 8 7665 7664 7582 7583 3483 3482 3400 3401 + 8 7666 7665 7583 7584 3484 3483 3401 3402 + 8 7667 7666 7584 7585 3485 3484 3402 3403 + 8 7668 7667 7585 7586 3486 3485 3403 3404 + 8 7669 7668 7586 7587 3487 3486 3404 3405 + 8 7670 7669 7587 7588 3488 3487 3405 3406 + 8 7671 7670 7588 7589 3489 3488 3406 3407 + 8 7672 7671 7589 7590 3490 3489 3407 3408 + 8 7673 7672 7590 7591 3491 3490 3408 3409 + 8 7674 7673 7591 7592 3492 3491 3409 3410 + 8 7675 7674 7592 7593 3493 3492 3410 3411 + 8 7676 7675 7593 7594 3494 3493 3411 3412 + 8 7677 7676 7594 7595 3495 3494 3412 3413 + 8 7678 7677 7595 7596 3496 3495 3413 3414 + 8 7679 7678 7596 7597 3497 3496 3414 3415 + 8 7680 7679 7597 7598 3498 3497 3415 3416 + 8 7681 7680 7598 7599 3499 3498 3416 3417 + 8 7682 7681 7599 7600 3500 3499 3417 3418 + 8 7683 7682 7600 7601 3501 3500 3418 3419 + 8 7684 7683 7601 7602 3502 3501 3419 3420 + 8 7685 7684 7602 7603 3503 3502 3420 3421 + 8 7686 7685 7603 7604 3504 3503 3421 3422 + 8 7687 7686 7604 7605 3505 3504 3422 3423 + 8 7688 7687 7605 7606 3506 3505 3423 3424 + 8 7689 7688 7606 7607 3507 3506 3424 3425 + 8 7690 7689 7607 7608 3508 3507 3425 3426 + 8 7691 7690 7608 7609 3509 3508 3426 3427 + 8 7692 7691 7609 7610 3510 3509 3427 3428 + 8 7693 7692 7610 7611 3511 3510 3428 3429 + 8 7694 7693 7611 7612 3512 3511 3429 3430 + 8 7695 7694 7612 7613 3513 3512 3430 3431 + 8 7696 7695 7613 7614 3514 3513 3431 3432 + 8 7697 7696 7614 7615 3515 3514 3432 3433 + 8 7698 7697 7615 7616 3516 3515 3433 3434 + 8 7699 7698 7616 7617 3517 3516 3434 3435 + 8 7700 7699 7617 7618 3518 3517 3435 3436 + 8 7701 7700 7618 7619 3519 3518 3436 3437 + 8 7702 7701 7619 7620 3520 3519 3437 3438 + 8 7703 7702 7620 7621 3521 3520 3438 3439 + 8 7704 7703 7621 7622 3522 3521 3439 3440 + 8 7705 7704 7622 7623 3523 3522 3440 3441 + 8 7706 7705 7623 7624 3524 3523 3441 3442 + 8 7707 7706 7624 7625 3525 3524 3442 3443 + 8 7708 7709 7627 7626 3526 3527 3445 3444 + 8 7710 7708 7626 7628 3528 3526 3444 3446 + 8 7711 7710 7628 7629 3529 3528 3446 3447 + 8 7712 7711 7629 7630 3530 3529 3447 3448 + 8 7713 7712 7630 7631 3531 3530 3448 3449 + 8 7714 7713 7631 7632 3532 3531 3449 3450 + 8 7715 7714 7632 7633 3533 3532 3450 3451 + 8 7716 7715 7633 7634 3534 3533 3451 3452 + 8 7717 7716 7634 7635 3535 3534 3452 3453 + 8 7718 7717 7635 7636 3536 3535 3453 3454 + 8 7719 7718 7636 7637 3537 3536 3454 3455 + 8 7720 7719 7637 7638 3538 3537 3455 3456 + 8 7721 7720 7638 7639 3539 3538 3456 3457 + 8 7722 7721 7639 7640 3540 3539 3457 3458 + 8 7723 7722 7640 7641 3541 3540 3458 3459 + 8 7724 7723 7641 7642 3542 3541 3459 3460 + 8 7725 7724 7642 7643 3543 3542 3460 3461 + 8 7726 7725 7643 7644 3544 3543 3461 3462 + 8 7727 7726 7644 7645 3545 3544 3462 3463 + 8 7728 7727 7645 7646 3546 3545 3463 3464 + 8 7729 7728 7646 7647 3547 3546 3464 3465 + 8 7730 7729 7647 7648 3548 3547 3465 3466 + 8 7731 7730 7648 7649 3549 3548 3466 3467 + 8 7732 7731 7649 7650 3550 3549 3467 3468 + 8 7733 7732 7650 7651 3551 3550 3468 3469 + 8 7734 7733 7651 7652 3552 3551 3469 3470 + 8 7735 7734 7652 7653 3553 3552 3470 3471 + 8 7736 7735 7653 7654 3554 3553 3471 3472 + 8 7737 7736 7654 7655 3555 3554 3472 3473 + 8 7738 7737 7655 7656 3556 3555 3473 3474 + 8 7739 7738 7656 7657 3557 3556 3474 3475 + 8 7740 7739 7657 7658 3558 3557 3475 3476 + 8 7741 7740 7658 7659 3559 3558 3476 3477 + 8 7742 7741 7659 7660 3560 3559 3477 3478 + 8 7743 7742 7660 7661 3561 3560 3478 3479 + 8 7744 7743 7661 7662 3562 3561 3479 3480 + 8 7745 7744 7662 7663 3563 3562 3480 3481 + 8 7746 7745 7663 7664 3564 3563 3481 3482 + 8 7747 7746 7664 7665 3565 3564 3482 3483 + 8 7748 7747 7665 7666 3566 3565 3483 3484 + 8 7749 7748 7666 7667 3567 3566 3484 3485 + 8 7750 7749 7667 7668 3568 3567 3485 3486 + 8 7751 7750 7668 7669 3569 3568 3486 3487 + 8 7752 7751 7669 7670 3570 3569 3487 3488 + 8 7753 7752 7670 7671 3571 3570 3488 3489 + 8 7754 7753 7671 7672 3572 3571 3489 3490 + 8 7755 7754 7672 7673 3573 3572 3490 3491 + 8 7756 7755 7673 7674 3574 3573 3491 3492 + 8 7757 7756 7674 7675 3575 3574 3492 3493 + 8 7758 7757 7675 7676 3576 3575 3493 3494 + 8 7759 7758 7676 7677 3577 3576 3494 3495 + 8 7760 7759 7677 7678 3578 3577 3495 3496 + 8 7761 7760 7678 7679 3579 3578 3496 3497 + 8 7762 7761 7679 7680 3580 3579 3497 3498 + 8 7763 7762 7680 7681 3581 3580 3498 3499 + 8 7764 7763 7681 7682 3582 3581 3499 3500 + 8 7765 7764 7682 7683 3583 3582 3500 3501 + 8 7766 7765 7683 7684 3584 3583 3501 3502 + 8 7767 7766 7684 7685 3585 3584 3502 3503 + 8 7768 7767 7685 7686 3586 3585 3503 3504 + 8 7769 7768 7686 7687 3587 3586 3504 3505 + 8 7770 7769 7687 7688 3588 3587 3505 3506 + 8 7771 7770 7688 7689 3589 3588 3506 3507 + 8 7772 7771 7689 7690 3590 3589 3507 3508 + 8 7773 7772 7690 7691 3591 3590 3508 3509 + 8 7774 7773 7691 7692 3592 3591 3509 3510 + 8 7775 7774 7692 7693 3593 3592 3510 3511 + 8 7776 7775 7693 7694 3594 3593 3511 3512 + 8 7777 7776 7694 7695 3595 3594 3512 3513 + 8 7778 7777 7695 7696 3596 3595 3513 3514 + 8 7779 7778 7696 7697 3597 3596 3514 3515 + 8 7780 7779 7697 7698 3598 3597 3515 3516 + 8 7781 7780 7698 7699 3599 3598 3516 3517 + 8 7782 7781 7699 7700 3600 3599 3517 3518 + 8 7783 7782 7700 7701 3601 3600 3518 3519 + 8 7784 7783 7701 7702 3602 3601 3519 3520 + 8 7785 7784 7702 7703 3603 3602 3520 3521 + 8 7786 7785 7703 7704 3604 3603 3521 3522 + 8 7787 7786 7704 7705 3605 3604 3522 3523 + 8 7788 7787 7705 7706 3606 3605 3523 3524 + 8 7789 7788 7706 7707 3607 3606 3524 3525 + 8 7790 7791 7709 7708 3608 3609 3527 3526 + 8 7792 7790 7708 7710 3610 3608 3526 3528 + 8 7793 7792 7710 7711 3611 3610 3528 3529 + 8 7794 7793 7711 7712 3612 3611 3529 3530 + 8 7795 7794 7712 7713 3613 3612 3530 3531 + 8 7796 7795 7713 7714 3614 3613 3531 3532 + 8 7797 7796 7714 7715 3615 3614 3532 3533 + 8 7798 7797 7715 7716 3616 3615 3533 3534 + 8 7799 7798 7716 7717 3617 3616 3534 3535 + 8 7800 7799 7717 7718 3618 3617 3535 3536 + 8 7801 7800 7718 7719 3619 3618 3536 3537 + 8 7802 7801 7719 7720 3620 3619 3537 3538 + 8 7803 7802 7720 7721 3621 3620 3538 3539 + 8 7804 7803 7721 7722 3622 3621 3539 3540 + 8 7805 7804 7722 7723 3623 3622 3540 3541 + 8 7806 7805 7723 7724 3624 3623 3541 3542 + 8 7807 7806 7724 7725 3625 3624 3542 3543 + 8 7808 7807 7725 7726 3626 3625 3543 3544 + 8 7809 7808 7726 7727 3627 3626 3544 3545 + 8 7810 7809 7727 7728 3628 3627 3545 3546 + 8 7811 7810 7728 7729 3629 3628 3546 3547 + 8 7812 7811 7729 7730 3630 3629 3547 3548 + 8 7813 7812 7730 7731 3631 3630 3548 3549 + 8 7814 7813 7731 7732 3632 3631 3549 3550 + 8 7815 7814 7732 7733 3633 3632 3550 3551 + 8 7816 7815 7733 7734 3634 3633 3551 3552 + 8 7817 7816 7734 7735 3635 3634 3552 3553 + 8 7818 7817 7735 7736 3636 3635 3553 3554 + 8 7819 7818 7736 7737 3637 3636 3554 3555 + 8 7820 7819 7737 7738 3638 3637 3555 3556 + 8 7821 7820 7738 7739 3639 3638 3556 3557 + 8 7822 7821 7739 7740 3640 3639 3557 3558 + 8 7823 7822 7740 7741 3641 3640 3558 3559 + 8 7824 7823 7741 7742 3642 3641 3559 3560 + 8 7825 7824 7742 7743 3643 3642 3560 3561 + 8 7826 7825 7743 7744 3644 3643 3561 3562 + 8 7827 7826 7744 7745 3645 3644 3562 3563 + 8 7828 7827 7745 7746 3646 3645 3563 3564 + 8 7829 7828 7746 7747 3647 3646 3564 3565 + 8 7830 7829 7747 7748 3648 3647 3565 3566 + 8 7831 7830 7748 7749 3649 3648 3566 3567 + 8 7832 7831 7749 7750 3650 3649 3567 3568 + 8 7833 7832 7750 7751 3651 3650 3568 3569 + 8 7834 7833 7751 7752 3652 3651 3569 3570 + 8 7835 7834 7752 7753 3653 3652 3570 3571 + 8 7836 7835 7753 7754 3654 3653 3571 3572 + 8 7837 7836 7754 7755 3655 3654 3572 3573 + 8 7838 7837 7755 7756 3656 3655 3573 3574 + 8 7839 7838 7756 7757 3657 3656 3574 3575 + 8 7840 7839 7757 7758 3658 3657 3575 3576 + 8 7841 7840 7758 7759 3659 3658 3576 3577 + 8 7842 7841 7759 7760 3660 3659 3577 3578 + 8 7843 7842 7760 7761 3661 3660 3578 3579 + 8 7844 7843 7761 7762 3662 3661 3579 3580 + 8 7845 7844 7762 7763 3663 3662 3580 3581 + 8 7846 7845 7763 7764 3664 3663 3581 3582 + 8 7847 7846 7764 7765 3665 3664 3582 3583 + 8 7848 7847 7765 7766 3666 3665 3583 3584 + 8 7849 7848 7766 7767 3667 3666 3584 3585 + 8 7850 7849 7767 7768 3668 3667 3585 3586 + 8 7851 7850 7768 7769 3669 3668 3586 3587 + 8 7852 7851 7769 7770 3670 3669 3587 3588 + 8 7853 7852 7770 7771 3671 3670 3588 3589 + 8 7854 7853 7771 7772 3672 3671 3589 3590 + 8 7855 7854 7772 7773 3673 3672 3590 3591 + 8 7856 7855 7773 7774 3674 3673 3591 3592 + 8 7857 7856 7774 7775 3675 3674 3592 3593 + 8 7858 7857 7775 7776 3676 3675 3593 3594 + 8 7859 7858 7776 7777 3677 3676 3594 3595 + 8 7860 7859 7777 7778 3678 3677 3595 3596 + 8 7861 7860 7778 7779 3679 3678 3596 3597 + 8 7862 7861 7779 7780 3680 3679 3597 3598 + 8 7863 7862 7780 7781 3681 3680 3598 3599 + 8 7864 7863 7781 7782 3682 3681 3599 3600 + 8 7865 7864 7782 7783 3683 3682 3600 3601 + 8 7866 7865 7783 7784 3684 3683 3601 3602 + 8 7867 7866 7784 7785 3685 3684 3602 3603 + 8 7868 7867 7785 7786 3686 3685 3603 3604 + 8 7869 7868 7786 7787 3687 3686 3604 3605 + 8 7870 7869 7787 7788 3688 3687 3605 3606 + 8 7871 7870 7788 7789 3689 3688 3606 3607 + 8 7872 7873 7791 7790 3690 3691 3609 3608 + 8 7874 7872 7790 7792 3692 3690 3608 3610 + 8 7875 7874 7792 7793 3693 3692 3610 3611 + 8 7876 7875 7793 7794 3694 3693 3611 3612 + 8 7877 7876 7794 7795 3695 3694 3612 3613 + 8 7878 7877 7795 7796 3696 3695 3613 3614 + 8 7879 7878 7796 7797 3697 3696 3614 3615 + 8 7880 7879 7797 7798 3698 3697 3615 3616 + 8 7881 7880 7798 7799 3699 3698 3616 3617 + 8 7882 7881 7799 7800 3700 3699 3617 3618 + 8 7883 7882 7800 7801 3701 3700 3618 3619 + 8 7884 7883 7801 7802 3702 3701 3619 3620 + 8 7885 7884 7802 7803 3703 3702 3620 3621 + 8 7886 7885 7803 7804 3704 3703 3621 3622 + 8 7887 7886 7804 7805 3705 3704 3622 3623 + 8 7888 7887 7805 7806 3706 3705 3623 3624 + 8 7889 7888 7806 7807 3707 3706 3624 3625 + 8 7890 7889 7807 7808 3708 3707 3625 3626 + 8 7891 7890 7808 7809 3709 3708 3626 3627 + 8 7892 7891 7809 7810 3710 3709 3627 3628 + 8 7893 7892 7810 7811 3711 3710 3628 3629 + 8 7894 7893 7811 7812 3712 3711 3629 3630 + 8 7895 7894 7812 7813 3713 3712 3630 3631 + 8 7896 7895 7813 7814 3714 3713 3631 3632 + 8 7897 7896 7814 7815 3715 3714 3632 3633 + 8 7898 7897 7815 7816 3716 3715 3633 3634 + 8 7899 7898 7816 7817 3717 3716 3634 3635 + 8 7900 7899 7817 7818 3718 3717 3635 3636 + 8 7901 7900 7818 7819 3719 3718 3636 3637 + 8 7902 7901 7819 7820 3720 3719 3637 3638 + 8 7903 7902 7820 7821 3721 3720 3638 3639 + 8 7904 7903 7821 7822 3722 3721 3639 3640 + 8 7905 7904 7822 7823 3723 3722 3640 3641 + 8 7906 7905 7823 7824 3724 3723 3641 3642 + 8 7907 7906 7824 7825 3725 3724 3642 3643 + 8 7908 7907 7825 7826 3726 3725 3643 3644 + 8 7909 7908 7826 7827 3727 3726 3644 3645 + 8 7910 7909 7827 7828 3728 3727 3645 3646 + 8 7911 7910 7828 7829 3729 3728 3646 3647 + 8 7912 7911 7829 7830 3730 3729 3647 3648 + 8 7913 7912 7830 7831 3731 3730 3648 3649 + 8 7914 7913 7831 7832 3732 3731 3649 3650 + 8 7915 7914 7832 7833 3733 3732 3650 3651 + 8 7916 7915 7833 7834 3734 3733 3651 3652 + 8 7917 7916 7834 7835 3735 3734 3652 3653 + 8 7918 7917 7835 7836 3736 3735 3653 3654 + 8 7919 7918 7836 7837 3737 3736 3654 3655 + 8 7920 7919 7837 7838 3738 3737 3655 3656 + 8 7921 7920 7838 7839 3739 3738 3656 3657 + 8 7922 7921 7839 7840 3740 3739 3657 3658 + 8 7923 7922 7840 7841 3741 3740 3658 3659 + 8 7924 7923 7841 7842 3742 3741 3659 3660 + 8 7925 7924 7842 7843 3743 3742 3660 3661 + 8 7926 7925 7843 7844 3744 3743 3661 3662 + 8 7927 7926 7844 7845 3745 3744 3662 3663 + 8 7928 7927 7845 7846 3746 3745 3663 3664 + 8 7929 7928 7846 7847 3747 3746 3664 3665 + 8 7930 7929 7847 7848 3748 3747 3665 3666 + 8 7931 7930 7848 7849 3749 3748 3666 3667 + 8 7932 7931 7849 7850 3750 3749 3667 3668 + 8 7933 7932 7850 7851 3751 3750 3668 3669 + 8 7934 7933 7851 7852 3752 3751 3669 3670 + 8 7935 7934 7852 7853 3753 3752 3670 3671 + 8 7936 7935 7853 7854 3754 3753 3671 3672 + 8 7937 7936 7854 7855 3755 3754 3672 3673 + 8 7938 7937 7855 7856 3756 3755 3673 3674 + 8 7939 7938 7856 7857 3757 3756 3674 3675 + 8 7940 7939 7857 7858 3758 3757 3675 3676 + 8 7941 7940 7858 7859 3759 3758 3676 3677 + 8 7942 7941 7859 7860 3760 3759 3677 3678 + 8 7943 7942 7860 7861 3761 3760 3678 3679 + 8 7944 7943 7861 7862 3762 3761 3679 3680 + 8 7945 7944 7862 7863 3763 3762 3680 3681 + 8 7946 7945 7863 7864 3764 3763 3681 3682 + 8 7947 7946 7864 7865 3765 3764 3682 3683 + 8 7948 7947 7865 7866 3766 3765 3683 3684 + 8 7949 7948 7866 7867 3767 3766 3684 3685 + 8 7950 7949 7867 7868 3768 3767 3685 3686 + 8 7951 7950 7868 7869 3769 3768 3686 3687 + 8 7952 7951 7869 7870 3770 3769 3687 3688 + 8 7953 7952 7870 7871 3771 3770 3688 3689 + 8 7954 7955 7873 7872 3772 3773 3691 3690 + 8 7956 7954 7872 7874 3774 3772 3690 3692 + 8 7957 7956 7874 7875 3775 3774 3692 3693 + 8 7958 7957 7875 7876 3776 3775 3693 3694 + 8 7959 7958 7876 7877 3777 3776 3694 3695 + 8 7960 7959 7877 7878 3778 3777 3695 3696 + 8 7961 7960 7878 7879 3779 3778 3696 3697 + 8 7962 7961 7879 7880 3780 3779 3697 3698 + 8 7963 7962 7880 7881 3781 3780 3698 3699 + 8 7964 7963 7881 7882 3782 3781 3699 3700 + 8 7965 7964 7882 7883 3783 3782 3700 3701 + 8 7966 7965 7883 7884 3784 3783 3701 3702 + 8 7967 7966 7884 7885 3785 3784 3702 3703 + 8 7968 7967 7885 7886 3786 3785 3703 3704 + 8 7969 7968 7886 7887 3787 3786 3704 3705 + 8 7970 7969 7887 7888 3788 3787 3705 3706 + 8 7971 7970 7888 7889 3789 3788 3706 3707 + 8 7972 7971 7889 7890 3790 3789 3707 3708 + 8 7973 7972 7890 7891 3791 3790 3708 3709 + 8 7974 7973 7891 7892 3792 3791 3709 3710 + 8 7975 7974 7892 7893 3793 3792 3710 3711 + 8 7976 7975 7893 7894 3794 3793 3711 3712 + 8 7977 7976 7894 7895 3795 3794 3712 3713 + 8 7978 7977 7895 7896 3796 3795 3713 3714 + 8 7979 7978 7896 7897 3797 3796 3714 3715 + 8 7980 7979 7897 7898 3798 3797 3715 3716 + 8 7981 7980 7898 7899 3799 3798 3716 3717 + 8 7982 7981 7899 7900 3800 3799 3717 3718 + 8 7983 7982 7900 7901 3801 3800 3718 3719 + 8 7984 7983 7901 7902 3802 3801 3719 3720 + 8 7985 7984 7902 7903 3803 3802 3720 3721 + 8 7986 7985 7903 7904 3804 3803 3721 3722 + 8 7987 7986 7904 7905 3805 3804 3722 3723 + 8 7988 7987 7905 7906 3806 3805 3723 3724 + 8 7989 7988 7906 7907 3807 3806 3724 3725 + 8 7990 7989 7907 7908 3808 3807 3725 3726 + 8 7991 7990 7908 7909 3809 3808 3726 3727 + 8 7992 7991 7909 7910 3810 3809 3727 3728 + 8 7993 7992 7910 7911 3811 3810 3728 3729 + 8 7994 7993 7911 7912 3812 3811 3729 3730 + 8 7995 7994 7912 7913 3813 3812 3730 3731 + 8 7996 7995 7913 7914 3814 3813 3731 3732 + 8 7997 7996 7914 7915 3815 3814 3732 3733 + 8 7998 7997 7915 7916 3816 3815 3733 3734 + 8 7999 7998 7916 7917 3817 3816 3734 3735 + 8 8000 7999 7917 7918 3818 3817 3735 3736 + 8 8001 8000 7918 7919 3819 3818 3736 3737 + 8 8002 8001 7919 7920 3820 3819 3737 3738 + 8 8003 8002 7920 7921 3821 3820 3738 3739 + 8 8004 8003 7921 7922 3822 3821 3739 3740 + 8 8005 8004 7922 7923 3823 3822 3740 3741 + 8 8006 8005 7923 7924 3824 3823 3741 3742 + 8 8007 8006 7924 7925 3825 3824 3742 3743 + 8 8008 8007 7925 7926 3826 3825 3743 3744 + 8 8009 8008 7926 7927 3827 3826 3744 3745 + 8 8010 8009 7927 7928 3828 3827 3745 3746 + 8 8011 8010 7928 7929 3829 3828 3746 3747 + 8 8012 8011 7929 7930 3830 3829 3747 3748 + 8 8013 8012 7930 7931 3831 3830 3748 3749 + 8 8014 8013 7931 7932 3832 3831 3749 3750 + 8 8015 8014 7932 7933 3833 3832 3750 3751 + 8 8016 8015 7933 7934 3834 3833 3751 3752 + 8 8017 8016 7934 7935 3835 3834 3752 3753 + 8 8018 8017 7935 7936 3836 3835 3753 3754 + 8 8019 8018 7936 7937 3837 3836 3754 3755 + 8 8020 8019 7937 7938 3838 3837 3755 3756 + 8 8021 8020 7938 7939 3839 3838 3756 3757 + 8 8022 8021 7939 7940 3840 3839 3757 3758 + 8 8023 8022 7940 7941 3841 3840 3758 3759 + 8 8024 8023 7941 7942 3842 3841 3759 3760 + 8 8025 8024 7942 7943 3843 3842 3760 3761 + 8 8026 8025 7943 7944 3844 3843 3761 3762 + 8 8027 8026 7944 7945 3845 3844 3762 3763 + 8 8028 8027 7945 7946 3846 3845 3763 3764 + 8 8029 8028 7946 7947 3847 3846 3764 3765 + 8 8030 8029 7947 7948 3848 3847 3765 3766 + 8 8031 8030 7948 7949 3849 3848 3766 3767 + 8 8032 8031 7949 7950 3850 3849 3767 3768 + 8 8033 8032 7950 7951 3851 3850 3768 3769 + 8 8034 8033 7951 7952 3852 3851 3769 3770 + 8 8035 8034 7952 7953 3853 3852 3770 3771 + 8 8036 8037 7955 7954 3854 3855 3773 3772 + 8 8038 8036 7954 7956 3856 3854 3772 3774 + 8 8039 8038 7956 7957 3857 3856 3774 3775 + 8 8040 8039 7957 7958 3858 3857 3775 3776 + 8 8041 8040 7958 7959 3859 3858 3776 3777 + 8 8042 8041 7959 7960 3860 3859 3777 3778 + 8 8043 8042 7960 7961 3861 3860 3778 3779 + 8 8044 8043 7961 7962 3862 3861 3779 3780 + 8 8045 8044 7962 7963 3863 3862 3780 3781 + 8 8046 8045 7963 7964 3864 3863 3781 3782 + 8 8047 8046 7964 7965 3865 3864 3782 3783 + 8 8048 8047 7965 7966 3866 3865 3783 3784 + 8 8049 8048 7966 7967 3867 3866 3784 3785 + 8 8050 8049 7967 7968 3868 3867 3785 3786 + 8 8051 8050 7968 7969 3869 3868 3786 3787 + 8 8052 8051 7969 7970 3870 3869 3787 3788 + 8 8053 8052 7970 7971 3871 3870 3788 3789 + 8 8054 8053 7971 7972 3872 3871 3789 3790 + 8 8055 8054 7972 7973 3873 3872 3790 3791 + 8 8056 8055 7973 7974 3874 3873 3791 3792 + 8 8057 8056 7974 7975 3875 3874 3792 3793 + 8 8058 8057 7975 7976 3876 3875 3793 3794 + 8 8059 8058 7976 7977 3877 3876 3794 3795 + 8 8060 8059 7977 7978 3878 3877 3795 3796 + 8 8061 8060 7978 7979 3879 3878 3796 3797 + 8 8062 8061 7979 7980 3880 3879 3797 3798 + 8 8063 8062 7980 7981 3881 3880 3798 3799 + 8 8064 8063 7981 7982 3882 3881 3799 3800 + 8 8065 8064 7982 7983 3883 3882 3800 3801 + 8 8066 8065 7983 7984 3884 3883 3801 3802 + 8 8067 8066 7984 7985 3885 3884 3802 3803 + 8 8068 8067 7985 7986 3886 3885 3803 3804 + 8 8069 8068 7986 7987 3887 3886 3804 3805 + 8 8070 8069 7987 7988 3888 3887 3805 3806 + 8 8071 8070 7988 7989 3889 3888 3806 3807 + 8 8072 8071 7989 7990 3890 3889 3807 3808 + 8 8073 8072 7990 7991 3891 3890 3808 3809 + 8 8074 8073 7991 7992 3892 3891 3809 3810 + 8 8075 8074 7992 7993 3893 3892 3810 3811 + 8 8076 8075 7993 7994 3894 3893 3811 3812 + 8 8077 8076 7994 7995 3895 3894 3812 3813 + 8 8078 8077 7995 7996 3896 3895 3813 3814 + 8 8079 8078 7996 7997 3897 3896 3814 3815 + 8 8080 8079 7997 7998 3898 3897 3815 3816 + 8 8081 8080 7998 7999 3899 3898 3816 3817 + 8 8082 8081 7999 8000 3900 3899 3817 3818 + 8 8083 8082 8000 8001 3901 3900 3818 3819 + 8 8084 8083 8001 8002 3902 3901 3819 3820 + 8 8085 8084 8002 8003 3903 3902 3820 3821 + 8 8086 8085 8003 8004 3904 3903 3821 3822 + 8 8087 8086 8004 8005 3905 3904 3822 3823 + 8 8088 8087 8005 8006 3906 3905 3823 3824 + 8 8089 8088 8006 8007 3907 3906 3824 3825 + 8 8090 8089 8007 8008 3908 3907 3825 3826 + 8 8091 8090 8008 8009 3909 3908 3826 3827 + 8 8092 8091 8009 8010 3910 3909 3827 3828 + 8 8093 8092 8010 8011 3911 3910 3828 3829 + 8 8094 8093 8011 8012 3912 3911 3829 3830 + 8 8095 8094 8012 8013 3913 3912 3830 3831 + 8 8096 8095 8013 8014 3914 3913 3831 3832 + 8 8097 8096 8014 8015 3915 3914 3832 3833 + 8 8098 8097 8015 8016 3916 3915 3833 3834 + 8 8099 8098 8016 8017 3917 3916 3834 3835 + 8 8100 8099 8017 8018 3918 3917 3835 3836 + 8 8101 8100 8018 8019 3919 3918 3836 3837 + 8 8102 8101 8019 8020 3920 3919 3837 3838 + 8 8103 8102 8020 8021 3921 3920 3838 3839 + 8 8104 8103 8021 8022 3922 3921 3839 3840 + 8 8105 8104 8022 8023 3923 3922 3840 3841 + 8 8106 8105 8023 8024 3924 3923 3841 3842 + 8 8107 8106 8024 8025 3925 3924 3842 3843 + 8 8108 8107 8025 8026 3926 3925 3843 3844 + 8 8109 8108 8026 8027 3927 3926 3844 3845 + 8 8110 8109 8027 8028 3928 3927 3845 3846 + 8 8111 8110 8028 8029 3929 3928 3846 3847 + 8 8112 8111 8029 8030 3930 3929 3847 3848 + 8 8113 8112 8030 8031 3931 3930 3848 3849 + 8 8114 8113 8031 8032 3932 3931 3849 3850 + 8 8115 8114 8032 8033 3933 3932 3850 3851 + 8 8116 8115 8033 8034 3934 3933 3851 3852 + 8 8117 8116 8034 8035 3935 3934 3852 3853 + 8 8118 8119 8037 8036 3936 3937 3855 3854 + 8 8120 8118 8036 8038 3938 3936 3854 3856 + 8 8121 8120 8038 8039 3939 3938 3856 3857 + 8 8122 8121 8039 8040 3940 3939 3857 3858 + 8 8123 8122 8040 8041 3941 3940 3858 3859 + 8 8124 8123 8041 8042 3942 3941 3859 3860 + 8 8125 8124 8042 8043 3943 3942 3860 3861 + 8 8126 8125 8043 8044 3944 3943 3861 3862 + 8 8127 8126 8044 8045 3945 3944 3862 3863 + 8 8128 8127 8045 8046 3946 3945 3863 3864 + 8 8129 8128 8046 8047 3947 3946 3864 3865 + 8 8130 8129 8047 8048 3948 3947 3865 3866 + 8 8131 8130 8048 8049 3949 3948 3866 3867 + 8 8132 8131 8049 8050 3950 3949 3867 3868 + 8 8133 8132 8050 8051 3951 3950 3868 3869 + 8 8134 8133 8051 8052 3952 3951 3869 3870 + 8 8135 8134 8052 8053 3953 3952 3870 3871 + 8 8136 8135 8053 8054 3954 3953 3871 3872 + 8 8137 8136 8054 8055 3955 3954 3872 3873 + 8 8138 8137 8055 8056 3956 3955 3873 3874 + 8 8139 8138 8056 8057 3957 3956 3874 3875 + 8 8140 8139 8057 8058 3958 3957 3875 3876 + 8 8141 8140 8058 8059 3959 3958 3876 3877 + 8 8142 8141 8059 8060 3960 3959 3877 3878 + 8 8143 8142 8060 8061 3961 3960 3878 3879 + 8 8144 8143 8061 8062 3962 3961 3879 3880 + 8 8145 8144 8062 8063 3963 3962 3880 3881 + 8 8146 8145 8063 8064 3964 3963 3881 3882 + 8 8147 8146 8064 8065 3965 3964 3882 3883 + 8 8148 8147 8065 8066 3966 3965 3883 3884 + 8 8149 8148 8066 8067 3967 3966 3884 3885 + 8 8150 8149 8067 8068 3968 3967 3885 3886 + 8 8151 8150 8068 8069 3969 3968 3886 3887 + 8 8152 8151 8069 8070 3970 3969 3887 3888 + 8 8153 8152 8070 8071 3971 3970 3888 3889 + 8 8154 8153 8071 8072 3972 3971 3889 3890 + 8 8155 8154 8072 8073 3973 3972 3890 3891 + 8 8156 8155 8073 8074 3974 3973 3891 3892 + 8 8157 8156 8074 8075 3975 3974 3892 3893 + 8 8158 8157 8075 8076 3976 3975 3893 3894 + 8 8159 8158 8076 8077 3977 3976 3894 3895 + 8 8160 8159 8077 8078 3978 3977 3895 3896 + 8 8161 8160 8078 8079 3979 3978 3896 3897 + 8 8162 8161 8079 8080 3980 3979 3897 3898 + 8 8163 8162 8080 8081 3981 3980 3898 3899 + 8 8164 8163 8081 8082 3982 3981 3899 3900 + 8 8165 8164 8082 8083 3983 3982 3900 3901 + 8 8166 8165 8083 8084 3984 3983 3901 3902 + 8 8167 8166 8084 8085 3985 3984 3902 3903 + 8 8168 8167 8085 8086 3986 3985 3903 3904 + 8 8169 8168 8086 8087 3987 3986 3904 3905 + 8 8170 8169 8087 8088 3988 3987 3905 3906 + 8 8171 8170 8088 8089 3989 3988 3906 3907 + 8 8172 8171 8089 8090 3990 3989 3907 3908 + 8 8173 8172 8090 8091 3991 3990 3908 3909 + 8 8174 8173 8091 8092 3992 3991 3909 3910 + 8 8175 8174 8092 8093 3993 3992 3910 3911 + 8 8176 8175 8093 8094 3994 3993 3911 3912 + 8 8177 8176 8094 8095 3995 3994 3912 3913 + 8 8178 8177 8095 8096 3996 3995 3913 3914 + 8 8179 8178 8096 8097 3997 3996 3914 3915 + 8 8180 8179 8097 8098 3998 3997 3915 3916 + 8 8181 8180 8098 8099 3999 3998 3916 3917 + 8 8182 8181 8099 8100 4000 3999 3917 3918 + 8 8183 8182 8100 8101 4001 4000 3918 3919 + 8 8184 8183 8101 8102 4002 4001 3919 3920 + 8 8185 8184 8102 8103 4003 4002 3920 3921 + 8 8186 8185 8103 8104 4004 4003 3921 3922 + 8 8187 8186 8104 8105 4005 4004 3922 3923 + 8 8188 8187 8105 8106 4006 4005 3923 3924 + 8 8189 8188 8106 8107 4007 4006 3924 3925 + 8 8190 8189 8107 8108 4008 4007 3925 3926 + 8 8191 8190 8108 8109 4009 4008 3926 3927 + 8 8192 8191 8109 8110 4010 4009 3927 3928 + 8 8193 8192 8110 8111 4011 4010 3928 3929 + 8 8194 8193 8111 8112 4012 4011 3929 3930 + 8 8195 8194 8112 8113 4013 4012 3930 3931 + 8 8196 8195 8113 8114 4014 4013 3931 3932 + 8 8197 8196 8114 8115 4015 4014 3932 3933 + 8 8198 8197 8115 8116 4016 4015 3933 3934 + 8 8199 8198 8116 8117 4017 4016 3934 3935 + 8 8200 8201 8119 8118 4018 4019 3937 3936 + 8 8202 8200 8118 8120 4020 4018 3936 3938 + 8 8203 8202 8120 8121 4021 4020 3938 3939 + 8 8204 8203 8121 8122 4022 4021 3939 3940 + 8 8205 8204 8122 8123 4023 4022 3940 3941 + 8 8206 8205 8123 8124 4024 4023 3941 3942 + 8 8207 8206 8124 8125 4025 4024 3942 3943 + 8 8208 8207 8125 8126 4026 4025 3943 3944 + 8 8209 8208 8126 8127 4027 4026 3944 3945 + 8 8210 8209 8127 8128 4028 4027 3945 3946 + 8 8211 8210 8128 8129 4029 4028 3946 3947 + 8 8212 8211 8129 8130 4030 4029 3947 3948 + 8 8213 8212 8130 8131 4031 4030 3948 3949 + 8 8214 8213 8131 8132 4032 4031 3949 3950 + 8 8215 8214 8132 8133 4033 4032 3950 3951 + 8 8216 8215 8133 8134 4034 4033 3951 3952 + 8 8217 8216 8134 8135 4035 4034 3952 3953 + 8 8218 8217 8135 8136 4036 4035 3953 3954 + 8 8219 8218 8136 8137 4037 4036 3954 3955 + 8 8220 8219 8137 8138 4038 4037 3955 3956 + 8 8221 8220 8138 8139 4039 4038 3956 3957 + 8 8222 8221 8139 8140 4040 4039 3957 3958 + 8 8223 8222 8140 8141 4041 4040 3958 3959 + 8 8224 8223 8141 8142 4042 4041 3959 3960 + 8 8225 8224 8142 8143 4043 4042 3960 3961 + 8 8226 8225 8143 8144 4044 4043 3961 3962 + 8 8227 8226 8144 8145 4045 4044 3962 3963 + 8 8228 8227 8145 8146 4046 4045 3963 3964 + 8 8229 8228 8146 8147 4047 4046 3964 3965 + 8 8230 8229 8147 8148 4048 4047 3965 3966 + 8 8231 8230 8148 8149 4049 4048 3966 3967 + 8 8232 8231 8149 8150 4050 4049 3967 3968 + 8 8233 8232 8150 8151 4051 4050 3968 3969 + 8 8234 8233 8151 8152 4052 4051 3969 3970 + 8 8235 8234 8152 8153 4053 4052 3970 3971 + 8 8236 8235 8153 8154 4054 4053 3971 3972 + 8 8237 8236 8154 8155 4055 4054 3972 3973 + 8 8238 8237 8155 8156 4056 4055 3973 3974 + 8 8239 8238 8156 8157 4057 4056 3974 3975 + 8 8240 8239 8157 8158 4058 4057 3975 3976 + 8 8241 8240 8158 8159 4059 4058 3976 3977 + 8 8242 8241 8159 8160 4060 4059 3977 3978 + 8 8243 8242 8160 8161 4061 4060 3978 3979 + 8 8244 8243 8161 8162 4062 4061 3979 3980 + 8 8245 8244 8162 8163 4063 4062 3980 3981 + 8 8246 8245 8163 8164 4064 4063 3981 3982 + 8 8247 8246 8164 8165 4065 4064 3982 3983 + 8 8248 8247 8165 8166 4066 4065 3983 3984 + 8 8249 8248 8166 8167 4067 4066 3984 3985 + 8 8250 8249 8167 8168 4068 4067 3985 3986 + 8 8251 8250 8168 8169 4069 4068 3986 3987 + 8 8252 8251 8169 8170 4070 4069 3987 3988 + 8 8253 8252 8170 8171 4071 4070 3988 3989 + 8 8254 8253 8171 8172 4072 4071 3989 3990 + 8 8255 8254 8172 8173 4073 4072 3990 3991 + 8 8256 8255 8173 8174 4074 4073 3991 3992 + 8 8257 8256 8174 8175 4075 4074 3992 3993 + 8 8258 8257 8175 8176 4076 4075 3993 3994 + 8 8259 8258 8176 8177 4077 4076 3994 3995 + 8 8260 8259 8177 8178 4078 4077 3995 3996 + 8 8261 8260 8178 8179 4079 4078 3996 3997 + 8 8262 8261 8179 8180 4080 4079 3997 3998 + 8 8263 8262 8180 8181 4081 4080 3998 3999 + 8 8264 8263 8181 8182 4082 4081 3999 4000 + 8 8265 8264 8182 8183 4083 4082 4000 4001 + 8 8266 8265 8183 8184 4084 4083 4001 4002 + 8 8267 8266 8184 8185 4085 4084 4002 4003 + 8 8268 8267 8185 8186 4086 4085 4003 4004 + 8 8269 8268 8186 8187 4087 4086 4004 4005 + 8 8270 8269 8187 8188 4088 4087 4005 4006 + 8 8271 8270 8188 8189 4089 4088 4006 4007 + 8 8272 8271 8189 8190 4090 4089 4007 4008 + 8 8273 8272 8190 8191 4091 4090 4008 4009 + 8 8274 8273 8191 8192 4092 4091 4009 4010 + 8 8275 8274 8192 8193 4093 4092 4010 4011 + 8 8276 8275 8193 8194 4094 4093 4011 4012 + 8 8277 8276 8194 8195 4095 4094 4012 4013 + 8 8278 8277 8195 8196 4096 4095 4013 4014 + 8 8279 8278 8196 8197 4097 4096 4014 4015 + 8 8280 8279 8197 8198 4098 4097 4015 4016 + 8 8281 8280 8198 8199 4099 4098 4016 4017 + 8 8282 8283 8201 8200 4100 4101 4019 4018 + 8 8284 8282 8200 8202 4102 4100 4018 4020 + 8 8285 8284 8202 8203 4103 4102 4020 4021 + 8 8286 8285 8203 8204 4104 4103 4021 4022 + 8 8287 8286 8204 8205 4105 4104 4022 4023 + 8 8288 8287 8205 8206 4106 4105 4023 4024 + 8 8289 8288 8206 8207 4107 4106 4024 4025 + 8 8290 8289 8207 8208 4108 4107 4025 4026 + 8 8291 8290 8208 8209 4109 4108 4026 4027 + 8 8292 8291 8209 8210 4110 4109 4027 4028 + 8 8293 8292 8210 8211 4111 4110 4028 4029 + 8 8294 8293 8211 8212 4112 4111 4029 4030 + 8 8295 8294 8212 8213 4113 4112 4030 4031 + 8 8296 8295 8213 8214 4114 4113 4031 4032 + 8 8297 8296 8214 8215 4115 4114 4032 4033 + 8 8298 8297 8215 8216 4116 4115 4033 4034 + 8 8299 8298 8216 8217 4117 4116 4034 4035 + 8 8300 8299 8217 8218 4118 4117 4035 4036 + 8 8301 8300 8218 8219 4119 4118 4036 4037 + 8 8302 8301 8219 8220 4120 4119 4037 4038 + 8 8303 8302 8220 8221 4121 4120 4038 4039 + 8 8304 8303 8221 8222 4122 4121 4039 4040 + 8 8305 8304 8222 8223 4123 4122 4040 4041 + 8 8306 8305 8223 8224 4124 4123 4041 4042 + 8 8307 8306 8224 8225 4125 4124 4042 4043 + 8 8308 8307 8225 8226 4126 4125 4043 4044 + 8 8309 8308 8226 8227 4127 4126 4044 4045 + 8 8310 8309 8227 8228 4128 4127 4045 4046 + 8 8311 8310 8228 8229 4129 4128 4046 4047 + 8 8312 8311 8229 8230 4130 4129 4047 4048 + 8 8313 8312 8230 8231 4131 4130 4048 4049 + 8 8314 8313 8231 8232 4132 4131 4049 4050 + 8 8315 8314 8232 8233 4133 4132 4050 4051 + 8 8316 8315 8233 8234 4134 4133 4051 4052 + 8 8317 8316 8234 8235 4135 4134 4052 4053 + 8 8318 8317 8235 8236 4136 4135 4053 4054 + 8 8319 8318 8236 8237 4137 4136 4054 4055 + 8 8320 8319 8237 8238 4138 4137 4055 4056 + 8 8321 8320 8238 8239 4139 4138 4056 4057 + 8 8322 8321 8239 8240 4140 4139 4057 4058 + 8 8323 8322 8240 8241 4141 4140 4058 4059 + 8 8324 8323 8241 8242 4142 4141 4059 4060 + 8 8325 8324 8242 8243 4143 4142 4060 4061 + 8 8326 8325 8243 8244 4144 4143 4061 4062 + 8 8327 8326 8244 8245 4145 4144 4062 4063 + 8 8328 8327 8245 8246 4146 4145 4063 4064 + 8 8329 8328 8246 8247 4147 4146 4064 4065 + 8 8330 8329 8247 8248 4148 4147 4065 4066 + 8 8331 8330 8248 8249 4149 4148 4066 4067 + 8 8332 8331 8249 8250 4150 4149 4067 4068 + 8 8333 8332 8250 8251 4151 4150 4068 4069 + 8 8334 8333 8251 8252 4152 4151 4069 4070 + 8 8335 8334 8252 8253 4153 4152 4070 4071 + 8 8336 8335 8253 8254 4154 4153 4071 4072 + 8 8337 8336 8254 8255 4155 4154 4072 4073 + 8 8338 8337 8255 8256 4156 4155 4073 4074 + 8 8339 8338 8256 8257 4157 4156 4074 4075 + 8 8340 8339 8257 8258 4158 4157 4075 4076 + 8 8341 8340 8258 8259 4159 4158 4076 4077 + 8 8342 8341 8259 8260 4160 4159 4077 4078 + 8 8343 8342 8260 8261 4161 4160 4078 4079 + 8 8344 8343 8261 8262 4162 4161 4079 4080 + 8 8345 8344 8262 8263 4163 4162 4080 4081 + 8 8346 8345 8263 8264 4164 4163 4081 4082 + 8 8347 8346 8264 8265 4165 4164 4082 4083 + 8 8348 8347 8265 8266 4166 4165 4083 4084 + 8 8349 8348 8266 8267 4167 4166 4084 4085 + 8 8350 8349 8267 8268 4168 4167 4085 4086 + 8 8351 8350 8268 8269 4169 4168 4086 4087 + 8 8352 8351 8269 8270 4170 4169 4087 4088 + 8 8353 8352 8270 8271 4171 4170 4088 4089 + 8 8354 8353 8271 8272 4172 4171 4089 4090 + 8 8355 8354 8272 8273 4173 4172 4090 4091 + 8 8356 8355 8273 8274 4174 4173 4091 4092 + 8 8357 8356 8274 8275 4175 4174 4092 4093 + 8 8358 8357 8275 8276 4176 4175 4093 4094 + 8 8359 8358 8276 8277 4177 4176 4094 4095 + 8 8360 8359 8277 8278 4178 4177 4095 4096 + 8 8361 8360 8278 8279 4179 4178 4096 4097 + 8 8362 8361 8279 8280 4180 4179 4097 4098 + 8 8363 8362 8280 8281 4181 4180 4098 4099 +CELL_TYPES 4050 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 + 12 +CELL_DATA 4050 +VECTORS VelocityField double + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000-0.463789890636714E-005 0.000000000000000E+000 + 0.000000000000000E+000-0.278273934382029E-004 0.000000000000000E+000 + 0.000000000000000E+000-0.463789890636714E-005 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 + 0.000000000000000E+000 0.000000000000000E+000 0.000000000000000E+000 +SCALARS SurfaceWaterElevation double 1 +LOOKUP_TABLE default + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.100084000000001E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.140083997615815E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.180083995231629E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.220084004768371E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.260083990463256E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.300083999999999E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.340084009536742E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.380083995231628E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.420083980926515E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.460083990463259E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.500084000000002E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.540084009536745E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.580084019073488E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.620083980926515E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.660083990463259E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.740084009536745E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.740084009536745E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.780084019073488E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.820083980926510E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.900083999999997E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.900083999999997E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.940083961853024E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.980084019073483E+001 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.106008403814697E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.106008403814697E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.110008400000000E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.114008396185302E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.118008401907348E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.122008398092651E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.126008403814697E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.130008400000000E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.134008396185302E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.138008401907348E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.142008398092651E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.146008403814697E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.150008400000000E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.154008396185302E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.158008401907348E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.166008403814698E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.166008403814698E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.170008400000001E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.174008396185303E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.182008407629395E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.182008407629395E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.186008403814698E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.190008400000001E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.198008392370606E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.198008392370606E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.202008407629395E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 + 0.600008399999999E+002 + 0.590008399999999E+002 + 0.580008399999999E+002 + 0.570008399999999E+002 + 0.560008399999999E+002 + 0.550008399999999E+002 + 0.540008399999999E+002 + 0.530008399999999E+002 + 0.520008399999999E+002 + 0.510008399999999E+002 + 0.500008399999999E+002 + 0.490008399999999E+002 + 0.480008399999999E+002 + 0.470008399999999E+002 + 0.460008399999999E+002 + 0.450008399999999E+002 + 0.440008399999999E+002 + 0.430008399999999E+002 + 0.420008399999999E+002 + 0.410008399999999E+002 + 0.400008399999999E+002 + 0.390008399999999E+002 + 0.380008399999999E+002 + 0.370008399999999E+002 + 0.360008399999999E+002 + 0.350008399999999E+002 + 0.340008399999999E+002 + 0.330008399999999E+002 + 0.320008399999999E+002 + 0.310008400000001E+002 + 0.300008400000001E+002 + 0.290008400000001E+002 + 0.280008400000001E+002 + 0.270008400000001E+002 + 0.260008400000001E+002 + 0.250008400000001E+002 + 0.240008400000001E+002 + 0.230008400000001E+002 + 0.220008400000001E+002 + 0.210008400000001E+002 + 0.206008403814698E+002 + 0.210008400000001E+002 + 0.220008400000001E+002 + 0.230008400000001E+002 + 0.240008400000001E+002 + 0.250008400000001E+002 + 0.260008400000001E+002 + 0.270008400000001E+002 + 0.280008400000001E+002 + 0.290008400000001E+002 + 0.300008400000001E+002 + 0.310008400000001E+002 + 0.320008399999999E+002 + 0.330008399999999E+002 + 0.340008399999999E+002 + 0.350008399999999E+002 + 0.360008399999999E+002 + 0.370008399999999E+002 + 0.380008399999999E+002 + 0.390008399999999E+002 + 0.400008399999999E+002 + 0.410008399999999E+002 + 0.420008399999999E+002 + 0.430008399999999E+002 + 0.440008399999999E+002 + 0.450008399999999E+002 + 0.460008399999999E+002 + 0.470008399999999E+002 + 0.480008399999999E+002 + 0.490008399999999E+002 + 0.500008399999999E+002 + 0.510008399999999E+002 + 0.520008399999999E+002 + 0.530008399999999E+002 + 0.540008399999999E+002 + 0.550008399999999E+002 + 0.560008399999999E+002 + 0.570008399999999E+002 + 0.580008399999999E+002 + 0.590008399999999E+002 + 0.600008399999999E+002 +SCALARS Depth double 1 +LOOKUP_TABLE default + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000005503E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000005503E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000005503E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999993069E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999993069E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999993069E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999993069E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999993069E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000017938E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999968200E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.840000000067676E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 + 0.839999999868724E-003 +SCALARS NonHydrostaticPressure double 1 +LOOKUP_TABLE default + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 +SCALARS Salinity double 1 +LOOKUP_TABLE default + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 +SCALARS Psi_face double 1 +LOOKUP_TABLE default + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.406440071215378E-307 + 0.147968810283785E-310 + 0.148514760524330E-310 + 0.726910484423376E-316 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 +SCALARS Psi_cell double 1 +LOOKUP_TABLE default + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 diff --git a/fort.11 b/fort.11 new file mode 100644 index 0000000..7737f2c --- /dev/null +++ b/fort.11 @@ -0,0 +1 @@ +SCALARS NonHydrostaticPressure double 1 diff --git a/fort.12 b/fort.12 new file mode 100644 index 0000000..4585c47 --- /dev/null +++ b/fort.12 @@ -0,0 +1 @@ + 8 5688 5687 5605 5606 1506 1505 1423 1424 diff --git a/fort.13 b/fort.13 new file mode 100644 index 0000000..30a72aa --- /dev/null +++ b/fort.13 @@ -0,0 +1 @@ +CELLS 4050 36450 diff --git a/fort.2 b/fort.2 new file mode 100644 index 0000000..7737f2c --- /dev/null +++ b/fort.2 @@ -0,0 +1 @@ +SCALARS NonHydrostaticPressure double 1 diff --git a/fort.3 b/fort.3 new file mode 100644 index 0000000..30a72aa --- /dev/null +++ b/fort.3 @@ -0,0 +1 @@ +CELLS 4050 36450 diff --git a/fort.4 b/fort.4 new file mode 100644 index 0000000..f85d6f2 --- /dev/null +++ b/fort.4 @@ -0,0 +1 @@ +LOOKUP_TABLE default diff --git a/fort.7 b/fort.7 new file mode 100644 index 0000000..30a72aa --- /dev/null +++ b/fort.7 @@ -0,0 +1 @@ +CELLS 4050 36450 diff --git a/fort.8 b/fort.8 new file mode 100644 index 0000000..633dd46 --- /dev/null +++ b/fort.8 @@ -0,0 +1,16208 @@ +SCALARS NonHydrostaticPressure double 1 +LOOKUP_TABLE default + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 +SCALARS Salinity double 1 +LOOKUP_TABLE default + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 + 0.100000000000000E+004 +SCALARS Psi_face double 1 +LOOKUP_TABLE default + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 +SCALARS Psi_cell double 1 +LOOKUP_TABLE default + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.506334084072964E-307 + 0.147968810283785E-310 + 0.148259469433664E-310 + 0.148259470857364E-310 + 0.148259470857364E-310 + 0.148259579727298E-310 + 0.981491049402387E-317 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 + 0.000000000000000E+000 diff --git a/fort.97 b/fort.97 deleted file mode 100644 index be065fd..0000000 --- a/fort.97 +++ /dev/null @@ -1,11 +0,0 @@ -1320141600 Sup -0.00001521448144976371 0.00005243720835394959 -0.00000331931912829062 24.49385277209296418732 699.99994206850396949449 12.00239505713149945620 -1320148800 Sup -0.00006981805542003801 0.00023948729941860195 0.00000078435824965091 24.49240748245540544303 699.99849677886641075020 13.21742135331525602737 -1320156000 Sup -0.00006078551861284803 0.00025237101859703595 0.00000068683482829611 24.49085710730207665620 699.99694640371308196336 14.73295349723258063079 -1320163200 Sup -0.00005338681365484944 0.00026715153342540479 0.00000071379437116602 24.48929013548388411436 699.99537943189488942153 15.85464545544204462146 -1320170400 Sup -0.00004799265854878142 0.00028044276519186711 0.00000069363781741056 24.48766285539193177101 699.99375215180293707817 16.41883172958619496740 -1320177600 Sup -0.00004716258559471361 0.00028851959421287914 0.00000068936089123280 24.48600617964439152274 699.99209547605539682991 16.30776928723100027696 -1320184800 Sup -0.00004541820924413870 0.00029793674122381692 0.00000064629735145886 24.48431597872297516005 699.99040527513398046722 16.02907532837832960126 -1320192000 Sup -0.00004538320198391036 0.00030540451660783562 0.00000061667173238473 24.48257705840853759582 699.98866635481954290299 15.71112915273010735007 -1320199200 Sup -0.00004649758480365882 0.00031114715033360397 0.00000062866125231037 24.48081340231146896258 699.98690269872247426974 15.28449559152099368475 -1320206400 Sup -0.00004772306706028609 0.00031718922356634708 0.00000060897889617482 24.47902743247232137946 699.98511672888332668663 14.85729387768186349206 -1320213600 Sup -0.00004935527118992816 0.00032176970752559645 0.00000059915761918510 24.47721771225064912869 699.98330700866165443585 14.44208588117280100960 diff --git a/fort.99 b/fort.99 deleted file mode 100644 index 39ea8f5..0000000 --- a/fort.99 +++ /dev/null @@ -1,8 +0,0 @@ -1199152800 1 -0.00097037435638673921 0.00061072299284276987 0.00003447146032277802 152.23117210556324607751 490.00000000000000000000 12.00000000000000000000 0.00500419349411381983 0.00000011296663341342 0.00106457827792449640 1.00000119200033199540 9.99942789830581801880 0.09983537375689320592 -1199152800 2 -0.00186784467778787662 0.00087313158939059815 0.00004846779586502964 152.23117210556324607751 510.00000000000000000000 12.00000000000000000000 0.00500419349411382157 0.00000011296663341342 0.00106457827792449640 1.00000119200033199540 9.99942789830581801880 0.09983537375689320592 -1199152800 3 -0.00264595926430561540 0.00178186455537962898 0.00000611911019528933 152.23117210556324607751 540.00000000000000000000 12.00000000000049560356 0.00500419349411382330 0.00000011296663341342 0.00106457827792449814 1.00000119200033199540 9.99942789830582690058 0.09983537375689324755 -1199152800 4 -0.00386420763917999554 0.00273245554707594353 -0.00003032053376356489 152.23117210556324607751 580.00000000000000000000 12.00000000016138734793 0.00500419349411386754 0.00000011296663341343 0.00106457827792518834 1.00000119200033199540 9.99942789831034417602 0.09983537375689299775 -1199152800 5 -0.00466168947499066150 0.00335918530770377369 -0.00003661423247573591 152.23117210556324607751 600.00000000000000000000 12.00000002585656133647 0.00500419349412081771 0.00000011296663341421 0.00106457827803005780 1.00000119200033399380 9.99942789902661388624 0.09983537375686639403 -1199152800 6 -0.00542803862929563258 0.00396641198412277587 -0.00002291687286288840 152.23117210556324607751 610.00000000000000000000 12.00000274025185476034 0.00500419349479339602 0.00000011296663349382 0.00106457828813577267 1.00000119200058912305 9.99942797397786087288 0.09983537375417478321 -1199152800 7 -0.00637192262919225160 0.00471896459700200249 -0.00001065230946379911 152.23117210556324607751 630.00000000000000000000 12.00022378101766307168 0.00500419354784497651 0.00000011296663949727 0.00106457908878928838 1.00000119201716741735 9.99943396857500488295 0.09983537355394982160 -1199152800 Sup -0.00707660208514890223 0.00528606076386226292 -0.00000328620147173200 152.23117210556324607751 635.91116478134449607751 12.14471664822784369164 0.00500421452564193351 0.00000011296934603524 0.00106489128126040548 1.00000120298951067355 10.00313010699732352293 0.09983528053781640099 diff --git a/iph-eco-model.u2d b/iph-eco-model.u2d index e69de29..2f2e2dd 100644 Binary files a/iph-eco-model.u2d and b/iph-eco-model.u2d differ diff --git a/iph-eco-model.vfproj b/iph-eco-model.vfproj index 9e908ed..5c8f0ff 100644 --- a/iph-eco-model.vfproj +++ b/iph-eco-model.vfproj @@ -12,7 +12,7 @@ - + @@ -32,7 +32,7 @@ - + @@ -70,17 +70,22 @@ + + + + + diff --git a/iph-eco-model.vfproj.cayoh.user b/iph-eco-model.vfproj.cayoh.user index 9e646e3..91047b0 100644 --- a/iph-eco-model.vfproj.cayoh.user +++ b/iph-eco-model.vfproj.cayoh.user @@ -1,7 +1,7 @@ - + - + diff --git a/pin.log.server.4300 b/pin.log.server.4300 deleted file mode 100644 index 9e9cf26..0000000 --- a/pin.log.server.4300 +++ /dev/null @@ -1,5 +0,0 @@ -Pin 2.12 kit 61147 -E: DBG_TRACE: Unexpected debugging event: EXCEPTION_DEBUG_EVENT: ExceptionCode = 0xc0000005, ExceptionAddress = 0x62191243, Instruction = 418b01a9f8fffeff0f85a40000002501 -E: Incompatible operating system or incompatible software installed on the system -A: Source\pin\winloader\injection_server_winloader.cpp:LEVEL_BASE::PIN_INJECTION_SERVER::Init:LEVEL_BASE::PIN_INJECTION_SERVER::Init:177: assertion failed: res == TRUE - diff --git a/pin.log.server.5660 b/pin.log.server.5660 deleted file mode 100644 index 9e9cf26..0000000 --- a/pin.log.server.5660 +++ /dev/null @@ -1,5 +0,0 @@ -Pin 2.12 kit 61147 -E: DBG_TRACE: Unexpected debugging event: EXCEPTION_DEBUG_EVENT: ExceptionCode = 0xc0000005, ExceptionAddress = 0x62191243, Instruction = 418b01a9f8fffeff0f85a40000002501 -E: Incompatible operating system or incompatible software installed on the system -A: Source\pin\winloader\injection_server_winloader.cpp:LEVEL_BASE::PIN_INJECTION_SERVER::Init:LEVEL_BASE::PIN_INJECTION_SERVER::Init:177: assertion failed: res == TRUE - diff --git a/pin.log.server.8068 b/pin.log.server.8068 deleted file mode 100644 index fe9e888..0000000 --- a/pin.log.server.8068 +++ /dev/null @@ -1,5 +0,0 @@ -Pin 2.12 kit 61147 -E: DBG_TRACE: Unexpected debugging event: EXCEPTION_DEBUG_EVENT: ExceptionCode = 0xc0000005, ExceptionAddress = 0x521a1243, Instruction = 418b01a9f8fffeff0f85a40000002501 -E: Incompatible operating system or incompatible software installed on the system -A: Source\pin\winloader\injection_server_winloader.cpp:LEVEL_BASE::PIN_INJECTION_SERVER::Init:LEVEL_BASE::PIN_INJECTION_SERVER::Init:177: assertion failed: res == TRUE - diff --git a/pin.log.server.8456 b/pin.log.server.8456 deleted file mode 100644 index fe9e888..0000000 --- a/pin.log.server.8456 +++ /dev/null @@ -1,5 +0,0 @@ -Pin 2.12 kit 61147 -E: DBG_TRACE: Unexpected debugging event: EXCEPTION_DEBUG_EVENT: ExceptionCode = 0xc0000005, ExceptionAddress = 0x521a1243, Instruction = 418b01a9f8fffeff0f85a40000002501 -E: Incompatible operating system or incompatible software installed on the system -A: Source\pin\winloader\injection_server_winloader.cpp:LEVEL_BASE::PIN_INJECTION_SERVER::Init:LEVEL_BASE::PIN_INJECTION_SERVER::Init:177: assertion failed: res == TRUE - diff --git a/simulation_manager.f90 b/simulation_manager.f90 index d3ac500..963db21 100644 --- a/simulation_manager.f90 +++ b/simulation_manager.f90 @@ -152,7 +152,32 @@ subroutine startSimulation(sim) bind(C, name="startSimulation") !7. Reading hydrodynamic boundary conditions Call ReadHydroBoundaryCondition(HydroParam,hydroConfiguration,simParam%IniTime,simParam%FinalTime,MeshParam) - + + !7.1 Get Pressure Boundary Condition intial values to initialize etaInf in time n-1: + Do i = 1,HydroParam%NWaterLevel + HydroParam%WaterLevel(i) = HydroParam%WaterLevelValue(i,1) + EndDo + Do iElem = 1,MeshParam%nElem + Do iEdge = 1,4 + Face = MeshParam%Edge(iEdge,iElem) + l = MeshParam%Left(Face) + r = MeshParam%Right(Face) + If (r == 0) Then + !If the Face has a pressure boundary condition, the etaInf in time n-1 is set: + If (HydroParam%IndexWaterLevelEdge(Face)>0) Then + If ((HydroParam%WaterLevel(HydroParam%IndexWaterLevelEdge(Face))-HydroParam%hj(Face)) Maximum) THEN ! if x(i) greater than the max? + Maximum = x(i) ! Yes, a new maximum found + Location = i ! record its position + END IF + END DO + FindMaximum = Location ! return the position + END FUNCTION FindMaximum + ! -------------------------------------------------------------------- ! SUBROUTINE Swap(): ! This subroutine swaps the values of its two formal arguments. @@ -67,5 +92,18 @@ SUBROUTINE Sort(x, Size) CALL Swap(x(i), x(Location)) ! swap this and the minimum END DO END SUBROUTINE Sort + + SUBROUTINE SortDecreasing(x, Size) + IMPLICIT NONE + Real, DIMENSION(1:), INTENT(INOUT) :: x + INTEGER, INTENT(IN) :: Size + INTEGER :: i + INTEGER :: Location + DO i = 1, Size-1 ! except for the last + Location = FindMaximum(x, i, Size) ! find min from this to last + CALL Swap(x(i), x(Location)) ! swap this and the minimum + END DO + END SUBROUTINE SortDecreasing + END Module Sorting diff --git a/utangvelocity.f90 b/utangvelocity.f90 index f717bf2..cd43ec2 100644 --- a/utangvelocity.f90 +++ b/utangvelocity.f90 @@ -1,49 +1,90 @@ -Subroutine utangvelocity(HydroParam,MeshParam,dt) +Subroutine utangvelocity(HydroParam,MeshParam,MeteoParam,dt) !$ use omp_lib Use MeshVars Use Hydrodynamic + Use Meteorological Implicit None type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam + type(MeteorologicalParam) :: MeteoParam Integer:: iEdge,iLayer, DIM, l, r Real:: aTh(MeshParam%KMax), bTh(MeshParam%KMax), cTh(MeshParam%KMax), fTh(MeshParam%KMax) - Real:: dt,dzk,dzm + Real:: dt,dzk,dzm,DZsjAcum,GammaB,GammaT,rhoair,chezy,rhoaircell + Real :: w, H, Futn, Fvtn Real:: NearZero = 1e-10 Do iEdge = 1, MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) - ! If a face is dry, set the velocity to zero + ! 11.1.1 Get roughness + H = HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge) !Surface Water Height + If (r == 0) Then + If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant + Chezy = HydroParam%Rug(l) + ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant + Chezy = Max(HydroParam%Pcri,HydroParam%H(iEdge))**(1./6.)/(HydroParam%Rug(l)+NearZero) + ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant + Chezy = 18.*log10(12.*Max(HydroParam%Pcri,HydroParam%H(iEdge))/(HydroParam%Rug(l)/30.+NearZero)) + EndIf + rhoairCell = MeteoParam%rhoair(l) + Else + If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant + Chezy = 0.5*(HydroParam%Rug(l) + HydroParam%Rug(r)) + ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant + Chezy = Max(HydroParam%Pcri,HydroParam%H(iEdge))**(1./6.)/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))+NearZero) + ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant + Chezy = 18.*log10(12.*Max(HydroParam%Pcri,HydroParam%H(iEdge))/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))/30.+NearZero)) + EndIf + rhoairCell = 0.5*(MeteoParam%rhoair(l) + MeteoParam%rhoair(r)) + EndIf + + If(r==0)Then + r = l + EndIf + If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and. H >HydroParam%PCRI+NearZero) Then + Futn = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInfn(l) - HydroParam%etan(l))) + Else + Futn = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l))) + EndIf + Fvtn = HydroParam%Fv(HydroParam%Smallm(iEdge),iEdge) - dt/MeshParam%CirDistance(iEdge)*HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) - If (HydroParam%H(iEdge) <= HydroParam%PCRI + NearZero) Then - HydroParam%utang(:,iEdge) = 0. + Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,HydroParam%uxy(HydroParam%Smallm(iEdge),1,iEdge),HydroParam%uxy(HydroParam%Smallm(iEdge),2,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) + !Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,Futn,Fvtn,HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) + + ! If a face is dry, set the velocity to zero + If (HydroParam%H(iEdge) - HydroParam%hj(iEdge) <= HydroParam%PCRI + NearZero) Then + HydroParam%utang(:,iEdge) = 0.d0 Else !MeshParam%EdgeNodes(1,j) - If (HydroParam%Smallm(iEdge)== HydroParam%CapitalM(iEdge)) Then - HydroParam%utang(HydroParam%Smallm(iEdge),iEdge) = HydroParam%Fv(HydroParam%Smallm(iEdge),iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge))) + If (HydroParam%Smallm(iEdge) == HydroParam%CapitalM(iEdge)) Then + HydroParam%utang(HydroParam%Smallm(iEdge),iEdge) = (HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge)/(HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge) + HydroParam%GammaB*dt + NearZero))*(HydroParam%Fv(HydroParam%Smallm(iEdge),iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge)))) + !HydroParam%utang(HydroParam%Smallm(iEdge),iEdge) = (HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge)/(HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge) + HydroParam%GammaB*dt + NearZero))*(HydroParam%Fv(HydroParam%Smallm(iEdge),iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(HydroParam%utangNodes(2,iEdge)) - HydroParam%petan(HydroParam%utangNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(HydroParam%utangNodes(2,iEdge)) - HydroParam%peta(HydroParam%utangNodes(1,iEdge)))) Else Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) If (iLayer == HydroParam%Smallm(iEdge)) Then dzk = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer+1,iEdge)) aTh(iLayer) = 0. - bTh(iLayer) = 1. + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - cTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - fTh(iLayer) = HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,MeshParam%EdgeNodes(2,iEdge))-HydroParam%pq(iLayer,MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge))) + bTh(iLayer) = MeshParam%CirDistance(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + HydroParam%GammaB*dt) + cTh(iLayer) = -MeshParam%CirDistance(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%CirDistance(iEdge)*(HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,MeshParam%EdgeNodes(2,iEdge))-HydroParam%pq(iLayer,MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge)))) + !fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%CirDistance(iEdge)*(HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(HydroParam%utangNodes(2,iEdge)) - HydroParam%petan(HydroParam%utangNodes(1,iEdge))) + (HydroParam%pq(iLayer,HydroParam%utangNodes(2,iEdge))-HydroParam%pq(iLayer,HydroParam%utangNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(HydroParam%utangNodes(2,iEdge)) - HydroParam%peta(HydroParam%utangNodes(1,iEdge)))) Elseif (iLayer == HydroParam%CapitalM(iEdge)) Then dzk = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer-1,iEdge)) - aTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) - bTh(iLayer) = 1. + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) + aTh(iLayer) = -MeshParam%CirDistance(iEdge)*dt/HydroParam%DZhjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) + bTh(iLayer) = MeshParam%CirDistance(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk)) cTh(iLayer) = 0. - fTh(iLayer) = HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,MeshParam%EdgeNodes(2,iEdge))-HydroParam%pq(iLayer,MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge))) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%CirDistance(iEdge)*(HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,MeshParam%EdgeNodes(2,iEdge))-HydroParam%pq(iLayer,MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge)))) + !fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%CirDistance(iEdge)*(HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(HydroParam%utangNodes(2,iEdge)) - HydroParam%petan(HydroParam%utangNodes(1,iEdge))) + (HydroParam%pq(iLayer,HydroParam%utangNodes(2,iEdge))-HydroParam%pq(iLayer,HydroParam%utangNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(HydroParam%utangNodes(2,iEdge)) - HydroParam%peta(HydroParam%utangNodes(1,iEdge)))) Else dzk = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer+1,iEdge)) dzm = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer-1,iEdge)) - aTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm) - bTh(iLayer) = 1. + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm+HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - cTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - fTh(iLayer) = HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,MeshParam%EdgeNodes(2,iEdge))-HydroParam%pq(iLayer,MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge))) + aTh(iLayer) = -MeshParam%CirDistance(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm) + bTh(iLayer) = MeshParam%CirDistance(iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm+HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk)) + cTh(iLayer) = -MeshParam%CirDistance(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + fTh(iLayer) = MeshParam%CirDistance(iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,MeshParam%EdgeNodes(2,iEdge))-HydroParam%pq(iLayer,MeshParam%EdgeNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge)))) + !fTh(iLayer) = MeshParam%CirDistance(iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fv(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + (HydroParam%pq(iLayer,HydroParam%utangNodes(2,iEdge))-HydroParam%pq(iLayer,HydroParam%utangNodes(1,iEdge)))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%EdgeLength(iEdge))*(HydroParam%peta(HydroParam%utangNodes(2,iEdge)) - HydroParam%peta(HydroParam%utangNodes(1,iEdge)))) EndIf EndDo DIM = size(HydroParam%utang(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) @@ -62,5 +103,43 @@ Subroutine utangvelocity(HydroParam,MeshParam,dt) EndDo + !xx.x Subsuperficial Tangencial Velocities: + HydroParam%ustang(:,:) = 0.d0 + If (MeshParam%iBedrock == 1) Then + Do iEdge = 1, MeshParam%nEdge + DZsjAcum = 0.d0 + l = MeshParam%Left(iEdge) + r = MeshParam%Right(iEdge) + If(r==0) Then + r=l + EndIf + If(HydroParam%DZsj(HydroParam%Smallms(iEdge),iEdge) > 0) Then ! if edge lower layer have sediment thickness + Do iLayer = HydroParam%Smallms(iEdge),HydroParam%CapitalM(iEdge) + If(HydroParam%DZsj(iLayer,iEdge) > 0) Then + DZsjAcum = DZsjAcum + HydroParam%DZsj(iLayer,iEdge) + If(HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge)) Then ! It has only one sediment layer + HydroParam%ustang(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge))/MeshParam%CirDistance(iEdge)) + !HydroParam%ustang(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%peta(HydroParam%utangNodes(2,iEdge)) - HydroParam%peta(HydroParam%utangNodes(1,iEdge))/MeshParam%CirDistance(iEdge)) + !Check if eta is above the iLayer: + ElseIf(HydroParam%eta(r) - DZsjAcum > HydroParam%PCRI+NearZero .or. HydroParam%eta(l) - DZsjAcum > HydroParam%PCRI/2.d0+NearZero) Then + HydroParam%ustang(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%peta(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%peta(MeshParam%EdgeNodes(1,iEdge))/MeshParam%CirDistance(iEdge)) + !HydroParam%ustang(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%peta(HydroParam%utangNodes(2,iEdge)) - HydroParam%peta(HydroParam%utangNodes(1,iEdge))/MeshParam%CirDistance(iEdge)) + EndIf + EndIf + EndDo + EndIf + ! xx.x Nullify Velocities Below the Bottom (u=0) + Do iLayer = 1, HydroParam%Smallms(iEdge) - 1.d0 + HydroParam%ustang(iLayer,iEdge) = 0.d0 + EndDo + EndDo + !xx.x Mean Velocity in each iEdge Layer (Weighted Superficial + Subsuperficial Velocities) + Do iEdge = 1, MeshParam%nEdge + HydroParam%umtang(:,iEdge) = HydroParam%utang(:,iEdge) + HydroParam%umtang(:,iEdge) = (HydroParam%utang(:,iEdge)*HydroParam%DZhjt(:,iEdge) + HydroParam%ustang(:,iEdge)*HydroParam%DZsjt(:,iEdge))/HydroParam%DZjt(:,iEdge) + EndDo + EndIf + + Return End Subroutine utangvelocity \ No newline at end of file diff --git a/uvelocity.f90 b/uvelocity.f90 index 6df9757..4b3893e 100644 --- a/uvelocity.f90 +++ b/uvelocity.f90 @@ -1,4 +1,4 @@ -Subroutine uvelocity(HydroParam,MeshParam,dt) +Subroutine uvelocity(HydroParam,MeshParam,MeteoParam,dt) ! List of Modifications: ! -> 20.08.2019: Routine Update (Cayo Lopes) @@ -6,189 +6,275 @@ Subroutine uvelocity(HydroParam,MeshParam,dt) !$ use omp_lib Use MeshVars Use Hydrodynamic + Use Meteorological Implicit None type(MeshGridParam) :: MeshParam type(HydrodynamicParam) :: HydroParam - Integer:: iEdge,iLayer, DIM, l, r, i + type(MeteorologicalParam) :: MeteoParam + Integer:: iEdge,iLayer, DIM, l, r, i, n Real:: aTh(MeshParam%KMax), bTh(MeshParam%KMax), cTh(MeshParam%KMax), fTh(MeshParam%KMax) - Real:: dt,dzk,dzm + Real:: dt,dzk,dzm,DZsjAcum,GammaB,GammaT,rhoair,chezy,rhoaircell Real :: bp(MeshParam%KMax),vp(MeshParam%KMax),a_aux(MeshParam%KMax),b_aux(MeshParam%KMax),c_aux(MeshParam%KMax),v_aux(MeshParam%KMax),x_aux(MeshParam%KMax),d_aux(MeshParam%KMax),x(MeshParam%KMax) - Real :: w + Real :: w, H, Futn, Fvtn Real:: NearZero = 1e-10 - + + ! 11.1 Surface Velocity + !!$OMP parallel do default(none) shared(MeshParam,HydroParam,MeteoParam) private(iEdge,iLayer,l,r,H,Chezy,rhoairCell,aTh,bTh,cTh,fTh,dzk,dzm,a_aux,b_aux,c_aux,d_aux,v_aux,x,w,x_aux,DIM,NearZero,dt) Do iEdge = 1, MeshParam%nEdge l = MeshParam%Left(iEdge) r = MeshParam%Right(iEdge) + If(r==0)Then + r = l + EndIf + + ! 11.1.1 Get roughness + H = HydroParam%H(iEdge)+HydroParam%sj(iEdge)-HydroParam%hj(iEdge) !Surface Water Height If (r == 0) Then + If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant + Chezy = HydroParam%Rug(l) + ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant + Chezy = Max(HydroParam%Pcri,H)**(1./6.)/(HydroParam%Rug(l)+NearZero) + ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant + Chezy = 18.*log10(12.*Max(HydroParam%Pcri,H)/(HydroParam%Rug(l)/30.+NearZero)) + EndIf + rhoairCell = MeteoParam%rhoair(l) + Else + If (HydroParam%iRoughForm == 0.or.HydroParam%iRoughForm == 3) Then ! roughnessChezyConstant + Chezy = 0.5*(HydroParam%Rug(l) + HydroParam%Rug(r)) + ElseIf (HydroParam%iRoughForm == 1.or.HydroParam%iRoughForm == 4) Then ! roughnessManningConstant + Chezy = Max(HydroParam%Pcri,H)**(1./6.)/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))+NearZero) + ElseIf (HydroParam%iRoughForm == 2.or.HydroParam%iRoughForm == 5) Then ! roughnessWhiteColebrookConstant + Chezy = 18.*log10(12.*Max(HydroParam%Pcri,H)/(0.5*(HydroParam%Rug(l) + HydroParam%Rug(r))/30.+NearZero)) + EndIf + rhoairCell = 0.5*(MeteoParam%rhoair(l) + MeteoParam%rhoair(r)) + EndIf + + If(r==0)Then + r = l + EndIf + If (HydroParam%IndexWaterLevelEdge(iEdge)>0 .and. H >HydroParam%PCRI+NearZero) Then + Futn = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInfn(l) - HydroParam%etan(l))) + Else + Futn = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l))) + EndIf + Fvtn = HydroParam%Fv(HydroParam%Smallm(iEdge),iEdge) - dt/MeshParam%CirDistance(iEdge)*HydroParam%g*(HydroParam%petan(MeshParam%EdgeNodes(2,iEdge)) - HydroParam%petan(MeshParam%EdgeNodes(1,iEdge))) + + Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,HydroParam%uxy(HydroParam%Smallm(iEdge),1,iEdge),HydroParam%uxy(HydroParam%Smallm(iEdge),2,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) + !Call Tension(HydroParam%iWindStress,HydroParam%BottomTensionFlag,iEdge,HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),HydroParam%g,Futn,Fvtn,HydroParam%uxy(HydroParam%CapitalM(iEdge),1,iEdge),HydroParam%uxy(HydroParam%CapitalM(iEdge),2,iEdge),Chezy,rhoairCell,HydroParam%rho0,HydroParam%windDragConstant,HydroParam%WindVel(:,iEdge),HydroParam%WindXY(:,iEdge),HydroParam%GammaT,HydroParam%GammaB) + + ! 11.1.2 If not has neighbour cell: + !If (r == 0) Then + If (r == l) Then + ! When has flow boundary condition: If (HydroParam%IndexInflowEdge(iEdge) > 0) Then ! Boundary Condition HydroParam%u(:,iEdge) = HydroParam%Fu(:,iEdge) Else HydroParam%u(:,iEdge) = 0.d0 - If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and.-HydroParam%hj(iEdge) + HydroParam%eta(l)>HydroParam%PCRI+NearZero) Then - If (HydroParam%Smallm(iEdge)== HydroParam%CapitalM(iEdge)) Then - HydroParam%u(HydroParam%Smallm(iEdge),iEdge) = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInf(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l)) + ! In which case has Water Level Bound condition: + !If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and.-HydroParam%hj(iEdge) + HydroParam%eta(l)>HydroParam%PCRI/2+NearZero) Then + If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and. H > HydroParam%PCRI+NearZero) Then + ! 2D Case: + If (HydroParam%Smallm(iEdge) == HydroParam%CapitalM(iEdge)) Then + !Casulli,2015: + HydroParam%u(HydroParam%Smallm(iEdge),iEdge) = (HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge)/(HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge) + HydroParam%GammaB*dt + NearZero))*(HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInfn(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l))) Else + !3D Case: Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) If (iLayer == HydroParam%Smallm(iEdge)) Then - dzk = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer+1,iEdge)) + + dzk = 0.5*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer+1,iEdge)) aTh(iLayer) = 0. - bTh(iLayer) = 1. + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - cTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - fTh(iLayer) = HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInf(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l)) + bTh(iLayer) = MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + HydroParam%GammaB*dt) + cTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInfn(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l))) Elseif (iLayer == HydroParam%CapitalM(iEdge)) Then - dzk = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer-1,iEdge)) - aTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) - bTh(iLayer) = 1. + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) + dzk = 0.5*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer-1,iEdge)) + aTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) + bTh(iLayer) = Max(NearZero, MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk))) cTh(iLayer) = 0. - fTh(iLayer) = HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInf(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l)) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInfn(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l))) Else - dzk = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer+1,iEdge)) - dzm = 0.5*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer-1,iEdge)) - aTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm) - bTh(iLayer) = 1. + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm+HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - cTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - fTh(iLayer) = HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInf(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l)) + dzk = 0.5*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer+1,iEdge)) + dzm = 0.5*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer-1,iEdge)) + aTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm) + bTh(iLayer) = MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm+HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk)) + cTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etaInfn(l) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%etaInf(l) - HydroParam%eta(l))) EndIf EndDo - !n = size(HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) - !Call solve_tridiag(cTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),bTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),aTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),fTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),DIM) + n = size(HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) + Call solve_tridiag(cTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),bTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),aTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),fTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),n) - !Tridiagonal Matrix solver - !Flipping matrix - do i = HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),-1 - a_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = cTh(i) - b_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = bTh(i) - c_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = aTh(i) - v_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = fTh(i) - enddo - - d_aux = 0 - x = d_aux - w = b_aux(HydroParam%Smallm(iEdge)) - x(HydroParam%Smallm(iEdge)) = v_aux(HydroParam%Smallm(iEdge))/w - do i=HydroParam%Smallm(iEdge)+1,HydroParam%CapitalM(iEdge) - d_aux(i-1) = c_aux(i-1)/w; - w = b_aux(i) - a_aux(i)*d_aux(i-1); - x(i) = ( v_aux(i) - a_aux(i)*x(i-1) )/w; - enddo - do i=HydroParam%CapitalM(iEdge)-1, HydroParam%Smallm(iEdge), -1 - x(i) = x(i) - d_aux(i)*x(i+1); - enddo - - !Flipping matrix - do i = HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),-1 - x_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = x(i) - enddo - HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) = x_aux(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)) + !!Tridiagonal Matrix solver + !!Flipping matrix + !do i = HydroParam%CapitalM(iEdge),HydroParam%Smallms(iEdge),-1 + ! a_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = cTh(i) + ! b_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = bTh(i) + ! c_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = aTh(i) + ! v_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = fTh(i) + !enddo + ! + !d_aux = 0 + !x = d_aux + !w = b_aux(HydroParam%Smallm(iEdge)) + !x(HydroParam%Smallm(iEdge)) = v_aux(HydroParam%Smallm(iEdge))/w + !do i=HydroParam%Smallm(iEdge)+1,HydroParam%CapitalM(iEdge) + ! d_aux(i-1) = c_aux(i-1)/w; + ! w = b_aux(i) - a_aux(i)*d_aux(i-1); + ! x(i) = ( v_aux(i) - a_aux(i)*x(i-1) )/w; + !enddo + !do i=HydroParam%CapitalM(iEdge)-1, HydroParam%Smallm(iEdge), -1 + ! x(i) = x(i) - d_aux(i)*x(i+1); + !enddo + ! + !!Flipping matrix + !do i = HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),-1 + ! x_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = x(i) + !enddo + !HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) = x_aux(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)) + ! EndIf EndIf EndIf Else + !Cell without bound conditions: ! If a face is dry, set the velocity to zero + !If ( Max( HydroParam%PCRI/2,-HydroParam%hj(iEdge) + HydroParam%etan(l), -HydroParam%hj(iEdge) + HydroParam%etan(r) ) <= HydroParam%PCRI/2+NearZero.or.Max( HydroParam%PCRI/2,-HydroParam%hj(iEdge) + HydroParam%eta(l), -HydroParam%hj(iEdge) + HydroParam%eta(r) ) <= HydroParam%PCRI/2+NearZero) Then If ( Max( HydroParam%PCRI,-HydroParam%hj(iEdge) + HydroParam%etan(l), -HydroParam%hj(iEdge) + HydroParam%etan(r) ) <= HydroParam%PCRI+NearZero.or.Max( HydroParam%PCRI,-HydroParam%hj(iEdge) + HydroParam%eta(l), -HydroParam%hj(iEdge) + HydroParam%eta(r) ) <= HydroParam%PCRI+NearZero) Then HydroParam%u(:,iEdge) = 0.d0 Else - If (HydroParam%Smallm(iEdge)== HydroParam%CapitalM(iEdge)) Then - HydroParam%u(HydroParam%Smallm(iEdge),iEdge) = HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (1.d0-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l)) - Else + !2D Case: + If (HydroParam%Smallm(iEdge) == HydroParam%CapitalM(iEdge)) Then + !Casulli,2015: + HydroParam%u(HydroParam%Smallm(iEdge),iEdge) = (HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge)/(HydroParam%DZhjt(HydroParam%Smallm(iEdge),iEdge) + HydroParam%GammaB*dt + NearZero))*(HydroParam%Fu(HydroParam%Smallm(iEdge),iEdge) - (1.d0-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l))) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l))) + !3D Case: + Else + !DZjt must be DZjht for subsurface case Do iLayer = HydroParam%Smallm(iEdge), HydroParam%CapitalM(iEdge) If (iLayer == HydroParam%Smallm(iEdge)) Then - dzk = 0.5d0*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer+1,iEdge)) + dzk = 0.5d0*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer+1,iEdge)) aTh(iLayer) = 0.d0 - bTh(iLayer) = 1.d0 + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - cTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - fTh(iLayer) = HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l)) + ( HydroParam%q(iLayer,r)-HydroParam%q(iLayer,l) )) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l)) + bTh(iLayer) = MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + HydroParam%GammaB*dt) + cTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l)) + ( HydroParam%q(iLayer,r)-HydroParam%q(iLayer,l) )) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l))) Elseif (iLayer == HydroParam%CapitalM(iEdge)) Then - dzk = 0.5d0*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer-1,iEdge)) - aTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) - bTh(iLayer) = 1.d0 + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) + dzk = 0.5d0*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer-1,iEdge)) + aTh(iLayer) = -MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk) + bTh(iLayer) = Max(NearZero,MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzk))) cTh(iLayer) = 0.d0 - fTh(iLayer) = HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l)) + ( HydroParam%q(iLayer,r)-HydroParam%q(iLayer,l) )) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l)) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1.-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l)) + ( HydroParam%q(iLayer,r)-HydroParam%q(iLayer,l) )) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l))) Else - dzk = 0.5d0*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer+1,iEdge)) - dzm = 0.5d0*(HydroParam%DZjt(iLayer,iEdge) + HydroParam%DZjt(iLayer-1,iEdge)) - aTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm) - bTh(iLayer) = 1.d0 + dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm+HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - cTh(iLayer) = -dt/HydroParam%DZjt(iLayer,iEdge)*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) - fTh(iLayer) = HydroParam%Fu(iLayer,iEdge) - (1.d0-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l)) + ( HydroParam%q(iLayer,r)-HydroParam%q(iLayer,l) )) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l)) + dzk = 0.5d0*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer+1,iEdge)) + dzm = 0.5d0*(HydroParam%DZhjt(iLayer,iEdge) + HydroParam%DZhjt(iLayer-1,iEdge)) + aTh(iLayer) = - MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm) + bTh(iLayer) = MeshParam%EdgeLength(iEdge)*(HydroParam%DZhjt(iLayer,iEdge) + dt*(HydroParam%VerEddyVisc(iLayer,iEdge)/dzm+HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk)) + cTh(iLayer) = - MeshParam%EdgeLength(iEdge)*dt*(HydroParam%VerEddyVisc(iLayer+1,iEdge)/dzk) + fTh(iLayer) = HydroParam%DZhjt(iLayer,iEdge)*MeshParam%EdgeLength(iEdge)*(HydroParam%Fu(iLayer,iEdge) - (1.d0-HydroParam%Theta)*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%g*(HydroParam%etan(r) - HydroParam%etan(l)) + ( HydroParam%q(iLayer,r)-HydroParam%q(iLayer,l) )) - HydroParam%Theta*HydroParam%g*(dt/MeshParam%CirDistance(iEdge))*(HydroParam%eta(r) - HydroParam%eta(l))) EndIf EndDo - !n = size(HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) - !Call solve_tridiag(cTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),bTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),aTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),fTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),DIM) - - !Tridiagonal Matrix solver - !Flipping matrix - do i = HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),-1 - a_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = cTh(i) - b_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = bTh(i) - c_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = aTh(i) - v_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = fTh(i) - enddo - - d_aux = 0.d0 - x = d_aux - w = b_aux(HydroParam%Smallm(iEdge)) - x(HydroParam%Smallm(iEdge)) = v_aux(HydroParam%Smallm(iEdge))/w - do i=HydroParam%Smallm(iEdge)+1.d0,HydroParam%CapitalM(iEdge) - d_aux(i-1.d0) = c_aux(i-1.d0)/w; - w = b_aux(i) - a_aux(i)*d_aux(i-1.d0); - x(i) = ( v_aux(i) - a_aux(i)*x(i-1.d0) )/w; - enddo - do i=HydroParam%CapitalM(iEdge)-1.d0, HydroParam%Smallm(iEdge), -1.d0 - x(i) = x(i) - d_aux(i)*x(i+1.d0); - enddo - - !Flipping matrix - do i = HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),-1.d0 - x_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = x(i) - enddo - HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) = x_aux(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)) + n = size(HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),1) + Call solve_tridiag(cTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),bTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),aTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),fTh(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)),HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge),n) + !!Tridiagonal Matrix solver + !!Flipping matrix + !do i = HydroParam%CapitalM(iEdge),HydroParam%Smallms(iEdge),-1 + ! a_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = cTh(i) + ! b_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = bTh(i) + ! c_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = aTh(i) + ! v_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallms(iEdge)) = fTh(i) + !enddo + ! + !d_aux = 0.d0 + !x = d_aux + !w = b_aux(HydroParam%Smallm(iEdge)) + !x(HydroParam%Smallm(iEdge)) = v_aux(HydroParam%Smallm(iEdge))/w + !do i=HydroParam%Smallm(iEdge)+1.d0,HydroParam%CapitalM(iEdge) + ! d_aux(i-1.d0) = c_aux(i-1.d0)/w; + ! w = b_aux(i) - a_aux(i)*d_aux(i-1.d0); + ! x(i) = ( v_aux(i) - a_aux(i)*x(i-1.d0) )/w; + !enddo + !do i=HydroParam%CapitalM(iEdge)-1.d0, HydroParam%Smallm(iEdge), -1.d0 + ! x(i) = x(i) - d_aux(i)*x(i+1.d0); + !enddo + ! + !!Flipping matrix + !do i = HydroParam%CapitalM(iEdge),HydroParam%Smallm(iEdge),-1.d0 + ! x_aux(HydroParam%CapitalM(iEdge)-i+HydroParam%Smallm(iEdge)) = x(i) + !enddo + !HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) = x_aux(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge)) + ! EndIf EndIf EndIf - ! 10.1 Copy Velocities Above the Free-Surface (du/dz=0) + ! 11.1.3 Copy Velocities Above the Free-Surface (du/dz=0) Do iLayer = HydroParam%CapitalM(iEdge) + 1.d0, MeshParam%KMAX HydroParam%u(iLayer,iEdge) = 0.d0 !u(CapitalM(Face),Face) EndDo - ! 10.2 Nullify Velocities Below the Bottom (u=0) + ! 11.1.4 Nullify Velocities Below the Bottom (u=0) Do iLayer = 1, HydroParam%Smallms(iEdge) - 1.d0 HydroParam%u(iLayer,iEdge) = 0.d0 EndDo - HydroParam%Hu(iEdge) = Sum( HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge) )/(HydroParam%CapitalM(iEdge)-HydroParam%Smallm(iEdge)+1.d0) + HydroParam%Hu(iEdge) = Sum(HydroParam%u(HydroParam%Smallm(iEdge):HydroParam%CapitalM(iEdge),iEdge))/(HydroParam%CapitalM(iEdge)-HydroParam%Smallm(iEdge)+1.d0) + HydroParam%um(:,iEdge) = HydroParam%u(:,iEdge) EndDo + !!$OMP end parallel do - - !Subsuperficial Velocities - !CAYO - Do iEdge = 1, MeshParam%nEdge - l = MeshParam%Left(iEdge) - r = MeshParam%Right(iEdge) - HydroParam%us(:,iEdge) = 0.d0 - - If (r == 0) Then - If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and.-HydroParam%sj(iEdge) + HydroParam%eta(l)>HydroParam%PCRI+NearZero) Then - If (HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge)) Then - HydroParam%us(HydroParam%Smallm(iEdge),iEdge) = -MeshParam%Kj(HydroParam%Smallm(iEdge),iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + !11.2 Subsuperficial Velocities + HydroParam%us(:,:) = 0.d0 + If (MeshParam%iBedrock == 1) Then + !$OMP parallel do default(none) shared(MeshParam,HydroParam) private(iLayer,r,l,iEdge,NearZero) + Do iEdge = 1, MeshParam%nEdge + !DZsjAcum = 0.d0 + l = MeshParam%Left(iEdge) + r = MeshParam%Right(iEdge) + If(HydroParam%DZsjt(HydroParam%Smallms(iEdge),iEdge) > 0) Then ! If Edge lower layer have sediment thickness + If (r == 0) Then + If (HydroParam%IndexWaterLevelEdge(iEdge)>0.and.-HydroParam%sj(iEdge) + HydroParam%eta(l)>HydroParam%PCRI+NearZero) Then + If ((HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge).and.HydroParam%Smallms(iEdge) == HydroParam%CapitalM(iEdge) )) Then + !HydroParam%Gusub(HydroParam%Smallms(iEdge),iEdge) = (1-HydroParam%Theta)*HydroParam%us(HydroParam%Smallms(iEdge),iEdge) + !HydroParam%us(HydroParam%Smallms(iEdge),iEdge) = HydroParam%Gusub(HydroParam%Smallms(iEdge),iEdge)-MeshParam%Kj(HydroParam%Smallms(iEdge),iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + HydroParam%us(HydroParam%Smallms(iEdge),iEdge) = -MeshParam%Kj(HydroParam%Smallms(iEdge),iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + Else + Do iLayer = HydroParam%Smallms(iEdge),HydroParam%CapitalMs(iEdge) + !If(HydroParam%DZsj(iLayer,iEdge) > 0 ) Then + If(MeshParam%Kj(iLayer,iEdge) > 0) Then + !HydroParam%Gusub(iLayer,iEdge) = (1-HydroParam%Theta)*HydroParam%us(iLayer,iEdge) + !HydroParam%us(iLayer,iEdge) = HydroParam%Gusub(iLayer,iEdge)-MeshParam%Kj(iLayer,iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + HydroParam%us(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + !HydroParam%us(iLayer,iEdge) = (1-HydroParam%Theta)*HydroParam%us(iLayer,iEdge) - MeshParam%Kj(iLayer,iEdge)*HydroParam%Theta*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + !HydroParam%u(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + EndIf + EndDo + EndIf + EndIf Else - Do ILayer = HydroParam%Smallms(iEdge),HydroParam%CapitalMs(iEdge) - HydroParam%us(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%etaInf(l) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) - EndDo + Do iLayer = HydroParam%Smallms(iEdge),HydroParam%CapitalM(iEdge) + !If(HydroParam%DZsj(iLayer,iEdge) > 0) Then + If(MeshParam%Kj(iLayer,iEdge) > 0) Then + !HydroParam%Gusub(iLayer,iEdge) = (1-HydroParam%Theta)*HydroParam%us(iLayer,iEdge) + !HydroParam%us(iLayer,iEdge) = HydroParam%Gusub(iLayer,iEdge)-MeshParam%Kj(iLayer,iEdge)*(HydroParam%eta(r) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + HydroParam%us(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%eta(r) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + !DZsjAcum = DZsjAcum + HydroParam%DZsj(iLayer,iEdge) + !If(HydroParam%Smallms(iEdge) == HydroParam%CapitalMs(iEdge)) Then + ! HydroParam%us(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%etan(r) - HydroParam%etan(l))/MeshParam%CirDistance(iEdge) + !ElseIf(HydroParam%eta(r) - DZsjAcum > HydroParam%PCRI/2.d0+NearZero .or. HydroParam%eta(l) - DZsjAcum > HydroParam%PCRI/2.d0+NearZero) Then + ! HydroParam%us(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%eta(r) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + ! !HydroParam%us(iLayer,iEdge) = (1-HydroParam%Theta)*HydroParam%us(iLayer,iEdge) - MeshParam%Kj(iLayer,iEdge)*HydroParam%Theta*(HydroParam%etan(r) - HydroParam%etan(l))/MeshParam%CirDistance(iEdge) + ! !HydroParam%u(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%eta(r) - HydroParam%eta(l))/MeshParam%CirDistance(iEdge) + !EndIf + EndIf + EndDo EndIf - EndIf - Else - Do ILayer = HydroParam%Smallms(iEdge),HydroParam%CapitalMs(iEdge) - HydroParam%us(iLayer,iEdge) = -MeshParam%Kj(iLayer,iEdge)*(HydroParam%etan(r) - HydroParam%etan(l))/MeshParam%CirDistance(iEdge) - EndDo - EndIf - EndDo - - !Superficial + Subsuperficial Velocities !CAYO - Do iEdge = 1, MeshParam%nEdge - HydroParam%um(:,iEdge) = HydroParam%u(:,iEdge) + HydroParam%us(:,iEdge) - EndDo - + ! 11.2 Nullify Velocities Below the Bottom (u=0) + Do iLayer = 1, HydroParam%Smallms(iEdge) - 1.d0 + HydroParam%us(iLayer,iEdge) = 0.d0 + EndDo + EndIf + EndDo + !$OMP end parallel do + EndIf Return End Subroutine uvelocity \ No newline at end of file