Ignore:
Timestamp:
01/09/14 09:56:11 (10 years ago)
Author:
ymipsl
Message:

Add new openMP parallelism based on distribution of domains on threads. There is no more limitation of number of threads by MPI process.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/etat0_heldsz.f90

    r170 r186  
    88  TYPE(t_field),POINTER :: f_clat(:) ! FIXME, duplication 
    99 
    10   REAL(rstd),ALLOCATABLE :: knewt_t(:),kfrict(:) 
    11  
     10  REAL(rstd),ALLOCATABLE,SAVE :: knewt_t(:),kfrict(:) 
     11!$OMP THREADPRIVATE(knewt_t,kfrict) 
    1212  LOGICAL, SAVE :: done=.FALSE. 
    13  
    14   REAL(rstd) :: teta0,ttp,delt_y,delt_z,eps 
    15   REAL(rstd) :: knewt_g, k_f,k_c_a,k_c_s 
     13!$OMP THREADPRIVATE(done) 
     14 
     15  REAL(rstd),SAVE :: teta0,ttp,delt_y,delt_z,eps 
     16!$OMP THREADPRIVATE(teta0,ttp,delt_y,delt_z,eps) 
     17 
     18  REAL(rstd),SAVE :: knewt_g, k_f,k_c_a,k_c_s 
     19!$OMP THREADPRIVATE(knewt_g, k_f,k_c_a,k_c_s) 
    1620 
    1721  PUBLIC :: etat0, held_suarez 
     
    6973    CALL Init_Teq 
    7074    DO ind=1,ndomain 
     75       IF (.NOT. assigned_domain(ind)) CYCLE 
    7176       CALL swap_dimensions(ind) 
    7277       CALL swap_geometry(ind) 
     
    139144 
    140145       DO ind=1,ndomain 
     146          IF (.NOT. assigned_domain(ind)) CYCLE 
    141147          CALL swap_dimensions(ind) 
    142148          CALL swap_geometry(ind) 
     
    230236 
    231237    DO ind=1,ndomain 
     238       IF (.NOT. assigned_domain(ind)) CYCLE 
    232239       CALL swap_dimensions(ind) 
    233240       CALL swap_geometry(ind) 
Note: See TracChangeset for help on using the changeset viewer.