51
52
53
54 USE sensor_mod
55
56
57
58#include "implicit_f.inc"
59
60
61
62#include "mvsiz_p.inc"
63
64
65
66#include "parit_c.inc"
67
68
69
70 INTEGER, INTENT(in) :: JFT,JLT
71 INTEGER, INTENT(in) :: ITASK
72 INTEGER, DIMENSION(*), INTENT(in) :: IPART
73
74 my_real,
DIMENSION(*),
INTENT(in) :: ei,ek
75 my_real,
DIMENSION(*),
INTENT(in) :: off
76 type (sensors_),INTENT(INOUT) :: SENSORS
77
78
79
80 INTEGER I,MX,II,J,IC,NEL,IJK
81 INTEGER :: K,IPART_SENS,LOCAL_INDEX
82 my_real,
DIMENSION(MVSIZ,2) :: fstparit
83 INTEGER :: NGR_SENSOR
84
85 ngr_sensor=sensors%NGR_SENSOR(itask+1)
86 IF(iparit>0) THEN
87 IF(sensors%SENS_GROUP(ngr_sensor)%NUM_PART>0) THEN
88 IF(sensors%SENS_GROUP(ngr_sensor)%NUM_PART==1) THEN
89 DO i=jft,jlt
90 IF( off(i)/=zero ) THEN
91 fstparit(i,1) = ei(i)
92 fstparit(i,2) = ek(i)
93 ELSE
94 fstparit(i,1) = zero
95 fstparit(i,2) = zero
96 ENDIF
97 ENDDO
98 nel = jlt-jft+1
99 k = sensors%SENS_GROUP(ngr_sensor)%PART(1,3)
100 ijk = itask+1
101 CALL sum_6_float(1,nel,fstparit(1,1),sensors%SENSOR_STRUCT(k)%FBSAV6_SENS(1,1,ijk),2)
102 CALL sum_6_float(1,nel,fstparit(1,2),sensors%SENSOR_STRUCT(k)%FBSAV6_SENS(2,1,ijk),2)
103 ELSEIF(sensors%SENS_GROUP(ngr_sensor)%NUM_PART>1) THEN
104
105 DO j=1,sensors%SENS_GROUP(ngr_sensor)%NUM_PART
106 ipart_sens = sensors%SENS_GROUP(ngr_sensor)%PART(j,1)
108 DO i=jft,jlt
109 mx=ipart(i)
110 IF( (ipart_sens==mx).AND.(off(i)/=zero) ) THEN
114 ENDIF
115 ENDDO
116
117 k = sensors%SENS_GROUP(ngr_sensor)%PART(j,3)
118
121 ENDDO
122 ENDIF
123 ENDIF
124 ENDIF
125
126 RETURN
subroutine local_index(il, ig, nodes, n)
subroutine sum_6_float(jft, jlt, f, f6, n)