Ignore:
Timestamp:
Mar 28, 2013, 12:41:27 PM (12 years ago)
Author:
Ehouarn Millour
Message:

Added test to stop if in OpenMP mode and trying to use adjust=y (which is not cleanly implemented); adjust=y should only be used in MPI mode (or in mixed MPI/OpenMP mode with only 1 thread).
EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dmem/conf_gcm.F

    r1699 r1734  
    6262      LOGICAL  fxyhypbb, ysinuss
    6363      INTEGER i
    64      
     64      character(len=*),parameter :: modname="conf_gcm"
     65      character (len=80) :: abort_message
     66#ifdef CPP_OMP
     67      integer,external :: OMP_GET_NUM_THREADS
     68#endif
    6569c
    6670c  -------------------------------------------------------------------
     
    9195c   initialisations:
    9296c   ----------------
    93       adjust=.false.
    94       call getin('adjust',adjust)
    95      
    96       itaumax=0
    97       call getin('itaumax',itaumax);
    98       if (itaumax<=0) itaumax=HUGE(itaumax)
    9997     
    10098!Config  Key  = lunout
     
    109107     &          STATUS='unknown',FORM='formatted')
    110108      ENDIF
     109
     110      adjust=.false.
     111      call getin('adjust',adjust)
     112
     113#ifdef CPP_OMP
     114      ! adjust=y not implemented in case of OpenMP threads...
     115!$OMP PARALLEL
     116      if ((OMP_GET_NUM_THREADS()>1).and.adjust) then
     117        write(lunout,*)'conf_gcm: Error, adjust should be set to n'
     118     &,' when running with OpenMP threads'
     119        abort_message = 'Wrong value for adjust'
     120        call abort_gcm(modname,abort_message,1)
     121      endif
     122!$OMP END PARALLEL         
     123#endif
     124
     125      itaumax=0
     126      call getin('itaumax',itaumax);
     127      if (itaumax<=0) itaumax=HUGE(itaumax)
    111128
    112129!Config  Key  = prt_level
Note: See TracChangeset for help on using the changeset viewer.