File: /nfs/home/0/users/jenkins/mfix.git/model/dqmom/usr_dqmom.f
1
2
3
4
5
6
7
8
9
10 SUBROUTINE USR_DQMOM
11
12 USE run, only: CALL_DQMOM, TIME, DT
13 USE scalars, only: NSCALAR
14 USE scalars, only: IJK_INDEX, YSTART
15 USE fldvar, only: ROP_s, RO_s, SCALAR
16
17 USE geometry
18 USE indices
19 USE compar
20 USE usr
21 USE functions
22
23 IMPLICIT NONE
24
25
26 INTEGER :: IJK
27
28 double precision t1,t2
29
30 double precision eps
31
32 double precision h1,hmin
33 integer nok, nbad,I,J,K
34 double precision YY,XX
35 double precision max1, min1, max_min
36
37 IF(.NOT.CALL_DQMOM) RETURN
38
39
40 IF(time<= 1E-15) THEN
41 t1 =time
42 t2= time
43 ELSE
44 t1= time-dt
45 t2= time
46 ENDIF
47
48
49 eps=1.0E-3
50 h1=1.0E-4
51 hmin=0
52 nok=0
53 nbad=0
54
55
56
57
58 DO IJK = ijkstart3, ijkend3
59
60 IF(.NOT.FLUID_AT(IJK)) CYCLE
61
62 DO I=1,Nscalar
63 ystart(I)=ROP_s(IJK,I)/RO_S(IJK,I)
64 ENDDO
65
66 DO I=Nscalar+1,2*Nscalar
67 ystart(I)=Scalar(IJK,I-Nscalar)
68 ENDDO
69
70 IJK_INDEX=IJK
71 max1=ystart(1)
72
73 DO K=2,Nscalar
74 max1=MAX(max1,ystart(K))
75 ENDDO
76
77 min1=ystart(1)
78
79 DO K=2,Nscalar
80 min1=MIN(min1,ystart(K))
81 ENDDO
82
83
84 IF(max1>1.0e-3) THEN
85 call odeint(ystart,DIM_Scalar2,t1,t2,eps,h1, hmin,nok,nbad)
86 ENDIF
87
88 DO I=1,Nscalar
89 ROP_s(IJK,I) = ystart(I)*RO_S(IJK,I)
90 Scalar(IJK,I) = ystart(I+Nscalar)
91 ENDDO
92
93 ENDDO
94
95 RETURN
96 END SUBROUTINE USR_DQMOM
97