!-------------------------------------- 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 -------------------------------------- ***s/r ngfft - calcul du prochain entier > 8 qui se factorise en 2, 3, et 5 *subroutine ngfft( F_n ) 1 * #include "impnone.cdk"
* integer F_n * *author * Jean Cote - 1990 * *revision * v2_00 - Lee V. - initial MPI version (from ngfft v1_03) * *arguments * Name I/O Description *---------------------------------------------------------------- * F_n I/O - en sortie le plus petit entier >= n qui factorise * * integer n parameter ( n = 3 ) integer k( n ) , m data m / 8 / data k / 2 , 3 , 5 / * ** integer i,j * if ( F_n.le.m ) F_n = m + 1 F_n = F_n - 1 10 F_n = F_n + 1 i = F_n 20 do 30 j=1,n if( mod(i,k(j)) .eq. 0 ) go to 40 30 continue go to 10 40 i = i/k(j) if( i .ne. 1 ) go to 20 return end