5 &(irec,at,z,u,v,w,
href,nplref,plinf,nc2dh,npoin2,nplan,ncou,
6 & fformat,var,shz,nva3,tab,textelu)
77 INTEGER,
INTENT(IN) :: NC2DH,NPOIN2,NPLAN
78 INTEGER,
INTENT(IN) :: NCOU(nc2dh)
79 INTEGER,
INTENT(IN) :: IREC
80 DOUBLE PRECISION,
INTENT(IN) :: U(npoin2,nplan)
81 DOUBLE PRECISION,
INTENT(IN) :: V(npoin2,nplan)
82 DOUBLE PRECISION,
INTENT(IN) :: W(npoin2,nplan)
83 DOUBLE PRECISION,
INTENT(IN) :: Z(npoin2,nplan)
84 DOUBLE PRECISION,
INTENT(INOUT) :: AT
85 DOUBLE PRECISION,
INTENT(IN) :: HREF(9)
86 INTEGER ,
INTENT(IN) :: NPLREF(9)
87 INTEGER ,
INTENT(INOUT) :: PLINF(npoin2)
88 type(bief_obj),
INTENT(INOUT) :: tab
89 INTEGER,
INTENT(IN) :: NVA3
90 CHARACTER(LEN=8) :: FFORMAT
91 DOUBLE PRECISION,
INTENT(INOUT) :: VAR(npoin2),SHZ(npoin2)
92 CHARACTER(LEN=32),
INTENT(IN) :: TEXTELU(100)
99 CHARACTER(LEN=32) :: VAR_NAME
112 IF (nplref(ic).GE.1)
THEN 113 var(i) = var(i) + z(i,nplref(ic))
121 IF (z(i,j).LE.var(i)) plinf(i) = j
130 shz(i) = ( var(i) -z(i,plinf(i)))
131 & / max((z(i,plinf(i)+1)-z(i,plinf(i))),1.d-6)
140 var(i) = min(shz(i),1.d0-shz(i)) + 1.d-6
142 IF (
lng.EQ.
lng_fr) var_name =
'INDICATEUR DOM. ' 143 IF (
lng.EQ.
lng_en) var_name =
'DOMAIN INDICATOR ' 144 CALL add_data(fformat,canal,var_name,at,irec,.true.,var,
146 CALL check_call(ierr,
'COUPEH:ADD_DATA:DOM')
152 IF (shz(i).GT.-1.d-6.AND.shz(i).LT.1.000001d0)
154 & prez((plinf(i)-1)*npoin2+i)*(1.-shz(i))
155 & + prez( plinf(i) *npoin2+i)* shz(i)
157 CALL add_data(fformat,canal,textelu(1),at,irec,.false.,var,
159 CALL check_call(ierr,
'COUPEH:ADD_DATA:J')
166 IF (shz(i).GT.-1.d-6.AND.shz(i).LT.1.000001d0)
167 & var(i) = u(i,plinf(i))*(1.-shz(i))+u(i,plinf(i)+1)*shz(i)
169 var_name = textelu(2)
170 CALL add_data(fformat,canal,var_name,at,irec,.false.,var,
172 CALL check_call(ierr,
'COUPEH:ADD_DATA:U')
179 IF (shz(i).GT.-1.d-6.AND.shz(i).LT.1.000001d0)
180 & var(i) = v(i,plinf(i))*(1.-shz(i))+v(i,plinf(i)+1)*shz(i)
182 var_name = textelu(3)
183 CALL add_data(fformat,canal,var_name,at,irec,.false.,var,
185 CALL check_call(ierr,
'COUPEH:ADD_DATA:V')
190 var(i) = w(i,plinf(i))*(1.-shz(i))+w(i,plinf(i)+1)*shz(i)
192 var_name = textelu(4)
193 CALL add_data(fformat,canal,var_name,at,irec,.false.,var,
195 CALL check_call(ierr,
'COUPEH:ADD_DATA:W')
203 IF (shz(i).GT.-1.d-6.AND.shz(i).LT.1.000001d0)
205 & tab%ADR(j-4)%P%R((plinf(i)-1)*npoin2+i)*(1.-shz(i))
206 & + tab%ADR(j-4)%P%R( plinf(i) *npoin2+i)* shz(i)
208 CALL add_data(fformat,canal,textelu(j),at,irec,.false.,var,
210 CALL check_call(ierr,
'COUPEH:ADD_DATA:J')
subroutine add_data(FFORMAT, FILE_ID, VAR_NAME, TIME, RECORD, FIRST_VAR, VAR_VALUE, N, IERR)
integer, parameter lng_en
integer, parameter lng_fr
Y. AUDOUIN & J-M HERVOUET (EDF LAB, LNHE) 09/05/2014 V7P0 First version.
double precision, dimension(:), pointer z
subroutine coupeh(IREC, AT, Z, U, V, W, HREF, NPLREF, PLINF, NC2DH, NPOIN2, NPLAN, NCOU, FFORMAT, VAR, SHZ, NVA3, TAB, TEXTELU)