aboutsummaryrefslogtreecommitdiff
path: root/synthe/fluxaverage1a_nmtoa.for
diff options
context:
space:
mode:
Diffstat (limited to 'synthe/fluxaverage1a_nmtoa.for')
-rw-r--r--synthe/fluxaverage1a_nmtoa.for87
1 files changed, 87 insertions, 0 deletions
diff --git a/synthe/fluxaverage1a_nmtoa.for b/synthe/fluxaverage1a_nmtoa.for
new file mode 100644
index 0000000..cb8deb9
--- /dev/null
+++ b/synthe/fluxaverage1a_nmtoa.for
@@ -0,0 +1,87 @@
+ PROGRAM FLUXAVERAGE1A
+ IMPLICIT REAL*8 (A-H,O-Z)
+ DIMENSION FLAM1(100000),FLAM2(100000),FLAMC(100000),
+ 1 AVERHSURF(100000)
+ DIMENSION TITLE(74),WLEDGE(200),XMU(20),AVERCONTIN(100000)
+ DATA NPTI/100000/
+C
+C FIX THE WAVELENGHT RANGE IN WHICH WE WANT AVERAGED FLUXES
+C
+ READ(5,56)WAVE1,WAVE2
+56 FORMAT(3F10.4)
+ TYPE*,WAVE1,WAVE2
+C
+ READ(5,56)FLAM1(1),FLAM2(1),FLAMC(1)
+ TYPE*,FLAM1(1),FLAM2(1),FLAMC(1)
+C FLAM1(1)=362.0
+C FLAM2(1)=362.1
+C FLAMC(1)=362.05
+ DO 550 I=2,NPTI
+ FLAM1(I)=FLAM1(I-1)+0.100
+ FLAM2(I)=FLAM2(I-1)+0.100
+ FLAMC(I)=FLAM1(I)+0.0500
+C TYPE*,N,FLAM1(I),FLAM2(I),FLAMC(I)
+c if(flam2(i).gt.wave2)go to 501
+ if(flam2(i).ge.wave2)go to 501
+550 CONTINUE
+C
+501 npti=i
+c type*,npti,flam1(npti),flam2(npti),flamc(npti)
+ do 1001 k=1,npti
+ if(flam1(k).lt.wave1)go to 1001
+ nlam1=k
+ go to 101
+1001 continue
+101 CONTINUE
+c type*,nlam1,wave1,flam1(nlam1)
+ OPEN(UNIT=1,FORM='UNFORMATTED',READONLY,STATUS='OLD')
+ READ(1)TEFF,GLOG,TITLE,WBEGIN,RESOLU,NWL,IFSURF,NMU,XMU,NEDGE,
+ 1WLEDGE
+2 FORMAT(F10.1,F10.3,/6HTITLE ,74A1/F10.3,F10.1,I10,I5,I5/
+ 1 10F8.4/10F8.4/I10/(5F16.5))
+ WRITE(2,3)TEFF,GLOG
+3 FORMAT(5X,F7.0,9X,F8.5,5X)
+ WRITE(2,334)TITLE
+c334 FORMAT(5HTITLE,74A1)
+334 FORMAT(74A1/)
+ write(2,335)
+ 335 format(4x,'Wavelength',10x,'Flux'/5x,
+ 1 'Angstrom', 2x,'erg/sec/cm2/Angstrom')
+c type*,nmu
+ K=nlam1
+ NAVER=0
+ SUMHSURF=0.
+ SUMCONTIN=0.
+ NIWL=0
+ DO 100 I=1,1000000000
+ READ(1)HSURF,CONTIN
+ NIWL=NIWL+1
+ WAVE=WBEGIN*(1.+1./RESOLU)**(NIWL-1)
+5 FORMAT(1X,F10.4,2E10.4)
+ IF(WAVE.LT.FLAM1(K))GO TO 100
+ IF(WAVE.GE.FLAM1(K).AND.WAVE.LE.FLAM2(K)) THEN
+ NAVER=NAVER+1
+ SUMHSURF=SUMHSURF+HSURF
+ SUMCONTIN=SUMCONTIN+CONTIN
+c TYPE*,naver,WAVE,hsurf,sumhsurf
+ END IF
+ IF(WAVE.GE.FLAM2(K)-0.001) THEN
+ AVERHSURF(K)=SUMHSURF/NAVER
+ AVERCONTIN(K)=SUMCONTIN/NAVER
+c IF(K.GT.100000)type*,i,k,flam2(k),averhsurf(k)
+ K=K+1
+ NAVER=0
+ SUMHSURF=0.
+ SUMCONTIN=0.
+ END IF
+ IF(WAVE.GE.wave2-0.001) GO TO 98
+100 CONTINUE
+98 DO 200 I=1,NPTI
+ FLAMC(I)=10.*FLAMC(I)
+ freq=2.997925e18/flamc(i)
+ FLUXLAM=4.*FREQ/FLAMC(I)*AVERHSURF(I)
+ WRITE(2,67)FLAMC(I),FLUXLAM
+ 67 FORMAT(3X,F9.1,3X,1PE18.12)
+200 CONTINUE
+ STOP
+ END