implicit none *program to iteratively find the reverse transform for PT data integer a,b,counter real ra,dec,u,uerr,g,gerr,r,rerr,i,ierr,z,zerr real upin,upinerr,gpin,gpinerr,rpin,rpinerr,ipin,ipinerr,zpin,zpinerr real up,uperr,gp,gperr,rp,rperr,ip,iperr,zp,zperr real gprp,rpip,ipzp,comp1,comp2,comp3 character*100 junk open(1,file = 'nonvarMvsPTerr.dat', status = 'old') open(2,file = 'zeljkoconvertedug', status = 'unknown') open(4,file = 'zeljkoconvertedgr', status = 'unknown') open(5,file = 'zeljkoconvertedri', status = 'unknown') open(6,file = 'zeljkoconvertediz', status = 'unknown') open(3,file = 'zeljkoconvertedbad', status = 'unknown') do a=1,3 read(1,2) 2 format(5x) end do do a=1,200000 read(1,*,end=30) ra,dec,u,g,r,i,z,uerr,gerr,rerr,ierr,zerr,upin, : gpin,rpin,ipin,zpin,upinerr,gpinerr,rpinerr,ipinerr,zpinerr counter = 0 10 continue if(counter.eq.0) then gprp = gpin - rpin rpip = rpin - ipin ipzp = ipin - zpin end if gp = gpin - .06*(gprp -.53) rp = rpin - .035*(rpip -.21) ip = ipin - .041*(rpip -.21) zp = zpin + .03*(ipzp -.09) comp1 = abs(gp - rp - gprp) comp2 = abs(rp - ip - rpip) comp3 = abs(ip - zp - ipzp) if((comp1.lt.(.001).and.comp2.lt.(.001).and.comp3.lt.(.001))) then print*,'wrote!' if(upin.gt.(0).and.gpin.gt.(0)) then write(2,15) ra,dec,u,uerr,g,gerr,r,rerr,i,ierr,z,zerr, : upin,upinerr,gp,gpinerr,rp,rpinerr,ip,ipinerr, : zp,zpinerr end if if(gpin.gt.(0).and.rpin.gt.(0)) then write(4,15) ra,dec,u,uerr,g,gerr,r,rerr,i,ierr,z,zerr, : upin,upinerr,gp,gpinerr,rp,rpinerr,ip,ipinerr, : zp,zpinerr end if if(rpin.gt.(0).and.ipin.gt.(0)) then write(5,14) ra,dec,u,uerr,g,gerr,r,rerr,i,ierr,z,zerr, : upin,upinerr,gp,gpinerr,rp,rpinerr,ip,ipinerr, : zp,zpinerr,rpin,ipin end if if(ipin.gt.(0).and.zpin.gt.(0)) then write(6,15) ra,dec,u,uerr,g,gerr,r,rerr,i,ierr,z,zerr, : upin,upinerr,gp,gpinerr,rp,rpinerr,ip,ipinerr, : zp,zpinerr end if 14 format(f9.5,f10.5,f8.3,f6.3,f8.3,f6.3,f8.3,f6.3,f8.3,f6.3, : f8.3,f6.3,f10.3,f9.3,f10.3,f9.3,f10.3,f9.3,f10.3,f9.3, : f10.3,f9.3,f10.3,f10.3) 15 format(f9.5,f10.5,f8.3,f6.3,f8.3,f6.3,f8.3,f6.3,f8.3,f6.3, : f8.3,f6.3,f10.3,f9.3,f10.3,f9.3,f10.3,f9.3,f10.3,f9.3, : f10.3,f9.3) else if(counter.eq.1000) then print*,'reached 1000' write(3,16) ra,dec,u,uerr,g,gerr,r,rerr,i,ierr,z,zerr, : upin,upinerr,gp,gpinerr,rp,rpinerr,ip,ipinerr, : zp,zpinerr 16 format(f9.5,f10.5,f8.3,f6.3,f8.3,f6.3,f8.3,f6.3,f8.3,f6.3, : f8.3,f6.3,f10.3,f9.3,f10.3,f9.3,f10.3,f9.3,f10.3,f9.3, : f10.3,f9.3) go to 17 else gprp = gp - rp rpip = rp - ip ipzp = ip - zp counter = counter + 1 go to 10 end if 17 continue end do 30 continue close(1) close(2) end