;; ;; $Id$ ;; ;; Simple program that evaluates whether a Pencil Code variable is periodic. ;; ;; Usage: pc_is_periodic, var ;; ;; Here var is a three-dimensional physical variable with ghost zones. ;; pro pc_is_periodic, f sizef=size(f) mx=sizef[1] my=sizef[2] mz=sizef[3] l1=3 l2=mx-1-3 m1=3 m2=my-1-3 n1=3 n2=mz-1-3 lperiodicx_bot=0 lperiodicx_top=0 lperiodicy_bot=0 lperiodicy_top=0 lperiodicz_bot=0 lperiodicz_top=0 if (min(f(l2-2:l2,m1:m2,n1:n2) eq f(0:l1-1, m1:m2 ,n1:n2 )) eq 1) $ then lperiodicx_bot=1 if (min(f(l1:l1+2,m1:m2,n1:n2) eq f(l2+1:l2+3,m1:m2 ,n1:n2 )) eq 1) $ then lperiodicx_top=1 if (min(f(l1:l2,m2-2:m2,n1:n2) eq f(l1:l2 ,0:m1-1 ,n1:n2 )) eq 1) $ then lperiodicy_bot=1 if (min(f(l1:l2,m1:m1+2,n1:n2) eq f(l1:l2 ,m2+1:m2+3 ,n1:n2 )) eq 1) $ then lperiodicy_top=1 if (min(f(l1:l2,m1:m2,n2-2:n2) eq f(l1:l2 ,m1:m2 ,0:n1-1 )) eq 1) $ then lperiodicz_bot=1 if (min(f(l1:l2,m1:m2,n1:n1+2) eq f(l1:l2 ,m1:m2 ,n2+1:n2+3)) eq 1) $ then lperiodicz_top=1 print, 'lperiodicx=', lperiodicx_bot, lperiodicx_top print, 'lperiodicy=', lperiodicy_bot, lperiodicy_top print, 'lperiodicz=', lperiodicz_bot, lperiodicz_top end