Nbody6
 All Files Functions Variables
mlwind.f
Go to the documentation of this file.
1 ***
2  real*8 FUNCTION mlwind(kw,lum,r,mt,mc,rl,z)
3  implicit none
4  integer kw
5  real*8 lum,r,mt,mc,rl,z
6  real*8 dml,dms,dmt,p0,x,mew,lum0,kap,neta,bwind
7  parameter(lum0=7.0d+04,kap=-0.5d0)
8  parameter(neta=0.5d0)
9  parameter(bwind=0.d0)
10 *
11 * Calculate stellar wind mass loss.
12 *
13 * Apply mass loss of Nieuwenhuijzen & de Jager, A&A, 1990, 231, 134,
14 * for massive stars over the entire HRD.
15  if(lum.gt.4000.d0)then
16  x = min(1.d0,(lum-4000.d0)/500.d0)
17  dms = 9.6d-15*x*(r**0.81d0)*(lum**1.24d0)*(mt**0.16d0)
18  dms = dms*(z/0.02d0)**(1.d0/2.d0)
19  else
20  dms = 0.d0
21  endif
22  if(kw.ge.2.and.kw.le.9)then
23 * 'Reimers' mass loss
24  dml = neta*4.0d-13*r*lum/mt
25 * Check for any tidally enhanced mass loss in binary systems (optional):
26 * see Tout & Eggleton, MNRAS, 1988, 231, 823.
27  if(rl.gt.0.d0) dml = dml*(1.d0 + bwind*(min(0.5d0,(r/rl)))**6)
28 * Apply mass loss of Vassiliadis & Wood, ApJ, 1993, 413, 641,
29 * for high pulsation periods on AGB.
30  if(kw.eq.5.or.kw.eq.6)then
31  p0 = -2.07d0 - 0.9d0*log10(mt) + 1.94d0*log10(r)
32  p0 = 10.d0**p0
33  p0 = min(p0,2000.d0)
34  dmt = -11.4d0+0.0125d0*(p0-100.d0*max(mt-2.5d0,0.d0))
35  dmt = 10.d0**dmt
36  dmt = 1.d0*min(dmt,1.36d-09*lum)
37  dml = max(dml,dmt)
38  endif
39  if(kw.gt.6)then
40  dms = max(dml,1.0d-13*lum**(3.d0/2.d0))
41  else
42  dms = max(dml,dms)
43  mew = ((mt-mc)/mt)*min(5.d0,max(1.2d0,(lum/lum0)**kap))
44 * reduced WR-like mass loss for small H-envelope mass
45  if(mew.lt.1.d0)then
46  dml = 1.0d-13*lum**(3.d0/2.d0)*(1.d0 - mew)
47  dml = dml*(z/0.02d0)**(1.d0/2.d0)
48  dms = max(dml,dms)
49  end if
50 * LBV-like mass loss beyond the Humphreys-Davidson limit.
51  x = 1.0d-5*r*sqrt(lum)
52 * if(lum.gt.6.0d+05.and.x.gt.1.d0)then
53 * dml = 0.1d0*(x-1.d0)**3*(lum/6.0d+05-1.d0)
54 * dml = dml*(z/0.02d0)**(1.d0/2.d0)
55 * dms = dms + dml
56 * endif
57  endif
58  endif
59 *
60  mlwind = dms
61 *
62  return
63  end
64 ***