Changeset 604 for codes/icosagcm/trunk/src/parallel
- Timestamp:
- 10/24/17 01:32:57 (7 years ago)
- Location:
- codes/icosagcm/trunk/src/parallel
- Files:
-
- 2 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 -
codes/icosagcm/trunk/src/parallel/transfert_mpi.f90
r548 r604 1237 1237 1238 1238 dim3=size(field(ind)%rval3d,2) 1239 CALL distrib_level( dim3,lbegin,lend)1239 CALL distrib_level(1,dim3, lbegin,lend) 1240 1240 1241 1241 rval3d=>field(ind)%rval3d … … 1295 1295 IF (.NOT. assigned_domain(ind) ) CYCLE 1296 1296 dim3=size(field(ind)%rval3d,2) 1297 CALL distrib_level( dim3,lbegin,lend)1297 CALL distrib_level(1,dim3, lbegin,lend) 1298 1298 rval3d=>field(ind)%rval3d 1299 1299 req=>message%request(ind) … … 1349 1349 1350 1350 dim3=size(field(ind)%rval4d,2) 1351 CALL distrib_level( dim3,lbegin,lend)1351 CALL distrib_level(1,dim3, lbegin,lend) 1352 1352 dim4=size(field(ind)%rval4d,3) 1353 1353 rval4d=>field(ind)%rval4d … … 1411 1411 1412 1412 dim3=size(field(ind)%rval4d,2) 1413 CALL distrib_level( dim3,lbegin,lend)1413 CALL distrib_level(1,dim3, lbegin,lend) 1414 1414 dim4=size(field(ind)%rval4d,3) 1415 1415 rval4d=>field(ind)%rval4d … … 1589 1589 dim3=size(rval3d,2) 1590 1590 1591 CALL distrib_level( dim3,lbegin,lend)1591 CALL distrib_level(1,dim3, lbegin,lend) 1592 1592 offset=recv%offset*dim3 + (lbegin-1)*recv%size 1593 1593 CALL trace_start("copy_from_buffer") … … 1637 1637 1638 1638 dim3=size(rval4d,2) 1639 CALL distrib_level( dim3,lbegin,lend)1639 CALL distrib_level(1,dim3, lbegin,lend) 1640 1640 dim4=size(rval4d,3) 1641 1641 CALL trace_start("copy_from_buffer")
Note: See TracChangeset
for help on using the changeset viewer.