!-------------------------------------- LICENCE BEGIN ------------------------------------ !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END -------------------------------------- ! CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C FFTPACK 5.0 C Copyright (C) 1995-2004, Scientific Computing Division, C University Corporation for Atmospheric Research C Licensed under the GNU General Public License (GPL) C C Authors: Paul N. Swarztrauber and Richard A. Valent C C Revision: L. Fillion - ARMA/MSC - Jan 2001: Used in Limited area Mesovar analysis. C C $Id: xercon.ftn,v 1.2 2010/08/20 16:40:06 armaanl Exp $ C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC #include "taglam4d.cdk"![]()
LOGICAL FUNCTION XERCON (INC,JUMP,N,LOT) INTEGER INC, JUMP, N, LOT INTEGER I, J, JNEW, LCM C C Definition: positive integers INC, JUMP, N and LOT are consistent C ---------- C if I1*INC + J1*JUMP = I2*INC + J2*JUMP for I1,I2 < N and J1,J2 C < LOT implies I1=I2 and J1=J2. C C For multiple FFTs to execute correctly, input parameters INC, C JUMP, N and LOT must be consistent ... otherwise at least one C array element mistakenly is transformed more than once. C C XERCON = .TRUE. if and only if INC, JUMP, N and LOT are C consistent. C C ------------------------------------------------------------------ C C Compute I = greatest common divisor (INC, JUMP) C I = INC J = JUMP 10 CONTINUE IF (J .NE. 0) THEN JNEW = MOD(I,J) I = J J = JNEW GO TO 10 ENDIF C C Compute LCM = least common multiple (INC, JUMP) C LCM = (INC*JUMP)/I C C Check consistency of INC, JUMP, N, LOT C IF (LCM .LE. (N-1)*INC .AND. LCM .LE. (LOT-1)*JUMP) THEN XERCON = .FALSE. ELSE XERCON = .TRUE. ENDIF C RETURN END