From b9722b866c759bf9cfc93553141fa14848c39831 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 28 Feb 2014 10:30:07 +0000 Subject: [PATCH] improved error handling when getting number of threads --- code/numerics.f90 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/numerics.f90 b/code/numerics.f90 index 5a0d2203b..d5b84b17e 100644 --- a/code/numerics.f90 +++ b/code/numerics.f90 @@ -163,11 +163,14 @@ subroutine numerics_init #include "compilation_info.f90" !$ call GET_ENVIRONMENT_VARIABLE(NAME='DAMASK_NUM_THREADS',VALUE=DAMASK_NumThreadsString,STATUS=gotDAMASK_NUM_THREADS) ! get environment variable DAMASK_NUM_THREADS... -!$ if(gotDAMASK_NUM_THREADS /= 0) & +!$ if(gotDAMASK_NUM_THREADS /= 0) then ! could not get number of threads, set it to 1 !$ call IO_warning(35_pInt,ext_msg='BEGIN:'//DAMASK_NumThreadsString//':END') -!$ read(DAMASK_NumThreadsString,'(i6)') DAMASK_NumThreadsInt ! ...convert it to integer... -!$ if (DAMASK_NumThreadsInt < 1) DAMASK_NumThreadsInt = 1 ! ...ensure that its at least one... -!$ call omp_set_num_threads(DAMASK_NumThreadsInt) ! ...and use it as number of threads for parallel execution +!$ DAMASK_NumThreadsInt = 1 +!$ else +!$ read(DAMASK_NumThreadsString,'(i6)') DAMASK_NumThreadsInt ! read as integer +!$ if (DAMASK_NumThreadsInt < 1) DAMASK_NumThreadsInt = 1 ! in case of string conversion fails, set it to one +!$ endif +!$ call omp_set_num_threads(DAMASK_NumThreadsInt) ! set number of threads for parallel execution !-------------------------------------------------------------------------------------------------- ! try to open the config file