!-------------------------------------- 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 -------------------------------------- #include "model_macros_f.h"*
subroutine pe_rebind (F_nthreads,F_prout) 9 implicit none * logical F_prout integer F_nthreads * #include "ptopo.cdk"
*author * Lee/Valin Mar 2007 * *revision * v3_30 - Lee/Valin - initial version * v3_32 - Lee/Desgagne - simplification * integer omp_get_max_threads external omp_get_max_threads logical flag * *------------------------------------------------------------------- * if (F_nthreads .eq. Ptopo_npeOpenMP) return call omp_set_num_threads (F_nthreads) Ptopo_npeOpenMP = F_nthreads flag = .false. if (Ptopo_bind_L) then if ( (mod(F_nthreads,Ptopo_npeOpenMP_resv).eq.0 ) .or. $ (F_nthreads.lt.Ptopo_npeOpenMP_resv) ) then call rebind() flag = .true. endif endif if (F_prout) write (6,9000) Ptopo_npeOpenMP,flag 9000 format (/' Ptopo_npeOpenMP reset to: ',I,' Rebind: ',L) * *------------------------------------------------------------------- * return end