Changeset 8ed5f11 in flexpart.git for src/timemanager_mpi.f90
- Timestamp:
- Apr 7, 2016, 8:55:43 AM (8 years ago)
- Branches:
- master, 10.4.1_pesei, GFS_025, bugfixes+enhancements, dev, release-10, release-10.4.1, scaling-bug, univie
- Children:
- e31b3b5
- Parents:
- 7e52e2e
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/timemanager_mpi.f90
r7e52e2e r8ed5f11 228 228 if (mp_measure_time.and..not.(lmpreader.and.lmp_use_reader)) call mpif_mtime('getfields',0) 229 229 230 ! Two approaches to MPI getfields is implemented: 230 231 ! Version 1 (lmp_sync=.true.) uses a read-ahead process where send/recv is done 231 232 ! in sync at start of each new field time interval 233 ! 234 ! Version 2 (lmp_sync=.false.) is for holding three fields in memory. Uses a 235 ! read-ahead process where sending/receiving of the 3rd fields is done in 236 ! the background in parallel with performing computations with fields 1&2 237 !******************************************************************************** 238 232 239 if (lmp_sync.and.lmp_use_reader.and.memstat.gt.0) then 233 240 call mpif_gf_send_vars(memstat) 234 241 if (numbnests>0) call mpif_gf_send_vars_nest(memstat) 235 ! Version 2 (lmp_sync=.false. , see below) is also used whenever 2 new fields are242 ! Version 2 (lmp_sync=.false.) is also used whenever 2 new fields are 236 243 ! read (as at first time step), in which case async send/recv is impossible. 237 244 else if (.not.lmp_sync.and.lmp_use_reader.and.memstat.ge.32) then … … 240 247 end if 241 248 242 ! Version 2 (lmp_sync=.false.) is for holding three fields in memory. Uses a243 ! read-ahead process where sending/receiving of the 3rd fields is done in244 ! the background in parallel with performing computations with fields 1&2245 !********************************************************************************246 249 if (.not.lmp_sync) then 247 250 248 ! R EADER PROCESS:251 ! Reader process: 249 252 if (memstat.gt.0..and.memstat.lt.32.and.lmp_use_reader.and.lmpreader) then 250 253 if (mp_dev_mode) write(*,*) 'Reader process: calling mpif_gf_send_vars_async' … … 252 255 end if 253 256 254 ! C OMPLETION CHECK:257 ! Completion check: 255 258 ! Issued at start of each new field period. 256 259 if (memstat.ne.0.and.memstat.lt.32.and.lmp_use_reader) then … … 258 261 end if 259 262 260 ! R ECVEIVING PROCESS(ES):261 262 263 ! Recveiving process(es): 264 ! eso TODO: at this point we do not know if clwc/ciwc will be available 265 ! at next time step. Issue receive request anyway, cancel at mpif_gf_request 263 266 if (memstat.gt.0.and.lmp_use_reader.and..not.lmpreader) then 264 267 if (mp_dev_mode) write(*,*) 'Receiving process: calling mpif_gf_send_vars_async. PID: ', mp_pid
Note: See TracChangeset
for help on using the changeset viewer.