File: N:\mfix\model\adjust_theta.f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 SUBROUTINE ADJUST_THETA(M, IER)
17
18
19
20
21 USE param1, only: zero
22 USE toleranc, only: zero_ep_s
23 USE constant, only: pi, to_si
24
25 USE fldvar, only: theta_m
26
27 USE fldvar, only: ro_s
28
29 USE fldvar, only: d_p
30
31 USE physprop, only: smax
32
33 USE run, only: kt_type
34 USE run, only: kt_type_enum
35 USE run, only: lun_1984
36 USE run, only: simonin_1996
37 USE run, only: ahmadi_1995
38 USE run, only: gd_1999
39 USE run, only: gtsh_2012
40 USE run, only: ia_2005
41 USE run, only: ghd_2007
42
43 USE compar
44 USE exit, only: mfix_exit
45 USE functions
46 USE geometry
47 USE indices
48
49 IMPLICIT NONE
50
51
52
53
54 INTEGER, INTENT(IN) :: M
55
56 INTEGER, INTENT(INOUT) :: IER
57
58
59
60
61 INTEGER :: IJK
62
63 INTEGER :: L
64
65
66 DOUBLE PRECISION :: M_PM, D_PM
67
68 DOUBLE PRECISION :: smallTheta
69
70
71 = 0
72 smallTheta = (to_SI)**4 * ZERO_EP_S
73
74 DO IJK = IJKSTART3, IJKEND3
75 IF ( FLUID_AT(IJK) ) THEN
76
77 SELECT CASE(KT_TYPE_ENUM)
78 CASE (LUN_1984, SIMONIN_1996, AHMADI_1995, GD_1999, &
79 GTSH_2012)
80 IF (THETA_M(IJK,M) < smallTheta) &
81 THETA_M(IJK,M) = smallTheta
82
83 CASE (IA_2005)
84 D_PM = D_P(IJK,M)
85 M_PM = (PI/6.d0)*(D_PM**3)*RO_S(IJK,M)
86 IF (THETA_M(IJK,M) < smallTheta*M_PM) &
87 THETA_M(IJK,M) = smallTheta*M_PM
88
89 CASE (GHD_2007)
90 M_PM = ZERO
91 DO L = 1,SMAX
92 D_PM = D_P(IJK,L)
93 M_PM = M_PM +(PI/6.d0)*(D_PM**3)*RO_S(IJK,L)
94 ENDDO
95 M_PM = M_PM/DBLE(SMAX)
96 IF (THETA_M(IJK,M) < smallTheta*M_PM) &
97 THETA_M(IJK,M) = smallTheta*M_PM
98
99 CASE DEFAULT
100
101 WRITE (*, '(A)') 'ADJUST_THETA'
102 WRITE (*, '(A,A)') 'Unknown KT_TYPE: ', KT_TYPE
103 call mfix_exit(myPE)
104 END SELECT
105 ENDIF
106 ENDDO
107
108 RETURN
109 END SUBROUTINE ADJUST_THETA
110
111