File: RELATIVE:/../../../mfix.git/model/cal_d.f

1     
2     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
3     !SUBROUTINE CAL_D calculates shear velocity
4     !
5     
6           SUBROUTINE CAL_D(V_sh)
7     
8           USE param
9           USE param1
10           USE parallel
11           USE matrix
12           USE scales
13           USE constant
14           USE physprop
15           USE fldvar
16           USE visc_s
17           USE rxns
18           USE toleranc
19           USE geometry
20           USE indices
21           USE is
22           USE tau_s
23           USE bc
24           USE vshear
25           USE compar
26           USE fun_avg
27           USE functions
28     
29           DOUBLE PRECISION V_sh,dis
30     !     DOUBLE PRECISION xdist(IMAX2,JMAX2)
31     !     DOUBLE PRECISION xdist3(IMAX2,JMAX2,KMAX2),cnter3(IMAX2,JMAX2,KMAX2)
32     
33     !//SP Note the rational behind using global direction in I direction. This is to ensure
34     !     correctness in the way distances are calculated in the serial version and also
35     !     to give the capability to perform calculations over additional ghost layers in
36     !     to avoid if checks and communication
37           DOUBLE PRECISION xdist(IMIN3:IMAX3,JSTART3:JEND3)
38           DOUBLE PRECISION xdist3(IMIN3:IMAX3,JSTART3:JEND3,KSTART3:KEND3)
39     
40           INTEGER IJK,I1,J1,K1,I,J,K
41     
42           IF (NO_K) THEN
43     
44     !calculate distances
45           DO  J1= JSTART3, JEND3
46             xdist(1,J1)=1d0/(ODX(1))
47             if(imin3.ne.imin2) xdist(IMIN3,J1)=-1d0/(ODX(IMIN3))
48             DO  I1 = 2, IMAX3
49             xdist(I1,J1)=1d0/(ODX(I1))+xdist((I1-1),J1)
50             END DO
51           END DO
52     
53           DO  IJK= ijkstart3, ijkend3
54               I = I_OF(IJK)
55               J = J_OF(IJK)
56     
57             dis=xdist(I,J)
58     
59     !shear velocity alligned u momentum cells
60     
61             VSHE(IJK)=V_sh-2d0*(1d0-(dis-(1d0/ODX(I))/xlength))*V_sh
62     
63     !shear velocity alligned with scalar, v, w momentum cells
64     
65             VSH(IJK)=V_sh-2d0*(1d0-(dis-(1d0/ODX(I))/xlength))*V_sh&
66             -2d0*(1d0/(2d0*ODX(I)*xlength))*V_sh
67     
68           END DO
69     
70     
71           ELSE
72     
73     !calculate distances
74           DO K1=KSTART3,KEND3
75             DO J1= JSTART3, JEND3
76               IF (DEAD_CELL_AT(1,J1,K1)) CYCLE  ! skip dead cells
77               xdist3(1,J1,K1)=1d0/(ODX(1))
78               if(imin3.ne.imin2) xdist(IMIN3,J1)=-1d0/(ODX(IMIN3))
79               DO  I1 = 2, IMAX3
80                IF (DEAD_CELL_AT(I1,J1,K1)) CYCLE  ! skip dead cells
81                xdist3(I1,J1,K1)=1d0/(ODX(I1))+xdist3((I1-1),J1,K1)
82               END DO
83             END DO
84           END DO
85     
86     
87           DO  IJK= ijkstart3, ijkend3
88               I = I_OF(IJK)
89               J = J_OF(IJK)
90               K = K_OF(IJK)
91     
92               dis=xdist3(I,J,K)
93     
94     !shear velocity alligned u momentum cells
95     
96             VSHE(IJK)=V_sh-2d0*(1d0-(dis-(1d0/ODX(I))/xlength))*V_sh
97     
98     !shear velocity alligned with scalar, v, w momentum cells
99     
100             VSH(IJK)=V_sh-2d0*(1d0-(dis-(1d0/ODX(I))/xlength))*V_sh&
101             -2d0*(1d0/(2d0*ODX(I)*xlength))*V_sh
102     
103           END DO
104     
105           END IF
106           RETURN
107           END SUBROUTINE CAL_D
108     
109     !// Comments on the modifications for DMP version implementation
110     !// 001 Include header file and common declarations for parallelization
111     !// 350 Changed do loop limits: 1,ijkmax2-> ijkstart3, ijkend3
112     !// 350 1206 change do loop limits: 1,kmax2->kstart3,kend3
113     
114