33 USE python_funct_mod
34 USE finter_mixed_mod
35
36
37
38#include "implicit_f.inc"
39
40
41
42#include "com06_c.inc"
43#include "com08_c.inc"
44#include "task_c.inc"
45
46
47
48 INTEGER NPC(*),IVOLU(*), PMAIN
50 DOUBLE PRECISION,INTENT(INOUT) :: WFEXT
51 TYPE(PYTHON_), intent(inout) :: PYTHON
52 INTEGER, intent(in) :: NFUNCT
53
54
55
56 INTEGER ITFUN,ITYPFUN
57 my_real vol,v0,
area,veps,vinc,pold,pext,vold,pres,q,qold,dv,scale,xfun
58
59
60
61
62 itfun =ivolu(7)
63 itypfun=ivolu(19)
64 pext =rvolu(3)
65 v0 =rvolu(4)
66 vinc =rvolu(5)
67 pold =rvolu(12)
68 vold =rvolu(16)
69 veps =rvolu(17)
71 qold =rvolu(23)
72 scale =rvolu(15)
73 vol = vol + veps
74 v0 = v0
75 SELECT CASE (itypfun)
76 CASE(0)
77 xfun = (v0-vinc)/(vol-vinc)
78 CASE(1, 3)
79 xfun = tt
80 CASE(2)
81 xfun = (vol-vinc) / (v0-vinc)
82 CASE DEFAULT
83
84 END SELECT
85 pres = scale * finter_mixed(python,nfunct,itfun,xfun,npc,tf)
86 IF (itypfun == 3) THEN
87 pres = pres * (v0-vinc) / (vol-vinc)
88 ENDIF
89 q = zero
90 IF (ispmd+1==pmain) THEN
91 dv=vol-vold
92 wfext=wfext+(half*(q+qold+pres+pold))*dv
93 fsav(1)=zero
94 fsav(2)=vol
95 fsav(3)=pres
97 fsav(5)=zero
98 fsav(6)=zero
99 fsav(7)=zero
100 fsav(8)=zero
101 fsav(9)=zero
102 fsav(10)=zero
103 fsav(11)=zero
104 fsav(12)=zero
105 ENDIF
106
107 rvolu(16)=vol
108 rvolu(12)=pres
109 rvolu(23)=q
110
111 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)