Ignore:
Timestamp:
10/31/14 14:52:01 (10 years ago)
Author:
ymipsl
Message:

Merging OpenMP parallisme mode : by subdomain and on vertical level.
This feature is actually experimental but may be retro-compatible with the last method based only on subdomain

YM

File:
1 edited

Legend:

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

    r266 r295  
    4747  SUBROUTINE compute_wind_centered(ue,ucenter) 
    4848  USE icosa 
    49    
     49  USE omp_para 
    5050  IMPLICIT NONE 
    5151  REAL(rstd) :: ue(3*iim*jjm,llm) 
     
    5353  INTEGER :: i,j,ij,l     
    5454  
    55     DO l=1,llm 
     55    DO l=ll_begin,ll_end 
    5656      DO j=jj_begin,jj_end 
    5757        DO i=ii_begin,ii_end 
     
    7373 SUBROUTINE compute_wind_on_edge(ue,uedge) 
    7474  USE icosa 
     75  USE omp_para 
    7576     
    7677  IMPLICIT NONE 
     
    8384    CALL compute_tangential_compound(ue,ut) 
    8485   
    85     DO l=1,llm 
     86    DO l=ll_begin,ll_end 
    8687      DO j=jj_begin,jj_end 
    8788        DO i=ii_begin,ii_end 
     
    100101 SUBROUTINE compute_tangential_compound(ue,ut) 
    101102  USE icosa   
     103  USE omp_para 
    102104  IMPLICIT NONE 
    103105  REAL(rstd) :: ue(3*iim*jjm,llm) 
     
    105107  INTEGER :: i,j,l,ij 
    106108     
    107   DO l=1,llm 
     109  DO l=ll_begin,ll_end 
    108110    DO j=jj_begin,jj_end 
    109111      DO i=ii_begin,ii_end 
     
    155157 SUBROUTINE compute_wind_lonlat_compound(u, ulon, ulat) 
    156158  USE icosa   
     159  USE omp_para 
    157160     
    158161  IMPLICIT NONE 
     
    164167     
    165168   
    166     DO l=1,llm 
     169    DO l=ll_begin,ll_end 
    167170      DO j=jj_begin-1,jj_end+1 
    168171        DO i=ii_begin-1,ii_end+1 
     
    184187  SUBROUTINE compute_wind_from_lonlat_compound(ulon, ulat, u) 
    185188  USE icosa   
     189  USE omp_para 
    186190     
    187191  IMPLICIT NONE 
     
    192196  INTEGER :: i,j,ij,l      
    193197   
    194     DO l=1,llm 
     198    DO l=ll_begin,ll_end 
    195199      DO j=jj_begin-1,jj_end+1 
    196200        DO i=ii_begin-1,ii_end+1 
     
    207211  SUBROUTINE compute_wind_centered_from_lonlat_compound(ulon, ulat, u) 
    208212  USE icosa   
     213  USE omp_para 
    209214     
    210215  IMPLICIT NONE 
     
    214219 
    215220  INTEGER :: i,j,ij,l      
    216   DO l=1,llm 
     221  DO l=ll_begin,ll_end 
    217222      DO j=jj_begin-1,jj_end+1 
    218223        DO i=ii_begin-1,ii_end+1 
     
    248253  SUBROUTINE compute_wind_perp_from_lonlat_compound(ulon, ulat, up) 
    249254  USE icosa   
     255  USE omp_para 
    250256     
    251257  IMPLICIT NONE 
     
    259265   CALL compute_wind_from_lonlat_compound(ulon, ulat, u) 
    260266 
    261     DO l=1,llm 
     267    DO l=ll_begin,ll_end 
    262268      DO j=jj_begin-1,jj_end+1 
    263269        DO i=ii_begin-1,ii_end+1 
     
    297303 SUBROUTINE compute_wind_centered_lonlat_compound(uc, ulon, ulat) 
    298304  USE icosa   
     305  USE omp_para 
    299306     
    300307  IMPLICIT NONE 
     
    306313     
    307314   
    308     DO l=1,llm 
     315    DO l=ll_begin,ll_end 
    309316      DO j=jj_begin,jj_end 
    310317        DO i=ii_begin,ii_end 
     
    320327 SUBROUTINE compute_wind_centered_from_wind_lonlat_centered(ulon, ulat,uc) 
    321328  USE icosa   
     329  USE omp_para 
    322330     
    323331  IMPLICIT NONE 
     
    329337     
    330338   
    331     DO l=1,llm 
     339    DO l=ll_begin,ll_end 
    332340      DO j=jj_begin,jj_end 
    333341        DO i=ii_begin,ii_end 
     
    344352 SUBROUTINE compute_wind_perp_from_wind_centered(uc,un) 
    345353  USE icosa   
     354  USE omp_para 
    346355     
    347356  IMPLICIT NONE 
     
    352361     
    353362   
    354     DO l=1,llm 
     363    DO l=ll_begin,ll_end 
    355364      DO j=jj_begin,jj_end 
    356365        DO i=ii_begin,ii_end 
Note: See TracChangeset for help on using the changeset viewer.