V3FIT
enforce_periodicity.f
1  SUBROUTINE enforce_periodicity(ns, nu, nv, array0, i_phi)
2  USE stel_kinds
3  USE stel_constants
4  IMPLICIT NONE
5  INTEGER, INTENT(IN):: ns, nu, nv, i_phi
6  REAL(kind=rprec), DIMENSION(ns, nu, nv), INTENT(INOUT):: array0
7 
8  IF (i_phi == 0) THEN
9  array0(:,nu,nv) = array0(:,1,1) ! First make sure that four corners are identical
10  array0(:,1,nv) = array0(:,1,1)
11  array0(:,nu,1) = array0(:,1,1)
12  array0(:,nu,2:nv-1) = array0(:,1,2:nv-1) ! then, do full lines
13  array0(:,2:nu-1,nv) = array0(:,2:nu-1,1)
14  ELSE ! PHI is not periodic on v!!
15  array0(:,1:nu,nv) = twopi
16  array0(:,nu,1:nv-1) = array0(:,1,1:nv-1)
17  ENDIF
18 
19  END SUBROUTINE enforce_periodicity