32 SUBROUTINE static(V,VR,A,AR,MS,IN,IGRNOD,WEIGHT_MD,WFEXT)
40#include "implicit_f.inc"
56 my_real v(3,*), vr(3,*), a(3,*), ar(3,*),ms(*),in(*)
57 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
59 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
63 INTEGER J, I,LAST,N,NGR2USR,ISTAT2,ISTAT3
64 my_real encino, omega, uomega, domega, omega2, encint, encinn,encgrp,encgrpn, encgrpr,encgrprn
72 istatg=ngr2usr(-istatg,igrnod,ngrnod)
77 IF ((istat==2.OR.istat==3).AND.tst_stop==zero) tst_stop=tstop
79 IF (istat==2.AND.tt>=tst_start.AND.tt<=tst_stop) istat2=1
80 IF (istat==3.AND.tt>=tst_start.AND.tt<=tst_stop) istat3=1
81 IF((istat==1.OR.istat3==1).AND.istatg==0)
THEN
86 omega2 = (one-two*omega)**2
89 encinn = encint * omega2
93 a(1,i) = -domega*v(1,i) + uomega*a(1,i)
94 a(2,i) = -domega*v(2,i) + uomega*a(2,i)
95 a(3,i) = -domega*v(3,i) + uomega*a(3,i)
97 IF (ispmd==0) wfext = wfext - encint + encinn
102 encinn = encint * omega2
104 ar(1,i) = -domega*vr(1,i) + uomega*ar(1,i)
105 ar(2,i) = -domega*vr(2,i) + uomega*ar(2,i)
106 ar(3,i) = -domega*vr(3,i) + uomega*ar(3,i)
108 IF (ispmd==0) wfext = wfext - encint + encinn
111 ELSEIF(istat2==1.AND.istatg==0)
THEN
115 IF(encint<encino)
THEN
116 IF (ispmd==0)wfext = wfext - encint
133 ELSEIF((istat==1.OR.istat3==1).AND.istatg/=0)
THEN
135 omega = betate * dt12
138 omega2 = (one-two*omega)**2
140 encinn = encint * omega2
146#include "vectorize.inc"
147 DO n=1,igrnod(istatg)%NENTITY
148 i=igrnod(istatg)%ENTITY(n)
149 encgrp = encgrp + ms(i)*weight_md(i)*
151 a(j,i) = -domega*v(j,i) + uomega*a(j,i)
158#include "vectorize.inc"
159 DO n=1,igrnod(istatg)%NENTITY
160 i=igrnod(istatg)%ENTITY(n)
161 encgrpr = encgrpr + ms(i)*weight_md(i)*
163 ar(j,i) = -domega*vr(j,i) + uomega*ar(j,i)
169 encgrpr = half*encgrpr
170 encgrpn = encgrp * omega2
171 encgrprn = encgrpr * omega2
172 IF (ispmd==0)wfext = wfext + encgrpn - encgrp + encgrprn - encgrpr
174 ELSEIF(istat2==1.AND.istatg/=0)
THEN
178 IF(encint<encino)
THEN
179 IF (ispmd==0)wfext = wfext - encint
184#include "vectorize.inc"
185 DO n=1,igrnod(istatg)%NENTITY
186 i=igrnod(istatg)%ENTITY(n)
190#include "vectorize.inc"
191 DO n=1,igrnod(istatg)%NENTITY
192 i=igrnod(istatg)%ENTITY(n)
215#include "implicit_f.inc"
226#include "com08_c.inc"
227#include "scr11_c.inc"
228#include "statr_c.inc"
235 . encint, eint,vv1,vv2,fv1,fv2,fv,ff
280 pimax =
max(pimax,pint)
281 pcmax =
max(pcmax,pcin)
282 IF(encint<encin_0.AND.encint>=zero)
THEN
294 ELSEIF(eint<eint_0.AND.eint>=zero)
THEN
316#include "implicit_f.inc"
324#include "com01_c.inc"
325#include "com08_c.inc"
326#include "statr_c.inc"
330#include "scr05_c.inc"
331#include "scr07_c.inc"
335 INTEGER J, I,FREQ,IDF,IPI,IPC,NC_ACT,IFIRST
336 parameter(nc_act = 200)
339 . q_es,betate_n,fc,fi,betate_m
341 . f_max,f_min,f_0,ei_tol
348 IF (debug(11)==1.AND.ispmd==0)
THEN
351 OPEN(unit=idf,file=filname,status=
'UNKNOWN',form=
'FORMATTED')
353 .
'# NCYCLE OMEGA(Retenu)IFIRST OMEGA_N(new) P_Eint P_Kin'
359 IF (debug(11)==1.AND.ispmd==0)
THEN
364 ifirst = nint(nfirst)
366 IF (iresp==1) ei_tol=em07
373 IF(freq_c<zero) freq_c = -freq_c*f_max
378 betate_n =
min(f_max,fi)
379 IF (betate==zero.AND.eint_0>ei_tol)
THEN
380 IF (ncycle>=nc_act)
THEN
381 betate =
min(f_0,betate_n)
385 ELSEIF (ifirst==1)
THEN
389 betate =
min(betate,betate_n)
391 IF (idf>0)
write(idf,1000)-ncycle,betate,ifirst,fi,pimax ,pcmax
395 betate_n =
min(f_max,fc)
396 IF (betate==zero.AND.eint_0>ei_tol)
THEN
397 IF (ncycle>=nc_act)
THEN
398 betate =
min(f_0,betate_n)
401 ELSEIF (ifirst==1)
THEN
406 IF (encin_0/
max(em20,eint_0)>em03.AND.betate<betate_n*three_half)
THEN
407 betate_m = half*betate
408 betate =
min(betate,betate_n)
409 betate =
max(betate,betate_m)
412 IF (idf>0)
write(idf,1000)ncycle,betate,ifirst,fc,pimax ,pcmax
415 IF (betate==zero.AND.eint_0>ei_tol.AND.ncycle>=nc_act)
THEN
420 IF (idf>0)
write(idf,1000)ncycle,betate,ifirst,fi,pimax ,pcmax
423 IF (ifirst>=1.AND.(ipc+ipi)==0)
THEN
424 fi = one/
max(pimax,pcmax)
425 IF (betate>1.1*fi)
THEN
427 IF (idf>0)
write(idf,1000)ncycle,betate,-ifirst,fi,pimax ,pcmax
430 IF (ifirst==1.AND.irun
434 1000
FORMAT(i8,5(g14.7)/)