5 &( f , ndire , nf , npoin2, lt , auxil ,
6 & noleo , nleo , debres, date , time , knolg , mesh)
102 & titcas, at, luspe, namspe, luleo, fmtleo, namleo
111 INTEGER,
INTENT(IN) :: NPOIN2,NLEO,NF,NDIRE, LT
112 INTEGER,
INTENT(IN) :: KNOLG(*), NOLEO(nleo)
113 INTEGER,
INTENT(IN) :: DATE(3),TIME(3)
114 DOUBLE PRECISION,
INTENT(INOUT) :: AUXIL(ndire,nf)
115 DOUBLE PRECISION,
INTENT(IN) :: F(npoin2,ndire,nf)
116 LOGICAL,
INTENT(IN) :: DEBRES
117 TYPE(bief_mesh),
INTENT(INOUT) :: MESH
121 INTEGER ISTAT , II , JF , K , II_ALL
122 INTEGER KAMP1 , KAMP2 , KAMP3 , KAMP4 , KAMP5 , KAMP6 , ILEO
123 INTEGER IBID(1), NELEM, NPSPE
125 CHARACTER(LEN=32) TEXTE(nleo)
128 CHARACTER(LEN=1) C1,C2,C3,C4,C5,C6
129 INTEGER NUM1, NUM2, NUM3, NUM4, NUM5
130 TYPE(bief_mesh) MESHF
132 DOUBLE PRECISION DTETAR
134 CHARACTER(LEN=11) EXTENS
138 DOUBLE PRECISION,
ALLOCATABLE :: F_INTF(:,:)
142 dtetar=
deupi/dble(ndire)
149 IF(kamp1.GT.0) kamp1=knolg(noleo(ileo))
152 kamp2=mod(kamp1,100000)
153 kamp3=mod(kamp2,10000)
154 kamp4=mod(kamp3,1000)
157 c1=char(48+kamp1/100000)
158 c2=char(48+kamp2/10000)
159 c3=char(48+kamp3/1000)
160 c4=char(48+kamp4/100)
163 num=c1//c2//c3//c4//c5//c6
170 c1=char(48+num1/10000)
171 c2=char(48+num2/1000)
175 cc=c1//c2//c3//c4//c5
176 texte(ileo)=
'F'//cc//
'PT2D'//num//
'UNITE SI ' 177 sorleo(ileo) = .true.
182 ALLOCATE(f_intf(nleo,nf))
192 ALLOCATE(meshf%TYPELM)
193 ALLOCATE(meshf%NELEM)
194 ALLOCATE(meshf%NPOIN)
196 ALLOCATE(meshf%IKLE%I(4*nelem))
199 ALLOCATE(meshf%NPTFR)
201 ALLOCATE(meshf%NBOR%I(2*ndire))
203 ALLOCATE(meshf%KNOLG)
204 ALLOCATE(meshf%KNOLG%I(ndire*nf))
205 ALLOCATE(meshf%X_ORIG)
206 ALLOCATE(meshf%Y_ORIG)
220 meshf%IKLE%I(ii)=mod(ii,ndire)+1+(jf-1)*ndire
224 meshf%IKLE%I(ii+nelem)=ii
225 meshf%IKLE%I(ii+2*nelem)=ii+ndire
226 meshf%IKLE%I(ii+3*nelem)=meshf%IKLE%I(ii)+ndire
231 ALLOCATE(meshf%X%R(ndire*nf))
232 ALLOCATE(meshf%Y%R(ndire*nf))
233 meshf%NPTFR = 2*ndire
236 meshf%X%R(ii+ndire*(jf-1))=
freq(jf)*sin(
teta(ii))
237 meshf%Y%R(ii+ndire*(jf-1))=
freq(jf)*cos(
teta(ii))
242 meshf%NBOR%I(ii) = ii
244 DO ii = ndire+1,2*ndire
245 meshf%NBOR%I(ii)=ndire+1+npspe-ii
248 ALLOCATE(meshf%NDS(0:81,7))
250 meshf%NDS(meshf%TYPELM+1,3) = 4
258 IF (namleo(1:1).NE.
' ')
THEN 279 IF(namspe(1:1).NE.
' ')
THEN 280 WRITE(luspe,
'(A1,A72)')
'/', titcas
281 WRITE(luspe,
'(I3)') nleo
283 WRITE(luspe,
'(A32)') texte(ileo)
285 WRITE(luspe,
'(A19)')
'0 0 0 0 0 0 0 0 0 0' 287 DEALLOCATE(meshf%TYPELM)
288 DEALLOCATE(meshf%NELEM)
289 DEALLOCATE(meshf%NPOIN)
290 DEALLOCATE(meshf%IKLE%I)
291 DEALLOCATE(meshf%IKLE)
292 DEALLOCATE(meshf%X%R)
294 DEALLOCATE(meshf%Y%R)
296 DEALLOCATE(meshf%NPTFR)
297 DEALLOCATE(meshf%NBOR%I)
298 DEALLOCATE(meshf%NBOR)
299 DEALLOCATE(meshf%DIM1)
300 DEALLOCATE(meshf%KNOLG%I)
301 DEALLOCATE(meshf%KNOLG)
302 DEALLOCATE(meshf%NDS)
310 IF (namspe(1:1).NE.
' ')
THEN 315 1008
FORMAT(
'TIME = ',f13.5)
327 IF((mesh%ELTCAR%I(ii).NE.0).OR.
328 & (ii.EQ.ii_all))
THEN 331 auxil(k,jf)=f(ii,k,jf)
334 OPEN(id,file=extens(nleo,ileo),
335 & form=
'UNFORMATTED',status=
'NEW')
336 CALL ecri2(auxil,ibid,c,npspe,
'R8',id,
'STD',istat)
349 IF (namleo(1:1).NE.
' ')
THEN 351 OPEN(id,file=extens(nleo,ileo),
352 & form=
'UNFORMATTED',status=
'OLD')
353 CALL lit(auxil,w,ibid,c,npspe,
'R8',id,
'STD',istat)
354 CALL add_data(fmtleo,luleo,texte(ileo),at,lt,ileo.EQ.1,
356 CALL check_call(istat,
'ECRSPE:ADD_DATA')
357 CLOSE(id,status=
'DELETE')
361 f_intf(ileo,jf)=f_intf(ileo,jf)+auxil(k,jf)*dtetar
366 IF (namspe(1:1).NE.
' ')
THEN 368 WRITE(luspe,
'(100(E10.4,2X))')
freq(jf),
369 & (f_intf(ileo,jf),ileo=1,nleo)
374 IF (namleo(1:1).NE.
' ')
THEN 379 auxil(k,jf)=f(ii,k,jf)
382 CALL add_data(fmtleo,luleo,texte(ileo),at,lt,ileo.EQ.1,
384 CALL check_call(istat,
'ECRSPE:ADD_DATA')
387 IF (namspe(1:1).NE.
' ')
THEN 393 f_intf(ileo,jf)=f_intf(ileo,jf)+f(ii,k,jf)*dtetar
395 IF(abs(f_intf(ileo,jf)).LT.1.d-90) f_intf(ileo,jf)=0.d0
399 WRITE(luspe,
'(100(E10.4,2X))')
freq(jf),
400 & (f_intf(ileo,jf),ileo=1,nleo)
subroutine write_mesh(FFORMAT, NFILE, MESH, NPLAN, DATE, TIME, T1, T2, PARALL, NPTIR, NGEO, GEOFORMAT, LATLONG)
subroutine add_data(FFORMAT, FILE_ID, VAR_NAME, TIME, RECORD, FIRST_VAR, VAR_VALUE, N, IERR)
double precision, dimension(:), pointer freq
subroutine ecri2(X, I, C, NVAL, TYPE, CANAL, STD, ISTAT)
type(bief_obj), target stra31
double precision, dimension(:), pointer teta
type(bief_obj), target stra32
subroutine lit(X, W, I, C, NVAL, TYPE, CANAL, STD2, ISTAT)
integer, parameter quadrangle_elt_type
subroutine ecrspe(F, NDIRE, NF, NPOIN2, LT, AUXIL, NOLEO, NLEO, DEBRES, DATE, TIME, KNOLG, MESH)