Skip to content

Commit 5a2e095

Browse files
committed
prov_fix_acdi_ch
1 parent a89ee90 commit 5a2e095

File tree

3 files changed

+39
-42
lines changed

3 files changed

+39
-42
lines changed

channel/main.f90

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -438,16 +438,16 @@ program main
438438
- (max(u(ip,j,k),0.0d0)*phi(i,j,k) + min(u(ip,j,k),0.0d0)*phi(ip,j,k) - &
439439
min(u(i,j,k),0.0d0)*phi(i,j,k) - max(u(i,j,k),0.0d0)*phi(im,j,k))*dxi &
440440
- (max(v(i,jp,k),0.0d0)*phi(i,j,k) + min(v(i,jp,k),0.0d0)*phi(i,jp,k) - &
441-
min(v(i,j,k),0.0d0)*phi(i,j,k) - max(v(i,j,k),0.0d0)*phi(i,jm,k))*dxi &
441+
min(v(i,j,k),0.0d0)*phi(i,j,k) - max(v(i,j,k),0.0d0)*phi(i,jm,k))*dyi &
442442
- (max(w(i,j,kp),0.0d0)*phi(i,j,k) + min(w(i,j,kp),0.0d0)*phi(i,j,kp) - &
443-
min(w(i,j,k),0.0d0)*phi(i,j,k) - max(w(i,j,k),0.0d0)*phi(i,j,km))*dxi &
443+
min(w(i,j,k),0.0d0)*phi(i,j,k) - max(w(i,j,k),0.0d0)*phi(i,j,km))/dz &
444444
+ gamma*(eps*(phi(ip,j,k)-2.d0*phi(i,j,k)+phi(im,j,k))*ddxi + &
445-
eps*(phi(i,jp,k)-2.d0*phi(i,j,k)+phi(i,jm,k))*ddxi + &
446-
eps*(phi(i,j,kp)-2.d0*phi(i,j,k)+phi(i,j,km))*ddxi)
445+
eps*(phi(i,jp,k)-2.d0*phi(i,j,k)+phi(i,jm,k))*ddyi + &
446+
eps*(phi(i,j,kp)-2.d0*phi(i,j,k)+phi(i,j,km))*ddzi)
447447
! 4.1.3. Compute normals for sharpening term (gradient)
448-
normx(i,j,k) = (psidi(ip,j,k) - psidi(im,j,k))
449-
normy(i,j,k) = (psidi(i,jp,k) - psidi(i,jm,k))
450-
normz(i,j,k) = (psidi(i,j,kp) - psidi(i,j,km))
448+
normx(i,j,k) = 0.5d0*(psidi(ip,j,k) - psidi(im,j,k))*dxi
449+
normy(i,j,k) = 0.5d0*(psidi(i,jp,k) - psidi(i,jm,k))*dyi
450+
normz(i,j,k) = 0.5d0*(psidi(i,j,kp) - psidi(i,j,km))/dz
451451
enddo
452452
enddo
453453
enddo
@@ -508,21 +508,18 @@ program main
508508
normz_zm = 0.5d0*(normz(i,j,km)+normz(i,j,k))
509509
normz_zp = 0.5d0*(normz(i,j,kp)+normz(i,j,k))
510510
! sharpening term
511-
!
512511
rn_01 = normx_xm/(sqrt(normx_xm**2.0d0+normy_xm**2.0d0+normz_xm**2.0d0)+enum)
513512
rn_11 = normx_xp/(sqrt(normx_xp**2.0d0+normy_xp**2.0d0+normz_xp**2.0d0)+enum)
514513
rn_02 = normy_ym/(sqrt(normx_ym**2.0d0+normy_ym**2.0d0+normz_ym**2.0d0)+enum)
515514
rn_12 = normy_yp/(sqrt(normx_yp**2.0d0+normy_yp**2.0d0+normz_yp**2.0d0)+enum)
516515
rn_03 = normz_zm/(sqrt(normx_zm**2.0d0+normy_zm**2.0d0+normz_zm**2.0d0)+enum)
517516
rn_13 = normz_zp/(sqrt(normx_zp**2.0d0+normy_zp**2.0d0+normz_zp**2.0d0)+enum)
518-
!
519517
sharpxm = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(im,j,k))*epsi))**2.0d0)*rn_01)
520518
sharpxp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(ip,j,k)+psidi(i,j,k))*epsi))**2.0d0)*rn_11)
521519
sharpym = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,jm,k))*epsi))**2.0d0)*rn_02)
522520
sharpyp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,jp,k)+psidi(i,j,k))*epsi))**2.0d0)*rn_12)
523521
sharpzm = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,j,km))*epsi))**2.0d0)*rn_03)
524522
sharpzp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,kp)+psidi(i,j,k))*epsi))**2.0d0)*rn_13)
525-
!
526523
rhsphi(i,j,k)=rhsphi(i,j,k)-dxi*((sharpxp-sharpxm)+(sharpyp-sharpym)+(sharpzp-sharpzm))
527524
enddo
528525
enddo
@@ -589,16 +586,16 @@ program main
589586
- (max(u(ip,j,k),0.0d0)*phi_tmp(i,j,k) + min(u(ip,j,k),0.0d0)*phi_tmp(ip,j,k) - &
590587
min(u(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(u(i,j,k),0.0d0)*phi_tmp(im,j,k))*dxi &
591588
- (max(v(i,jp,k),0.0d0)*phi_tmp(i,j,k) + min(v(i,jp,k),0.0d0)*phi_tmp(i,jp,k) - &
592-
min(v(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(v(i,j,k),0.0d0)*phi_tmp(i,jm,k))*dxi &
589+
min(v(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(v(i,j,k),0.0d0)*phi_tmp(i,jm,k))*dyi &
593590
- (max(w(i,j,kp),0.0d0)*phi_tmp(i,j,k) + min(w(i,j,kp),0.0d0)*phi_tmp(i,j,kp) - &
594-
min(w(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(w(i,j,k),0.0d0)*phi_tmp(i,j,km))*dxi &
591+
min(w(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(w(i,j,k),0.0d0)*phi_tmp(i,j,km))/dz &
595592
+ gamma*(eps*(phi_tmp(ip,j,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(im,j,k))*ddxi + &
596-
eps*(phi_tmp(i,jp,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,jm,k))*ddxi + &
597-
eps*(phi_tmp(i,j,kp)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,j,km))*ddxi)
593+
eps*(phi_tmp(i,jp,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,jm,k))*ddyi + &
594+
eps*(phi_tmp(i,j,kp)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,j,km))*ddzi)
598595
! 4.1.3. Compute normals for sharpening term (gradient)
599-
normx(i,j,k) = (psidi(ip,j,k) - psidi(im,j,k))
600-
normy(i,j,k) = (psidi(i,jp,k) - psidi(i,jm,k))
601-
normz(i,j,k) = (psidi(i,j,kp) - psidi(i,j,km))
596+
normx(i,j,k) = 0.5d0*(psidi(ip,j,k) - psidi(im,j,k))*dxi
597+
normy(i,j,k) = 0.5d0*(psidi(i,jp,k) - psidi(i,jm,k))*dyi
598+
normz(i,j,k) = 0.5d0*(psidi(i,j,kp) - psidi(i,j,km))/dz
602599
enddo
603600
enddo
604601
enddo
@@ -723,16 +720,16 @@ program main
723720
- (max(u(ip,j,k),0.0d0)*phi_tmp(i,j,k) + min(u(ip,j,k),0.0d0)*phi_tmp(ip,j,k) - &
724721
min(u(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(u(i,j,k),0.0d0)*phi_tmp(im,j,k))*dxi &
725722
- (max(v(i,jp,k),0.0d0)*phi_tmp(i,j,k) + min(v(i,jp,k),0.0d0)*phi_tmp(i,jp,k) - &
726-
min(v(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(v(i,j,k),0.0d0)*phi_tmp(i,jm,k))*dxi &
723+
min(v(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(v(i,j,k),0.0d0)*phi_tmp(i,jm,k))*dyi &
727724
- (max(w(i,j,kp),0.0d0)*phi_tmp(i,j,k) + min(w(i,j,kp),0.0d0)*phi_tmp(i,j,kp) - &
728-
min(w(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(w(i,j,k),0.0d0)*phi_tmp(i,j,km))*dxi &
725+
min(w(i,j,k),0.0d0)*phi_tmp(i,j,k) - max(w(i,j,k),0.0d0)*phi_tmp(i,j,km))/dz &
729726
+ gamma*(eps*(phi_tmp(ip,j,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(im,j,k))*ddxi + &
730-
eps*(phi_tmp(i,jp,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,jm,k))*ddxi + &
731-
eps*(phi_tmp(i,j,kp)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,j,km))*ddxi)
727+
eps*(phi_tmp(i,jp,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,jm,k))*ddyi + &
728+
eps*(phi_tmp(i,j,kp)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,j,km))*ddzi)
732729
! 4.1.3. Compute normals for sharpening term (gradient)
733-
normx(i,j,k) = (psidi(ip,j,k) - psidi(im,j,k))
734-
normy(i,j,k) = (psidi(i,jp,k) - psidi(i,jm,k))
735-
normz(i,j,k) = (psidi(i,j,kp) - psidi(i,j,km))
730+
normx(i,j,k) = 0.5d0*(psidi(ip,j,k) - psidi(im,j,k))*dxi
731+
normy(i,j,k) = 0.5d0*(psidi(i,jp,k) - psidi(i,jm,k))*dyi
732+
normz(i,j,k) = 0.5d0*(psidi(i,j,kp) - psidi(i,j,km))/dz
736733
enddo
737734
enddo
738735
enddo
@@ -779,18 +776,18 @@ program main
779776
normz_zm = 0.5d0*(normz(i,j,km)+normz(i,j,k))
780777
normz_zp = 0.5d0*(normz(i,j,kp)+normz(i,j,k))
781778
! sharpening term
782-
rn_01 = normx_xm/(sqrt(normx_xm**2.0d0+normy_xm**2.0d0+normz_xm**2.0d0)+enum)
783-
rn_11 = normx_xp/(sqrt(normx_xp**2.0d0+normy_xp**2.0d0+normz_xp**2.0d0)+enum)
784-
rn_02 = normy_ym/(sqrt(normx_ym**2.0d0+normy_ym**2.0d0+normz_ym**2.0d0)+enum)
785-
rn_12 = normy_yp/(sqrt(normx_yp**2.0d0+normy_yp**2.0d0+normz_yp**2.0d0)+enum)
786-
rn_03 = normz_zm/(sqrt(normx_zm**2.0d0+normy_zm**2.0d0+normz_zm**2.0d0)+enum)
787-
rn_13 = normz_zp/(sqrt(normx_zp**2.0d0+normy_zp**2.0d0+normz_zp**2.0d0)+enum)
788-
sharpxm = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(im,j,k))*epsi))**2.0d0)*rn_01)
789-
sharpxp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(ip,j,k)+psidi(i,j,k))*epsi))**2.0d0)*rn_11)
790-
sharpym = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,jm,k))*epsi))**2.0d0)*rn_02)
791-
sharpyp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,jp,k)+psidi(i,j,k))*epsi))**2.0d0)*rn_12)
792-
sharpzm = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,j,km))*epsi))**2.0d0)*rn_03)
793-
sharpzp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,kp)+psidi(i,j,k))*epsi))**2.0d0)*rn_13)
779+
rn_01 = normx_xm/(sqrt(normx_xm**2.d0+normy_xm**2.d0+normz_xm**2.d0)+enum)
780+
rn_11 = normx_xp/(sqrt(normx_xp**2.d0+normy_xp**2.d0+normz_xp**2.d0)+enum)
781+
rn_02 = normy_ym/(sqrt(normx_ym**2.d0+normy_ym**2.d0+normz_ym**2.d0)+enum)
782+
rn_12 = normy_yp/(sqrt(normx_yp**2.d0+normy_yp**2.d0+normz_yp**2.d0)+enum)
783+
rn_03 = normz_zm/(sqrt(normx_zm**2.d0+normy_zm**2.d0+normz_zm**2.d0)+enum)
784+
rn_13 = normz_zp/(sqrt(normx_zp**2.d0+normy_zp**2.d0+normz_zp**2.d0)+enum)
785+
sharpxm = 0.25d0*gamma*((1.d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(im,j,k))*epsi))**2.d0)*rn_01)
786+
sharpxp = 0.25d0*gamma*((1.d0-(tanh(0.25d0*(psidi(ip,j,k)+psidi(i,j,k))*epsi))**2.d0)*rn_11)
787+
sharpym = 0.25d0*gamma*((1.d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,jm,k))*epsi))**2.d0)*rn_02)
788+
sharpyp = 0.25d0*gamma*((1.d0-(tanh(0.25d0*(psidi(i,jp,k)+psidi(i,j,k))*epsi))**2.d0)*rn_12)
789+
sharpzm = 0.25d0*gamma*((1.d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,j,km))*epsi))**2.d0)*rn_03)
790+
sharpzp = 0.25d0*gamma*((1.d0-(tanh(0.25d0*(psidi(i,j,kp)+psidi(i,j,k))*epsi))**2.d0)*rn_13)
794791
rhsphik3(i,j,k)=rhsphik3(i,j,k)-dxi*((sharpxp-sharpxm)+(sharpyp-sharpym)+(sharpzp-sharpzm))
795792
enddo
796793
enddo
@@ -864,9 +861,9 @@ program main
864861
eps*(phi_tmp(i,jp,k)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,jm,k))*ddxi + &
865862
eps*(phi_tmp(i,j,kp)-2.d0*phi_tmp(i,j,k)+phi_tmp(i,j,km))*ddxi)
866863
! 4.1.3. Compute normals for sharpening term (gradient)
867-
normx(i,j,k) = (psidi(ip,j,k) - psidi(im,j,k))
868-
normy(i,j,k) = (psidi(i,jp,k) - psidi(i,jm,k))
869-
normz(i,j,k) = (psidi(i,j,kp) - psidi(i,j,km))
864+
normx(i,j,k) = 0.5d0*(psidi(ip,j,k) - psidi(im,j,k))*dxi
865+
normy(i,j,k) = 0.5d0*(psidi(i,jp,k) - psidi(i,jm,k))*dyi
866+
normz(i,j,k) = 0.5d0*(psidi(i,j,kp) - psidi(i,j,km))/dz
870867
enddo
871868
enddo
872869
enddo
@@ -919,14 +916,12 @@ program main
919916
rn_12 = normy_yp/(sqrt(normx_yp**2.0d0+normy_yp**2.d0+normz_yp**2.0d0)+enum)
920917
rn_03 = normz_zm/(sqrt(normx_zm**2.0d0+normy_zm**2.d0+normz_zm**2.0d0)+enum)
921918
rn_13 = normz_zp/(sqrt(normx_zp**2.0d0+normy_zp**2.d0+normz_zp**2.0d0)+enum)
922-
!
923919
sharpxm = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(im,j,k))*epsi))**2.0d0)*rn_01)
924920
sharpxp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(ip,j,k)+psidi(i,j,k))*epsi))**2.0d0)*rn_11)
925921
sharpym = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,jm,k))*epsi))**2.0d0)*rn_02)
926922
sharpyp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,jp,k)+psidi(i,j,k))*epsi))**2.0d0)*rn_12)
927923
sharpzm = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,k)+psidi(i,j,km))*epsi))**2.0d0)*rn_03)
928924
sharpzp = 0.25d0*gamma*((1.0d0-(tanh(0.25d0*(psidi(i,j,kp)+psidi(i,j,k))*epsi))**2.0d0)*rn_13)
929-
!
930925
rhsphik4(i,j,k)=rhsphik4(i,j,k)-dxi*((sharpxp-sharpxm)+(sharpyp-sharpym)+(sharpzp-sharpzm))
931926
enddo
932927
enddo

channel/module.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module param
55
double precision :: pi, rhoi, twopi
66
double precision :: lx, dx, dxi, ddxi
77
double precision :: ly, dy, dyi, ddyi
8-
double precision :: lz
8+
double precision :: lz, dz, dzi, ddzi
99
double precision, allocatable :: x(:), y(:), z(:), dzi(:), dzci(:), kx(:), ky(:)
1010
double precision, device, allocatable :: kx_d(:), ky_d(:)
1111
integer :: restart,tstart,tfin,dump

channel/readinput.f90

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@ subroutine readinput
4646
pi=twopi/2.d0
4747
dx = lx/nx
4848
dy = ly/ny
49+
dz = lz/nz
4950
dxi = 1.d0/dx
5051
dyi = 1.d0/dy
5152
ddxi = 1.d0/dx/dx
5253
ddyi = 1.d0/dy/dy
54+
ddzi = 1.d0/dz/dz
5355
rhoi=1.d0/rho
5456
eps=epsr*dx
5557
epsi=1.d0/eps

0 commit comments

Comments
 (0)