git push -u origin main
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
subroutine molini
|
||||
c =================
|
||||
c
|
||||
c Initialization of the molecular equilibrium
|
||||
c
|
||||
INCLUDE 'PARAMS.FOR'
|
||||
INCLUDE 'MODELP.FOR'
|
||||
common/moltst/pfmol(600,mdepth),anmol(600,mdepth),
|
||||
* pfato(100,mdepth),anato(100,mdepth),
|
||||
* pfion(100,mdepth),anion(100,mdepth)
|
||||
dimension hpo(mdepth)
|
||||
c
|
||||
aeinit=1.0
|
||||
c
|
||||
do 10 id=1,nd
|
||||
t=temp(id)
|
||||
tln=log(t)*1.5
|
||||
thl=11605./t
|
||||
t32=exp(tln)
|
||||
|
||||
do i=1,MMOLEC
|
||||
rrmol(i,id)=0.
|
||||
end do
|
||||
|
||||
hpo(id)=DENS(ID)/WMM(ID)/YTOT(ID)
|
||||
|
||||
if(t.gt.tmolim) go to 10
|
||||
HPOP=DENS(ID)/WMM(ID)/YTOT(ID)
|
||||
|
||||
an=dens(id)/wmm(id)+elec(id)
|
||||
aeinit=0.1*an
|
||||
if(t.lt.4000.) aeinit=0.01*an
|
||||
call moleq(id,t,an,aeinit,ane,0)
|
||||
|
||||
|
||||
c next initial guess will be the last ane determined for
|
||||
c previous depth point
|
||||
|
||||
aeinit=ane
|
||||
c
|
||||
if (id.eq.idstd) then
|
||||
write(6,600)
|
||||
nmol=nmolec
|
||||
if(id.eq.1) nmol=32
|
||||
do i=1,nmol
|
||||
write(6,601) i, cmol(i), rrmol(i,id), rrmol(i,id)/hpop
|
||||
end do
|
||||
end if
|
||||
600 format(/ 'Molecular number densities at the standard depth'/)
|
||||
601 format(i4,1x,A8,1x,1pe12.2,1x,e12.2)
|
||||
|
||||
10 continue
|
||||
|
||||
|
||||
c update atomic populations once molecular densities are calculated
|
||||
|
||||
if(imode.lt.-4) then
|
||||
do i=1,nlevel
|
||||
iat=numat(iatm(i))
|
||||
ion=iz(iel(i))
|
||||
ii=nfirst(iel(i))
|
||||
ener=(enion(ii)-enion(i))/bolk
|
||||
if((enion(i).eq.0).and.(ilk(i).gt.0)) then
|
||||
ener=0.
|
||||
ion=ion+1
|
||||
end if
|
||||
if(ifwop(i).ge.0) then
|
||||
do id=1,nd
|
||||
popul(i,id)=rrr(id,ion,iat)*g(i)
|
||||
* *exp(-ener/temp(id))
|
||||
if(iat.eq.1.and.ion.eq.0) popul(i,id)=anhm(id)
|
||||
end do
|
||||
endif
|
||||
end do
|
||||
end if
|
||||
c
|
||||
return
|
||||
end
|
||||
Reference in New Issue
Block a user