Skip to content
Snippets Groups Projects
pex_m4i_8ch_WC.f 5.65 KiB
c     gfortran pex_m4i_8ch_WC.f m4iset_8ch.c /usr/lib64/libspcm_linux.so -o pex_m4i_WC

      use iso_c_binding

      implicit real*8 (a-h,o-z)

      integer*2 ipex(10000000)
      integer*2 ipex1(10000000)
      integer*4 ndp
      
      real*8 amp(8),phi(8), phaseSub(8)
      complex*16 uvec(8), uvec0(8),uvecwc(8),chelp
      
      character*64 argu
      
      pi=4.d0*datan(1.d0)
      
      ipex=0
      ipex1=0
      
c      fsamp=625.d6
c      fsamp=500.d6
      fsamp=400.d6

c      fbas=123.246d6
      fbas=297.234d6

      ndp=512000
c      ndp=2*51200
      ndp8=ndp/8


      
      
      call getarg(1,argu)
      read(argu,*)mode


      call getarg(2,argu)
      read(argu,*)att


      amp0=att*32767.0d0

c     Calibration is off
c       phi(1) = phi(1) + 0.0
c       phi(2) = phi(2) + ((3.5)  * (pi / 180.0))
c       phi(3) = phi(3) + ((-7.0045896053314207)  * (pi / 180.0))
c       phi(4) = phi(4) + ((1.0142267853021623)   * (pi / 180.0))
c       phi(5) = phi(5) + ((24.745329284667967)   * (pi / 180.0))
c       phi(6) = phi(6) + ((16.720711231231689)   * (pi / 180.0))
c       phi(7) = phi(7) + ((10.251145744323731)   * (pi / 180.0))
c       phi(8) = phi(8) + ((8.3969257831573483)   * (pi / 180.0))

      if(mode.eq.1) then
      open(3,file='wcvec.dat',status='unknown')
      do i=1,8
      read(3,*)uvec_r,uvec_i
      uvecwc(i)=dcmplx(uvec_r,uvec_i)
      phaseSub(i)= uvec_i
      uvec0(i)=dsqrt(0.125d0)*cdexp((0.d0,-1.d0)*dfloat(i-1)*pi/4.d0)
      enddo
      
      
      close(3)




      do i=1,8