37
38
39
41
42
43
44#include "implicit_f.inc"
45
46
47
48#include "com08_c.inc"
49#include "sphcom.inc"
50#include "task_c.inc"
51#include "scr17_c.inc"
52
53
54
55 INTEGER KXSP(NISP,*),IXSP(KVOISPH,*),NOD2SP(*),ITAB(*),
56 . WASPACT(*),ITASK,IPARTSP(*),IPART(LIPART1,*)
57
59 . x(3,*) ,v(3,*) ,ms(*) ,spbuf(nspbuf,*) ,wa(kwasph,*)
60
61
62
63 INTEGER N,INOD,NVOIS,NS,IPRT,IPROP,H_FLAG
65 . xi,yi,zi,di,divv,coeff,get_u_geo,
66 . hmin,hmax,h_new,di0
67
68 EXTERNAL get_u_geo
69
70 DO ns=itask+1,nsphact,nthread
71 n=waspact(ns)
72 inod =kxsp(3,n)
73 nvois=kxsp(4,n)
74 xi=x(1,inod)
75 yi=x(2,inod)
76 zi=x(3,inod)
77 di =spbuf(1,n)
78 di0 = spbuf(14,n)
79 divv =wa(13,n)
80 iprt =ipartsp(n)
81 iprop=ipart(2,iprt)
82 coeff = get_u_geo(8,iprop)
83 h_flag=nint(get_u_geo(9,iprop))
84 hmin = get_u_geo(10,iprop)
85 hmax = get_u_geo(11,iprop)
86
87
88
89
90 h_new=di*(one+divv*dt1*coeff)
91 IF (h_flag==3) THEN
92 h_new=
max(hmin*di0,h_new)
93 h_new=
min(hmax*di0,h_new)
94 ENDIF
95 spbuf(1,n)= h_new
96 IF(spbuf(1,n)<em20)THEN
97 CALL ancmsg(msgid=174,anmode=aninfo,
98 . i1=kxsp(nisp,n))
100 ENDIF
101 ENDDO
102
103 RETURN
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)