44 2 FSAV ,IN ,STIFN ,STIFR ,FANI ,
45 3 LPBY ,NPBY ,WEIGHT ,MS ,V ,
46 4 IGRSURF ,BUFSF ,ICODR ,ISKEW ,SKEW ,
47 5 KIND ,IAD_RBY,FR_RBY6,RBY6 ,IRBKIN_L,
48 6 NRBYKIN_L,NATIV_SMS,DIMFB,FBSAV6 ,STABSEN ,
49 7 TABSENSOR,NODREAC,FTHREAC,CPTREAC,DAMPR ,
50 8 SDAMP ,DAMP ,NDAMP_VREL,ID_DAMP_VREL,IGRNOD,
51 9 TAGSLV_RBY,IPARIT,WFEXT,NDAMP_VREL_RBYG,SIZE_RBY6_C,
58 USE damping_vref_rby_mod
59 USE damping_vref_rby_stiff_mod
63#include "implicit_f.inc"
73#include "timeri_c.inc"
74#include "intstamp_c.inc"
78 INTEGER,
INTENT(IN) :: NHIER_RBY
79 TYPE(TIMER_),
INTENT(inout) :: TIMERS
80 INTEGER ICODR(*),ISKEW(*),WEIGHT(*),LPBY(*),NPBY(NNPBY,*),
81 . KIND(NRBYKIN),FR_RBY6(*),IAD_RBY(*),IRBKIN_L(*),
82 . NRBYKIN_L, NATIV_SMS(*),DIMFB,STABSEN,TABSENSOR(*),
83 . NODREAC(*),CPTREAC,NDAMP_VREL_RBYG,SIZE_RBY6_C
84 my_real RBY(NRBY,*) ,A(3,*) ,AR(3,*) ,X(3,*) ,VR(3,*),FSAV(NTHVKI,*),
85 . IN(*) ,STIFN(*),STIFR(*),FANI(3,*),MS(*),V(3,*) ,
86 . BUFSF(*), SKEW(LSKEW,*),FTHREAC(6,*)
87 DOUBLE PRECISION RBY6(8,6,NRBYKIN),RBY6_C(2,6,SIZE_RBY6_C)
88 DOUBLE PRECISION FBSAV6(12,6,DIMFB),RBID(12,6),
89 TYPE (SURF_),
DIMENSION(NSURF) :: IGRSURF
90 INTEGER ,
INTENT(IN) :: NDAMP_VREL,IPARIT,SDAMP
91 INTEGER ,
INTENT(IN) :: ID_DAMP_VREL(NDAMP_VREL),TAGSLV_RBY(NUMNOD)
92 ,
INTENT(INOUT) :: DAMPR(NRDAMP,NDAMP),DAMP(SDAMP)
93 TYPE(GROUP_),
INTENT(IN) :: IGRNOD(NGRNOD)
98 . isu,adrsrf,im, nrbdim,iparsens,isect,
107 IF(npby(7,n)<=0)
THEN
121 IF (nhier_rby ==0)
THEN
131 IF (npby(4,n)/=0)
THEN
142 IF(ispmd==0.AND.isu/=0)
THEN
144 adrsrf=igrsurf(isu)%IAD_BUFR
145 a(1,im) =a(1,im) +bufsf(adrsrf+25)
146 a(2,im) =a(2,im) +bufsf(adrsrf+26)
147 a(3,im) =a(3,im) +bufsf(adrsrf+27)
148 ar(1,im)=ar(1,im)+bufsf(adrsrf+28)
149 ar(2,im)=ar(2,im)+bufsf(adrsrf+29)
150 ar(3,im)=ar(3,im)+bufsf(adrsrf+30)
151 stifn(im)=stifn(im)+bufsf(adrsrf+31)
152 stifr(im)=stifr(im)+bufsf(adrsrf+32)
154 fsav(10,n2)=fsav(10,n2)+bufsf(adrsrf+25)*dt1
155 fsav(11,n2)=fsav(11,n2)+bufsf(adrsrf+26)*dt1
156 fsav(12,n2)=fsav(12,n2)+bufsf(adrsrf+27)*dt1
157 fsav(13,n2)=fsav(13,n2)+bufsf(adrsrf+28)*dt1
158 fsav(14,n2)=fsav(14,n2)+bufsf(adrsrf+29)*dt1
159 fsav(15,n2)=fsav(15,n2)+bufsf(adrsrf+30)*dt1
164 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+nrwall+1)-
165 . tabsensor(n+nsect+nintsub+ninter+nrwall)
169 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
170 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
171 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
172 4 1 ,icodr ,iskew ,skew ,rby6(1,1,n),
173 5 npby(2,n),nativ_sms,fbsav6(1,1,isect) ,iparsens,
174 6 nodreac,fthreac,cptreac,npby(5,n))
177 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
178 2 lpby(k) ,npby(1,n),in ,vr ,stifn
179 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
180 4 1 ,icodr ,iskew ,skew ,rby6(1,1,n),
181 5 npby(2,n),nativ_sms,rbid , iparsens,
182 6 nodreac,fthreac,cptreac,npby(5,n))
203 IF (npby(4,n)==0)
THEN
214 IF(ispmd==0.AND.isu/=0)
THEN
216 adrsrf=igrsurf(isu)%IAD_BUFR
217 a(1,im) =a(1,im) +bufsf(adrsrf+25)
218 a(2,im) =a(2,im) +bufsf(adrsrf+26)
219 a(3,im) =a(3,im) +bufsf(adrsrf+27)
220 ar(1,im)=ar(1,im)+bufsf(adrsrf+28)
221 ar(2,im)=ar(2,im)+bufsf(adrsrf+29)
222 ar(3,im)=ar(3,im)+bufsf(adrsrf+30)
223 stifn(im)=stifn(im)+bufsf(adrsrf+31)
224 stifr(im)=stifr(im)+bufsf(adrsrf+32)
226 fsav(10,n2)=fsav(10,n2)+bufsf(adrsrf+25)*dt1
227 fsav(11,n2)=fsav(11,n2)+bufsf(adrsrf+26)*dt1
228 fsav(12,n2)=fsav(12,n2)+bufsf(adrsrf+27)*dt1
229 fsav(13,n2)=fsav(13,n2)+bufsf(adrsrf+28)*dt1
230 fsav(14,n2)=fsav(14,n2)+bufsf(adrsrf+29)*dt1
231 fsav(15,n2)=fsav(15,n2)+bufsf(adrsrf+30)*dt1
236 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+nrwall+1)-
237 . tabsensor(n+nsect+nintsub+ninter+nrwall)
241 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
242 2 lpby(k) ,npby(1,n) ,in ,vr ,stifn ,
243 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
244 4 1 ,icodr ,iskew ,skew ,rby6(1,1,n),
245 5 npby(2,n),nativ_sms,fbsav6(1,1,isect) ,iparsens,
246 6 nodreac,fthreac,cptreac,npby(5,n))
249 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
250 2 lpby(k) ,npby(1,n) ,in ,vr ,stifn ,
251 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
252 4 1 ,icodr ,iskew ,skew ,rby6(1,1,n),
253 5 npby(2,n),nativ_sms ,rbid ,iparsens ,
254 6 nodreac,fthreac,cptreac,npby(5,n))
265 IF ((ndamp_vrel_rbyg > 0).AND.(nrbykin_l > 0))
THEN
268 CALL damping_vref_rby(igrnod ,ngrnod ,v ,vr ,a ,
269 . x ,ms ,dampr ,nrdamp ,ndamp ,
270 . ndamp_vrel,iparit ,numnod ,dt1 ,id_damp_vrel,
271 . tt ,nnpby ,nrbykin ,npby ,rby6 ,
272 . rby6_c ,tagslv_rby,weight ,lskew ,numskw ,
273 . dim ,damp ,skew ,wfext ,size_rby6_c,
282 IF (imon>0)
CALL startime(timers,11)
287 IF(nintstamp == 0)
THEN
288 IF (ndamp_vrel_rbyg == 0)
THEN
296 . rby6_c,size_rby6_c)
303 IF (imon>0)
CALL stoptime(timers,11)
321 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+nrwall+1)-
322 . tabsensor(n+nsect+nintsub+ninter+nrwall)
326 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
327 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
328 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
329 4 2 ,icodr ,iskew ,skew, rby6(1,1,n),
330 5 npby(2,n),nativ_sms,fbsav6(1,1,isect) ,iparsens,
331 6 nodreac,fthreac,cptreac,npby(5,n))
334 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
335 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
336 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
337 4 2 ,icodr ,iskew ,skew, rby6(1,1,n),
338 5 npby(2,n),nativ_sms,rbid ,iparsens,
339 6 nodreac,fthreac,cptreac,npby(5,n))
348 IF (ndamp_vrel_rbyg > 0)
THEN
350 call damping_vref_rby_stiff(numnod,nnpby,nrbykin,nrbykin_l,npby,
351 . rby6_c,ms,in,stifn,stifr,size_rby6_c,
352 . irbkin_l ,nhier_rby)
358 DO nhi = 0 ,nhier_rby
361 IF(npby(7,n)==0 .OR. im<=0 .OR. npby(20,n)/=nhi) cycle
365 IF(ispmd==0.AND.isu/=0)
THEN
367 adrsrf=igrsurf(isu)%IAD_BUFR
368 a(1,im) =a(1,im) +bufsf(adrsrf+25)
369 a(2,im) =a(2,im) +bufsf(adrsrf+26)
370 a(3,im) =a(3,im) +bufsf(adrsrf+27)
371 ar(1,im)=ar(1,im)+bufsf(adrsrf+28)
372 ar(2,im)=ar(2,im)+bufsf(adrsrf+29)
373 ar(3,im)=ar(3,im)+bufsf(adrsrf+30)
374 stifn(im)=stifn(im)+bufsf(adrsrf+31)
375 stifr(im)=stifr(im)+bufsf(adrsrf+32)
377 fsav(10,n2)=fsav(10,n2)+bufsf(adrsrf+25)*dt1
378 fsav(11,n2)=fsav(11,n2)+bufsf(adrsrf+26)*dt1
379 fsav(12,n2)=fsav(12,n2)+bufsf(adrsrf+27)*dt1
380 fsav(13,n2)=fsav(13,n2)+bufsf(adrsrf+28)*dt1
381 fsav(14,n2)=fsav(14,n2)+bufsf(adrsrf+29)*dt1
382 fsav(15,n2)=fsav(15,n2)+bufsf(adrsrf+30)*dt1
387 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+nrwall+1)-
388 . tabsensor(n+nsect+nintsub+ninter+nrwall)
392 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
393 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
394 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
395 4 1 ,icodr ,iskew ,skew ,rby6(1,1,n),
396 5 npby(2,n),nativ_sms,fbsav6(1,1,isect) ,iparsens,
397 6 nodreac,fthreac,cptreac,npby(5,n))
400 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
401 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
402 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
403 4 1 ,icodr ,iskew ,skew ,rby6(1,1,n),
404 5 npby(2,n),nativ_sms,rbid , iparsens,
405 6 nodreac,fthreac,cptreac,npby(5,n))
411 IF ((ndamp_vrel_rbyg > 0).AND.(nrbykin_l > 0))
THEN
413 CALL damping_vref_rby(igrnod ,ngrnod ,v ,vr ,a ,
414 . x ,ms ,dampr ,nrdamp ,ndamp ,
415 . ndamp_vrel,iparit ,numnod ,dt1 ,id_damp_vrel,
416 . tt ,nnpby ,nrbykin ,npby ,rby6 ,
417 . rby6_c ,tagslv_rby,weight ,lskew ,numskw ,
423 IF (imon>0)
CALL startime(timers,11)
424 IF(nintstamp == 0)
THEN
425 IF (ndamp_vrel_rbyg == 0)
THEN
431 . rby6_c,size_rby6_c)
436 IF (imon>0)
CALL stoptime(timers,11)
443 IF(npby(7,n)==0 .OR. im<=0 .OR. npby
447 IF(stabsen/=0) isect=tabsensor(n+nsect+nintsub+ninter+nrwall+1)-
448 . tabsensor(n+nsect+nintsub+ninter+nrwall)
452 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
453 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
454 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
455 4 2 ,icodr ,iskew ,skew, rby6(1,1,n),
456 5 npby(2,n),nativ_sms,fbsav6(1,1,isect) ,iparsens,
457 6 nodreac,fthreac,cptreac,npby(5,n))
460 1 a ,ar ,x ,fsav(1,n2),rby(1,n),
461 2 lpby(k) ,npby(1,n),in ,vr ,stifn ,
462 3 stifr ,fani(1,1+2*(nsect+n-1)),weight,ms ,v ,
463 4 2 ,icodr ,iskew ,skew, rby6(1,1,n),
464 5 npby(2,n),nativ_sms,rbid ,iparsens,
465 6 nodreac,fthreac,cptreac,npby(5,n))
471 IF (ndamp_vrel_rbyg > 0)
THEN
472 call damping_vref_rby_stiff(numnod,nnpby,nrbykin,nrbykin_l,npby,
473 . rby6_c,ms,in,stifn,stifr,size_rby6_c,