aboutsummaryrefslogtreecommitdiff
path: root/Getsyns.f
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2021-08-03 14:41:53 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2021-08-03 14:41:53 -0400
commitaf8fa097905186e0d8ba257e4d70d63fe8901264 (patch)
tree647de7ddd01c750e9a80849b3cf79efddf32d4b2 /Getsyns.f
downloadmoog-af8fa097905186e0d8ba257e4d70d63fe8901264.tar.gz
Initial commit
Diffstat (limited to 'Getsyns.f')
-rwxr-xr-xGetsyns.f126
1 files changed, 126 insertions, 0 deletions
diff --git a/Getsyns.f b/Getsyns.f
new file mode 100755
index 0000000..40380fd
--- /dev/null
+++ b/Getsyns.f
@@ -0,0 +1,126 @@
+
+ subroutine getsyns (lscreen,ncall)
+c******************************************************************************
+c This routine commands the syntheses to be done (or resyntheses if
+c abundances or isotopic ratios are changed)
+c******************************************************************************
+
+ implicit real*8 (a-h,o-z)
+ include 'Atmos.com'
+ include 'Linex.com'
+ include 'Pstuff.com'
+ include 'Factor.com'
+ include 'Dummy.com'
+
+
+c*****if the syntheses need to be redone: first rewind the output files,
+c then close/reopen line list(s), then rewrite model atmosphere output
+ if (choice .eq. 'n') then
+ call chabund
+ if (choice .eq. 'x') call pltspec (lscreen,ncall)
+ rewind nf1out
+ rewind nf2out
+ if (nflines .ne. 0) then
+ close (unit=nflines)
+ open (unit=nflines,file=flines,access='sequential',
+ . form='formatted',blank='null',status='old',
+ . iostat=jstat,err=10)
+ endif
+ if (nfslines .ne. 0) then
+ close (unit=nfslines)
+ open (unit=nfslines,file=fslines,access='sequential',
+ . form='formatted',blank='null',status='old',
+ . iostat=jstat,err=10)
+ endif
+ if (plotopt .ne. 0) then
+ rewind nf3out
+ endif
+ write (nf1out,1002) modtype
+ if (modprintopt .ge. 1) then
+ if (modtype .eq. 'begn ' .or.
+ . modtype .eq. 'BEGN ') write (nf1out,1003)
+ write (nf1out,1102) moditle
+ do i=1,ntau
+ dummy1(i) = dlog10(pgas(i))
+ dummy2(i) = dlog10(ne(i)*1.38054d-16*t(i))
+ enddo
+ write (nf1out,1103) wavref,(i,xref(i),tauref(i),t(i),
+ . dummy1(i), pgas(i),dummy2(i),ne(i),
+ . vturb(i),i=1,ntau)
+ write (nf1out,1104)
+ do i=1,95
+ dummy1(i) = dlog10(xabund(i)) + 12.0
+ enddo
+ write (nf1out,1105) (names(i),i,dummy1(i),i=1,95)
+ write (nf1out,1106) modprintopt, molopt, linprintopt,
+ . fluxintopt
+ write (nf1out,1107) (kapref(i),i=1,ntau)
+ endif
+ linprintopt = linprintalt
+ choice = '1'
+ endif
+
+
+c*****now do the syntheses
+ if (numpecatom .eq. 0 .or. numatomsyn .eq. 0) then
+ isynth = 1
+ isorun = 1
+ nlines = 0
+ mode = 3
+ call inlines (1)
+ call eqlib
+ call nearly (1)
+ call synspec
+ else
+ do n=1,numatomsyn
+ isynth = n
+ isorun = n
+ start = oldstart
+ sstop = oldstop
+ mode = 3
+ molopt = 2
+ call inlines (1)
+ call eqlib
+ call nearly (1)
+ call synspec
+ linprintopt = 0
+ enddo
+ endif
+ return
+
+
+c*****a nonsense situation: the line list read in successfully at the
+c*****start, but now there is a problem on re-synthesis
+10 write (*,1108)
+ stop
+
+
+c*****format statements
+1002 format (13('-'),'MOOG OUTPUT FILE',10('-'),
+ . '(MOOG version NOV 2019)',13('-')//
+ . 'THE MODEL TYPE: ',a10)
+1003 format (' The Rosseland opacities and optical depths have ',
+ . 'been read in')
+1102 format (/'MODEL ATMOSPHERE HEADER:'/a80/)
+1103 format ('INPUT ATMOSPHERE QUANTITIES',10x,
+ . '(reference wavelength =',f10.2,')'/3x,'i',2x,'xref',3x,
+ . 'tauref',7x,'T',6x,'logPg',4x,'Pgas',6x,'logPe',
+ . 5x,'Ne',9x,'Vturb'/
+ . (i4,0pf6.2,1pd11.4,0pf9.1,f8.3,1pd11.4,0pf8.3,
+ . 1pd11.4,d11.2))
+1104 format (/'INPUT ABUNDANCES: (log10 number densities, log H=12)'/
+ . ' Default solar abundances: Asplund et al. 2009')
+1105 format (5(3x,a2,'(',i2,')=',f5.2))
+1106 format (/'OPTIONS: atmosphere = ',i1,5x,'molecules = ',i1/
+ . ' lines = ',i1,5x,'flux/int = ',i1)
+1107 format (/'KAPREF ARRAY:'/(6(1pd12.4)))
+1108 format ('something odd: linelist was OK initially, now cannot ',
+ . 'be read; I QUIT!')
+
+
+ end
+
+
+
+
+