129
130 class(MethodCellPollockType), intent(inout) :: this
131 type(ParticleType), pointer, intent(inout) :: particle
132 real(DP), intent(in) :: tmax
133
134 real(DP) :: xOrigin
135 real(DP) :: yOrigin
136 real(DP) :: zOrigin
137 real(DP) :: sinrot
138 real(DP) :: cosrot
139
140 select type (cell => this%cell)
141 type is (cellrecttype)
142 call this%assess(particle, this%cell%defn, tmax)
143 if (.not. particle%advancing) return
144
145
146
147
148 xorigin = cell%xOrigin
149 yorigin = cell%yOrigin
150 zorigin = cell%zOrigin
151 sinrot = cell%sinrot
152 cosrot = cell%cosrot
153 call particle%transform(xorigin, yorigin, zorigin, &
154 sinrot, cosrot)
155 call this%track(particle, 2, tmax)
156 call particle%transform(xorigin, yorigin, zorigin, &
157 sinrot, cosrot, invert=.true.)
158 call particle%reset_transform()
159 end select