File: N:\mfix\model\usr_properties.f
1
2
3
4
5
6
7 SUBROUTINE USR_PROP_ROg(IJK)
8
9
10
11 use error_manager, only: init_err_msg, err_msg, flush_err_msg
12 use fldvar, only: t_g, x_g, p_g, ro_g
13 use param1, only: undefined_i, zero, one, half
14 use physprop, only: mw_g, mw_avg, nmax
15 use run, only: units
16 implicit none
17
18
19
20
21 INTEGER, INTENT(IN) :: IJK
22
23
24
25
26 INTEGER :: IER = undefined_i
27 CHARACTER(LEN=40) :: err_prop
28
29
30 = 1
31
32
33 (IJK) = ZERO
34
35 IF (IER /= UNDEFINED_I) THEN
36 write(err_prop, '("gas density")')
37 CALL INIT_ERR_MSG('USR_PROP_ROg')
38 WRITE(ERR_MSG,9999) trim(err_prop)
39 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
40 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
41 'invoked for',/,A,' but this generic error',/,'message exi',&
42 'sts. Either choose a different model or correct',/,'mfix/,'&
43 'model/usr_properties.f')
44 ENDIF
45 RETURN
46 END SUBROUTINE USR_PROP_ROg
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 SUBROUTINE USR_PROP_CPg(IJK)
84
85
86
87 use error_manager, only: init_err_msg, err_msg, flush_err_msg
88 use constant, only: RGAS => GAS_CONST_cal
89 use fldvar, only: t_g, x_g
90 use param1, only: undefined_i, zero, one, half
91 use physprop, only: mw_g, c_pg, nmax
92 use read_thermochemical, only: calc_CpoR
93 use run, only: units
94 implicit none
95
96
97
98
99 INTEGER, INTENT(IN) :: IJK
100
101
102
103
104 INTEGER :: IER = undefined_i
105 CHARACTER(LEN=40) :: err_prop
106
107
108 = 1
109
110
111 (IJK) = ZERO
112
113 IF (IER /= UNDEFINED_I) THEN
114 write(err_prop, '("gas specific heat")')
115 CALL INIT_ERR_MSG('USR_PROP_CPg')
116 WRITE(ERR_MSG,9999) trim(err_prop)
117 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
118 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
119 'invoked for',/,A,' but this generic error',/,'message exi',&
120 'sts. Either choose a different model or correct',/,'mfix/,'&
121 'model/usr_properties.f')
122 ENDIF
123 RETURN
124 END SUBROUTINE USR_PROP_CPg
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 SUBROUTINE USR_PROP_Mug(IJK)
145
146
147
148 use constant, only: to_si
149 use error_manager, only: init_err_msg, err_msg, flush_err_msg
150 use fldvar, only: t_g, x_g, p_g, ro_g
151 use param1, only: undefined_i, zero, one, half
152 use physprop, only: mu_g, mw_g, mw_avg, nmax
153 use run, only: units
154 implicit none
155
156
157
158
159 INTEGER, INTENT(IN) :: IJK
160
161
162
163
164 INTEGER :: IER = undefined_i
165 CHARACTER(LEN=40) :: err_prop
166
167
168 = 1
169
170
171 (IJK) = ZERO
172
173 IF (IER /= UNDEFINED_I) THEN
174 write(err_prop, '("gas viscosity")')
175 CALL INIT_ERR_MSG('USR_PROP_MUG')
176 WRITE(ERR_MSG,9999) trim(err_prop)
177 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
178 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
179 'invoked for',/,A,' but this generic error',/,'message exi',&
180 'sts. Either choose a different model or correct',/,'mfix/,'&
181 'model/usr_properties.f')
182 ENDIF
183 RETURN
184 END SUBROUTINE USR_PROP_Mug
185
186
187
188
189
190
191
192
193
194 SUBROUTINE USR_PROP_Kg(IJK)
195
196
197
198 use error_manager, only: init_err_msg, err_msg, flush_err_msg
199 use fldvar, only: t_g, x_g, p_g, ro_g
200 use param1, only: undefined_i, zero, one, half
201 use physprop, only: k_g, mw_g, mw_avg, nmax
202 use run, only: units
203 implicit none
204
205
206
207
208 INTEGER, INTENT(IN) :: IJK
209
210
211
212
213 INTEGER :: IER = undefined_i
214 CHARACTER(LEN=40) :: err_prop
215
216
217 = 1
218
219
220 (IJK) = ZERO
221
222 IF (IER /= UNDEFINED_I) THEN
223 write(err_prop, '("gas conductivity")')
224 CALL INIT_ERR_MSG('USR_PROP_KG')
225 WRITE(ERR_MSG,9999) trim(err_prop)
226 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
227 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
228 'invoked for',/,A,' but this generic error',/,'message exi',&
229 'sts. Either choose a different model or correct',/,'mfix/,'&
230 'model/usr_properties.f')
231 ENDIF
232 RETURN
233 END SUBROUTINE USR_PROP_Kg
234
235
236
237
238
239
240
241
242
243
244 SUBROUTINE USR_PROP_Difg(IJK,N)
245
246
247
248 use error_manager, only: init_err_msg, err_msg, flush_err_msg
249 use fldvar, only: t_g, x_g, p_g, ro_g, rop_g
250 use param1, only: undefined_i, zero, one, half
251 use physprop, only: dif_g, mw_g, mw_avg, nmax
252 use run, only: units
253 use scales, only: unscale_pressure
254 use toleranc, only: zero_x_gs
255 implicit none
256
257
258
259
260 INTEGER, INTENT(IN) :: IJK
261
262 INTEGER, INTENT(IN) :: N
263
264
265
266
267 INTEGER :: IER = undefined_i
268 CHARACTER(LEN=40) :: err_prop
269
270
271 = 1
272
273
274 (IJK,N) = ZERO
275
276 IF (IER /= UNDEFINED_I) THEN
277 write(err_prop, '("gas phase species ",I2," diffusivity")') N
278 CALL INIT_ERR_MSG('USR_PROP_DIFG')
279 WRITE(ERR_MSG,9999) trim(err_prop)
280 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
281 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
282 'invoked for',/,A,' but this generic error',/,'message exi',&
283 'sts. Either choose a different model or correct',/,'mfix/,'&
284 'model/usr_properties.f')
285 ENDIF
286 RETURN
287 END SUBROUTINE USR_PROP_Difg
288
289
290
291
292
293
294
295
296 SUBROUTINE USR_PROP_ROs(IJK,M)
297
298
299
300 use error_manager, only: init_err_msg, err_msg, flush_err_msg
301 use fldvar, only: ro_s, T_s, X_s
302 use param1, only: undefined_i, zero, one, half
303 use physprop, only: mw_s, nmax
304 use run, only: units
305 implicit none
306
307
308
309
310 INTEGER, INTENT(IN) :: IJK
311
312 INTEGER, INTENT(IN) :: M
313
314
315
316
317 INTEGER :: IER = undefined_i
318 CHARACTER(LEN=40) :: err_prop
319
320
321 = 1
322
323
324 (IJK,M) = ZERO
325
326 IF (IER /= UNDEFINED_I) THEN
327 write(err_prop, '("solids phase ",I2," density")') M
328 CALL INIT_ERR_MSG('USR_PROP_ROS')
329 WRITE(ERR_MSG,9999) trim(err_prop)
330 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
331 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
332 'invoked for',/,A,' but this generic error',/,'message exi',&
333 'sts. Either choose a different model or correct',/,'mfix/,'&
334 'model/usr_properties.f')
335 ENDIF
336 RETURN
337 END SUBROUTINE USR_PROP_ROs
338
339
340
341
342
343
344
345
346
347
348
349
350 SUBROUTINE USR_PROP_CPs(IJK, M)
351
352
353 use error_manager, only: init_err_msg, err_msg, flush_err_msg
354 use constant, only: RGAS => GAS_CONST_cal
355 use fldvar, only: t_s, x_s
356 use param1, only: undefined_i, zero, one, half
357 use physprop, only: mw_s, c_ps, nmax
358 use read_thermochemical, only: calc_CpoR
359 use run, only: units
360 implicit none
361
362
363
364
365 INTEGER, INTENT(IN) :: IJK
366
367 INTEGER, INTENT(IN) :: M
368
369
370
371
372 INTEGER :: IER = undefined_i
373 CHARACTER(LEN=40) :: err_prop
374
375
376 = 1
377
378
379 (IJK,M) = ZERO
380
381 IF (IER /= UNDEFINED_I) THEN
382 write(err_prop, '("solids phase ",I2," specific heat")') M
383 CALL INIT_ERR_MSG('USR_PROP_CPs')
384 WRITE(ERR_MSG,9999) trim(err_prop)
385 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
386 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
387 'invoked for',/,A,' but this generic error',/,'message exi',&
388 'sts. Either choose a different model or correct',/,'mfix/,'&
389 'model/usr_properties.f')
390 ENDIF
391 RETURN
392 END SUBROUTINE USR_PROP_CPs
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415 SUBROUTINE USR_PROP_Mus(IJK,M)
416
417
418
419 use constant, only: to_si
420 use error_manager, only: init_err_msg, err_msg, flush_err_msg
421 use fldvar, only: t_s, x_s, rop_s, ro_s, ep_s, p_s
422 use param1, only: undefined_i, zero, one, half
423 use physprop, only: mw_s, nmax
424 use run, only: units
425 use visc_s, only: mu_s, lambda_s
426 implicit none
427
428
429
430
431 INTEGER, INTENT(IN) :: IJK
432
433 INTEGER, INTENT(IN) :: M
434
435
436
437
438 INTEGER :: IER = undefined_i
439 CHARACTER(LEN=40) :: err_prop
440
441
442 = 1
443
444
445 (IJK,M) = ZERO
446 LAMBDA_S(IJK,M) = ZERO
447 P_S(IJK,M) = ZERO
448
449 IF (IER /= UNDEFINED_I) THEN
450 write(err_prop, '("solids phase ",I2," viscosity")') M
451 CALL INIT_ERR_MSG('USR_PROP_Mus')
452 WRITE(ERR_MSG,9999) trim(err_prop)
453 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
454 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
455 'invoked for',/,A,' but this generic error',/,'message exi',&
456 'sts. Either choose a different model or correct',/,'mfix/,'&
457 'model/usr_properties.f')
458 ENDIF
459 RETURN
460 END SUBROUTINE USR_PROP_Mus
461
462
463
464
465
466
467
468
469 SUBROUTINE USR_PROP_Ks(IJK,M)
470
471
472
473 use error_manager, only: init_err_msg, err_msg, flush_err_msg
474 use fldvar, only: ro_s, T_s, X_s, ep_s, ep_g, rop_s
475 use param1, only: undefined_i, zero, one, half
476 use physprop, only: mw_s, nmax, k_s, k_g
477 use run, only: units
478 use toleranc, only: dil_ep_s
479 implicit none
480
481
482
483
484 INTEGER, INTENT(IN) :: IJK
485
486 INTEGER, INTENT(IN) :: M
487
488
489
490
491 INTEGER :: IER = undefined_i
492 CHARACTER(LEN=40) :: err_prop
493
494
495 = 1
496
497
498 (IJK,M) = ZERO
499
500 IF (IER /= UNDEFINED_I) THEN
501 write(err_prop, '("solids phase ",I2," conductivity")') M
502 CALL INIT_ERR_MSG('USR_PROP_KS')
503 WRITE(ERR_MSG,9999) trim(err_prop)
504 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
505 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
506 'invoked for',/,A,' but this generic error',/,'message exi',&
507 'sts. Either choose a different model or correct',/,'mfix/,'&
508 'model/usr_properties.f')
509 ENDIF
510 RETURN
511 END SUBROUTINE USR_PROP_Ks
512
513
514
515
516
517
518
519
520
521
522
523
524
525 SUBROUTINE USR_PROP_Difs(IJK,M,N)
526
527
528
529 use error_manager, only: init_err_msg, err_msg, flush_err_msg
530 use fldvar, only: ro_s, T_s, X_s, ep_s, ep_g, rop_s
531 use param1, only: undefined_i, zero, one, half
532 use physprop, only: mw_s, nmax, dif_s
533 use run, only: units
534 implicit none
535
536
537
538
539 INTEGER, INTENT(IN) :: IJK
540
541 INTEGER, INTENT(IN) :: M
542
543 INTEGER, INTENT(IN) :: N
544
545
546
547
548 INTEGER :: IER = undefined_i
549 CHARACTER(LEN=40) :: err_prop
550
551
552 = 1
553
554
555 (IJK,M,N) = ZERO
556
557 IF (IER /= UNDEFINED_I) THEN
558 write(err_prop, '("solids phase ",I2," species ", I2, &
559 " diffusivity")') M, N
560 CALL INIT_ERR_MSG('USR_PROP_DIFS')
561 WRITE(ERR_MSG,9999) trim(err_prop)
562 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
563 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
564 'invoked for',/,A,' but this generic error',/,'message exi',&
565 'sts. Either choose a different model or correct',/,'mfix/,'&
566 'model/usr_properties.f')
567 ENDIF
568 RETURN
569 END SUBROUTINE USR_PROP_Difs
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585 SUBROUTINE USR_PROP_Gama(IJK,M)
586
587
588
589 use error_manager, only: init_err_msg, err_msg, flush_err_msg
590 use energy, only: gama_gs
591 use fldvar, only: u_g, v_g, w_g, u_s, v_s, w_s
592 use fldvar, only: ep_s, ep_g, rop_s, rop_g, ro_s, ro_g
593 use fldvar, only: T_s, T_g, d_p
594 Use fun_avg, only: avg_x_e, avg_y_n, avg_z_t
595 use functions, only: im_of, jm_of, km_of
596 use indices, only: i_of
597 use param1, only: undefined_i, zero, one, half
598 use param1, only: small_number, large_number
599 use physprop, only: mu_g, k_g, c_pg
600 use run, only: units
601 use rxns, only: r_phase
602 implicit none
603
604
605
606
607 INTEGER, INTENT(IN) :: IJK
608
609 INTEGER, INTENT(IN) :: M
610
611
612
613
614 INTEGER :: IER = undefined_i
615 CHARACTER(LEN=50) :: err_prop
616
617
618 = 1
619
620
621 (IJK,M) = ZERO
622
623 IF (IER /= UNDEFINED_I) THEN
624 write(err_prop, '("gas-solids phase ",I2," heat transfer ", &
625 "coefficient")') M
626 CALL INIT_ERR_MSG('USR_PROP_Gama')
627 WRITE(ERR_MSG,9999) trim(err_prop)
628 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
629 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
630 'invoked for',/,A,' but this generic error',/,'message exi',&
631 'sts. Either choose a different model or correct',/,'mfix/,'&
632 'model/usr_properties.f')
633 ENDIF
634 RETURN
635 END SUBROUTINE USR_PROP_GAMA
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655 SUBROUTINE USR_PROP_Fss(IJK,L,M)
656
657
658
659 use constant, only: segregation_slope_coefficient
660 use drag, only: f_ss
661 use error_manager, only: init_err_msg, err_msg, flush_err_msg
662 use fldvar, only: u_s, v_s, w_s
663 use fldvar, only: ep_s, ep_g, rop_s, ro_s
664 use fldvar, only: d_p, p_star
665 use fun_avg, only: avg_x_e, avg_y_n, avg_z_t
666 use functions, only: funlm
667 use functions, only: im_of, jm_of, km_of
668 use indices, only: i_of
669 use param1, only: undefined_i, zero, one, half
670 use param1, only: small_number, large_number
671 use physprop, only: smax, close_packed
672 use run, only: units
673 use rdf, only: g_0
674 implicit none
675
676
677
678
679 INTEGER, INTENT(IN) :: IJK
680
681 INTEGER, INTENT(IN) :: M, L
682
683
684
685
686
687 INTEGER :: LM
688
689 INTEGER :: IER = undefined_i
690 CHARACTER(LEN=60) :: err_prop
691
692
693 = 1
694
695
696 = FUNLM(L,M)
697 F_SS(IJK,LM) = ZERO
698
699 IF (IER /= UNDEFINED_I) THEN
700 write(err_prop, '("solids phase ",I2," solids phase ", I2, &
701 " drag coefficient")') M, L
702 CALL INIT_ERR_MSG('USR_PROP_FSS')
703 WRITE(ERR_MSG,9999) trim(err_prop)
704 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
705 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
706 'invoked for',/,A,' but this generic error',/,'message exi',&
707 'sts. Either choose a different model or correct',/,'mfix/,'&
708 'model/usr_properties.f')
709 ENDIF
710 RETURN
711 END SUBROUTINE USR_PROP_FSS
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754 SUBROUTINE USR_PROPERTIES(lprop, IJK, M, N)
755
756
757
758 use constant, only: pi, gas_const, gravity
759 use error_manager
760
761 use fldvar, only: u_g, v_g, w_g, ep_g
762 use fldvar, only: u_s, v_s, w_s, ep_s
763 use fldvar, only: p_g, rop_g, ro_g, T_g, X_g
764 use fldvar, only: p_s, rop_s, ro_s, T_s, X_s
765 use fldvar, only: d_p, theta_m
766
767 use fldvar, only: scalar
768 use functions
769 use geometry
770
771 use indices, only: i_of, j_of, k_of
772 use indices, only: im1, ip1, jm1, jp1, km1, kp1
773
774 use param1, only: zero, one, half, undefined, undefined_i
775 use physprop, only: k_g, c_pg, dif_g, mu_g
776 use physprop, only: k_s, c_ps, dif_s
777 use scalars, only: phase4scalar
778 use visc_s, only: mu_s, lambda_s
779 use usr_prop
780 IMPLICIT NONE
781
782
783
784
785 INTEGER, INTENT(IN) :: lprop
786
787 INTEGER, INTENT(IN) :: IJK
788
789 INTEGER, INTENT(IN) :: M
790
791
792 INTEGER, INTENT(IN) :: N
793
794
795
796
797 INTEGER :: IER
798 CHARACTER(len=40):: err_prop
799
800
801
802 = undefined_i
803
804
805
806
807
808
809 SELECT CASE(lprop)
810
811
812 CASE (GAS_DENSITY)
813
814 = 1
815 write(err_prop, '("gas density")')
816
817
818
819 CASE (GAS_SPECIFICHEAT)
820
821 = 1
822 write(err_prop, '("gas specific heat")')
823
824
825
826
827
828
829 CASE (GAS_VISCOSITY)
830
831 = 1
832 write(err_prop, '("gas viscosity")')
833
834
835
836 CASE (GAS_CONDUCTIVITY)
837
838 = 1
839 write(err_prop, '("gas conductivity")')
840
841
842
843 CASE (GAS_DIFFUSIVITY)
844
845 = 1
846 write(err_prop, '("gas diffusivity")')
847
848
849
850 CASE (SOLIDS_DENSITY)
851
852 = 1
853 write(err_prop, '("solids phase ",I2," density")') M
854
855
856
857 CASE (SOLIDS_SPECIFICHEAT)
858
859 = 1
860 write(err_prop, '("solids phase ",I2," specific heat")') M
861
862
863
864
865
866
867 CASE (SOLIDS_VISCOSITY)
868
869 = 1
870 write(err_prop, '("solids phase ", I2," viscosity")') M
871
872
873
874
875
876 CASE (SOLIDS_CONDUCTIVITY)
877
878 = 1
879 write(err_prop, '("solids phase ",I2," conductivity")') M
880
881
882
883 CASE (SOLIDS_DIFFUSIVITY)
884
885 = 1
886 write(err_prop, '("solids phase",I2," diffusivity")') M
887
888
889
890 CASE (GASSOLIDS_HEATTRANSFER)
891
892 = 1
893 write(err_prop, &
894 '("gas-solids phase ",I2," heat transfer coefficient")') M
895
896
897
898 CASE (GASSOLIDS_DRAG)
899
900 = 1
901 write(err_prop, &
902 '("gas-solids phase ",I2," drag coefficient")') M
903
904
905
906 CASE (SOLIDSSOLIDS_DRAG)
907
908 = 1
909 write(err_prop, &
910 '("solids-solids phases ",I2," & ",I2," drag coefficient")') M, N
911
912
913
914 END SELECT
915
916 IF (IER /= UNDEFINED_I) THEN
917 CALL INIT_ERR_MSG('USR_PROPERTIES')
918 WRITE(ERR_MSG,9999) trim(err_prop)
919 CALL FLUSH_ERR_MSG(ABORT=.TRUE.)
920
921 9999 FORMAT('ERROR 9999: The user-defined properties routine was ',&
922 'invoked for',/,A,' but this generic error',/,'message exits.',&
923 'Either choose a different model or correct',/,'mfix/model/',&
924 'usr_properties.f')
925 ENDIF
926
927 RETURN
928 END SUBROUTINE USR_PROPERTIES
929
930