;+ ;; ;; Controle les conditions cycliques ;; ;- FUNCTION boundperio, z, uu = uu, vv = vv, ff1 = ff1 @common ; zz = z type = 0 IF keyword_set(uu) THEN type = 1 IF keyword_set(vv) THEN type = 2 IF keyword_set(ff1) THEN type = 3 ; milieu = 91 ; indice de colonne (convention IDL) du point T, centre ; de symetrie (son indice de ligne etant jpj-2) ; Ce point T se replie sur lui meme CASE (size(z))[0] OF 2 : BEGIN zz(0, *) = zz(jpi-2, *) zz(jpi-1, *) = zz(1, *) CASE type OF 0:BEGIN zz(*, jpj-1) = shift(reverse( zz(*, jpj-3)), 1) zz(milieu:jpi-1, jpj-2) = reverse( zz(1:milieu, jpj-2) ) END ; Point u 1:BEGIN zz(*, jpj-1) = -reverse( zz(*, jpj-3)) zz(milieu-1:jpi-1, jpj-2) = -reverse( zz(0:milieu, jpj-2) ) END ; Point v 2:BEGIN zz(*, jpj-2) = -shift(reverse( zz(*, jpj-3)), 1) zz(*, jpj-1) = -shift(reverse( zz(*, jpj-4)), 1) END ; Point f 3:BEGIN zz(*, jpj-2) = reverse( zz(*, jpj-3)) zz(*, jpj-1) = reverse( zz(*, jpj-4)) END ENDCASE END 3 : BEGIN zz(0, *, *) = zz(jpi-2, *, *) zz(jpi-1, *, *) = zz(1, *, *) CASE type OF 0:BEGIN zz(*, jpj-1, *) = shift(reverse( zz(*, jpj-3, *)), 1, 0, 0) zz(milieu:jpi-1, jpj-2, *) = reverse( zz(1:milieu, jpj-2, *) ) END ; Point u 1:BEGIN zz(*, jpj-1, *) = reverse( zz(*, jpj-3, *)) zz(milieu-1:jpi-1, jpj-2, *) = -reverse( zz(0:milieu, jpj-2, *) ) END ; Point v 2:BEGIN zz(*, jpj-2, *) = -shift(reverse( zz(*, jpj-3, *)), 1, 0, 0) zz(*, jpj-1, *) = -shift(reverse( zz(*, jpj-4, *)), 1, 0, 0) END ; Point f 3:BEGIN zz(*, jpj-2, *) = reverse( zz(*, jpj-3, *)) zz(*, jpj-1, *) = reverse( zz(*, jpj-4, *)) END ENDCASE END ENDCASE return, zz END