Changeset 604 for codes/icosagcm/trunk/src/parallel/omp_para.F90
- Timestamp:
- 10/24/17 01:32:57 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/parallel/omp_para.F90
r548 r604 204 204 END SUBROUTINE init_omp_para 205 205 206 SUBROUTINE distrib_level( size,lbegin,lend)207 IMPLICIT NONE 208 INTEGER,INTENT(IN) :: size206 SUBROUTINE distrib_level(ibegin,iend, lbegin,lend) 207 IMPLICIT NONE 208 INTEGER,INTENT(IN) :: ibegin,iend 209 209 INTEGER,INTENT(OUT) :: lbegin 210 210 INTEGER,INTENT(OUT) :: lend 211 INTEGER :: div,rest212 211 INTEGER :: size,div,rest 212 size=iend-ibegin+1 213 213 div=size/omp_level_size 214 214 rest=MOD(size,omp_level_size) 215 215 IF (omp_level_rank<rest) THEN 216 lbegin=(div+1)*omp_level_rank +1216 lbegin=(div+1)*omp_level_rank + ibegin 217 217 lend=lbegin+div 218 218 ELSE 219 lbegin=(div+1)*rest + (omp_level_rank-rest)*div +1219 lbegin=(div+1)*rest + (omp_level_rank-rest)*div + ibegin 220 220 lend=lbegin+div-1 221 221 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.