module minkowski implicit none complex, parameter :: ii = (0.,1.) real, dimension(0:3,0:3), parameter :: unit4 = reshape((/ 1.,0.,0.,0., & 0.,1.,0.,0., & 0.,0.,1.,0., & 0.,0.,0.,1. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: zero4 = 0. complex, dimension(0:3,0:3), parameter :: gamma0 = reshape((/ 1., 0., 0., 0., & 0., 1., 0., 0., & 0., 0.,-1., 0., & 0., 0., 0.,-1. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma1 = reshape((/ 0., 0., 0.,-1., & 0., 0.,-1., 0., & 0., 1., 0., 0., & 1., 0., 0., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma2 = ii*reshape((/ 0., 0., 0.,-1., & 0., 0., 1., 0., & 0., 1., 0., 0., & -1., 0., 0., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma3 = reshape((/ 0., 0.,-1., 0., & 0., 0., 0., 1., & 1., 0., 0., 0., & 0.,-1., 0., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma5 = reshape((/ 0., 0., 1., 0., & 0., 0., 0., 1., & 1., 0., 0., 0., & 0., 1., 0., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma6 = (unit4-gamma5)/2. complex, dimension(0:3,0:3), parameter :: gamma7 = (unit4+gamma5)/2. complex, dimension(0:3,0:3), parameter :: gamma8 = reshape((/ 0., 0.,-1., 0., & 0., 0., 0.,-1., & 1., 0., 0., 0., & 0., 1., 0., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma9 = reshape((/ 0., 1., 0., 0., & 1., 0., 0., 0., & 0., 0., 0.,-1., & 0., 0.,-1., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma10 = ii*reshape((/ 0., 1., 0., 0., & -1., 0., 0., 0., & 0., 0., 0.,-1., & 0., 0., 1., 0. /),(/4,4/)) complex, dimension(0:3,0:3), parameter :: gamma11 = reshape((/ 1., 0., 0., 0., & 0.,-1., 0., 0., & 0., 0.,-1., 0., & 0., 0., 0., 1. /),(/4,4/)) complex, dimension(0:3,0:3,0:11), parameter :: gamma = reshape( (/ gamma0,gamma1,gamma2,gamma3,zero4,gamma5, & gamma6,gamma7,gamma8,gamma9,gamma10,gamma11 /), & (/4,4,12/)) end module minkowski