31
32
33
34#include "implicit_f.inc"
35
36
37
38#include "mvsiz_p.inc"
39
40
41
42
43
44
45
46 INTEGER LFT,LLT,IKT,MTN
48 . et(*),g(*)
49
50
51
52 INTEGER I, J,K
54 . fac_l,fac_u,fac(mvsiz),ete,fac_min,fac_max
55
56 fac_l=fiveem2
57 DO i=lft,llt
58 fac(i) = one
59 END DO
60
61 IF (ikt == 2 ) THEN
62 SELECT CASE (mtn)
63 CASE (2,36)
64
65 CASE (42,62,69,82,88,92,94,95,111)
66
67
68 DO i=lft,llt
69 IF (et(i)<=one) THEN
70 fac(i)=
max(fac_l,et(i))
71 ELSE
72
73 fac(i)= zep2+et(i)
74 END IF
75
76
77 END DO
78 CASE(38,70,90)
79 fac_l=em02
80
81
82 DO i=lft,llt
83 IF (et(i) <= one) THEN
84 fac(i)=
max(fac_l,et(i))
85 ELSE
86
87 fac(i)=one
88 END IF
89
90
91 END DO
92
93 CASE (71)
94 fac_l=em02
95 DO i=lft,llt
96 IF (et(i)<=one) THEN
97 fac(i)=
max(fac_l,et(i))
98 END IF
99 END DO
100 END SELECT
101
102 ELSE
103
104 fac_u=one*ikt
105 SELECT CASE (mtn)
106 CASE (2,36)
107
108 CASE (42,62,69,82,88,92,94,111)
109 DO i=lft,llt
110 IF (et(i)<=one) THEN
111 fac(i)=
max(fac_l,et(i))
112 ELSE
113 fac(i)=
min(fac_u,et(i))
114 END IF
115 ENDDO
116 CASE(38,70,90)
117 fac_l=fac_l/ikt
118 DO i=lft,llt
119 IF (et(i)<=one) THEN
120 fac(i)=
max(fac_l,et(i))
121 ELSE
122 fac(i)=
min(fac_u,et(i))
123 END IF
124 ENDDO
125 END SELECT
126 END IF
127
128 DO i=lft,llt
129 g(i)=fac(i)*g(i)
130 ENDDO
131
132 RETURN