subroutine chnglam include "params.inc" include "table.inc" include "tablex.inc" include "mult.inc" include "multx.inc" include "opshin.inc" include "day1cals.inc" include "date_cmn.inc" include "contrl.inc" include "dgpos.inc" c CHARACTER*2 N19 real v_tmp,rirr12(12),rirr23(12) data N19/'19'/ do i0h=1,2 do i0w=1,6 do i0p=1,23 do i0a=1,10 v_tmp=XLOGI0(i0a,i0p,i0w,i0h) XLOGI0(i0a,i0p,i0w,i0h)=XLOGI0x(i0a,i0p,i0w,i0h) XLOGI0x(i0a,i0p,i0w,i0h)=v_tmp v_tmp=TBYI0(i0a,i0p,i0w,i0h) TBYI0(i0a,i0p,i0w,i0h)=TBYI0x(i0a,i0p,i0w,i0h) TBYI0x(i0a,i0p,i0w,i0h)=v_tmp if(i0w .le. 5) then v_tmp=QLOG(i0a,i0p,i0w,i0h) QLOG(i0a,i0p,i0w,i0h)=QLOGx(i0a,i0p,i0w,i0h) QLOGx(i0a,i0p,i0w,i0h)=v_tmp v_tmp=QSLOG(i0a,i0p,i0w,i0h) QSLOG(i0a,i0p,i0w,i0h)=QSLOGx(i0a,i0p,i0w,i0h) QSLOGx(i0a,i0p,i0w,i0h)=v_tmp v_tmp=FRACT(i0a,i0p,i0w,i0h) FRACT(i0a,i0p,i0w,i0h)=FRACTx(i0a,i0p,i0w,i0h) FRACTx(i0a,i0p,i0w,i0h)=v_tmp endif enddo v_tmp=SB(i0p,i0w,i0h) SB(i0p,i0w,i0h)=SBx(i0p,i0w,i0h) SBx(i0p,i0w,i0h)=v_tmp if(i0w .le. 5) then v_tmp=SBT(i0p,i0w,i0h) SBT(i0p,i0w,i0h)=SBTx(i0p,i0w,i0h) SBTx(i0p,i0w,i0h)=v_tmp endif enddo enddo enddo do i0w=1,12 v_tmp=oobrcr(i0w) oobrcr(i0w)=oobrcr1(i0w) oobrcr1(i0w)=v_tmp enddo do i0w=1,13 v_tmp=alfac0(i0w) alfac0(i0w)=alfac1(i0w) alfac1(i0w)=v_tmp v_tmp=calfa10(i0w) calfa10(i0w)=calfa11(i0w) calfa11(i0w)=v_tmp v_tmp=calfa20(i0w) calfa20(i0w)=calfa21(i0w) calfa21(i0w)=v_tmp v_tmp=betac0(i0w) betac0(i0w)=betac1(i0w) betac1(i0w)=v_tmp v_tmp=alfa0(i0w) alfa0(i0w)=alfa0x(i0w) alfa0x(i0w)=v_tmp v_tmp=beta(i0w) beta(i0w)=betax(i0w) betax(i0w)=v_tmp v_tmp=wlen0(i0w) wlen0(i0w)=wlen0x(i0w) wlen0x(i0w)=v_tmp enddo c ---- Convert the standard wavelengths in the N-values lookup table to the c standard grating positions. do i=1,12 gpos_std(i)=inint(asin(WLEN0(I)/10./a0)/a1-a2) enddo if(SCNO .eq. N19)then call rcal_n19(date_i4,rcal_day1) call flux_n19(date_i4,flux_day1) call IRR_N19(date_i4,rirr12_value,rirr23_day1) call offset_n19(date_i4) endif call irr_drift(date_i4,rirr12_value,rirr23_day1,rirr12,rirr23) do k=1,12 cal(2,k)=rcal_day1(k) fvalue(k)=flux_day1(k) SFLUX(I)=FVALUE(I)/RSQR end do cal(1,13)=rcal_day1(13) fvalue(13)=flux_day1(13) SFLUX(13)=FVALUE(13)/RSQR DO 200 I=1,12 CAL(2,I) = CAL(2,I) * ACF(I) CAL(1,I) = CAL(2,I) / rirr12(I) CAL(3,I) = CAL(2,I) * rirr23(I) 200 CONTINUE CAL(1,13) = CAL(1,13) * ACF(13) write(6,*) ' Switched Tables For Wavelength Changes:' write(6,6666) wlen0,alfa0,beta 6666 format(3((1x,7f10.4/1x,6f10.4/)/)) WRITE(6,3000) FVALUE,rirr12,rirr23,ACF,CAL 3000 FORMAT(/T30,'INPUT INFO FROM ICAC'//1X,'FVALUE -', 1 13F9.3//1X,'IRR 2/1 -',12F10.3//1X,'IRR 3/2 -', 2 12F10.3//1X,'ACF -',13F9.5//1X,'FINAL CALIBRATION VALUES -'// 3 13(1X,3E15.4/)//) return end