Opened 4 years ago
Closed 4 years ago
#901 closed upgrade (Done)
Improved memory.F
| Reported by: | arango | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | Release ROMS/TOMS 4.0 |
| Component: | Nonlinear | Version: | 3.9 |
| Keywords: | Cc: |
Description
Updated memory.F to avoid creating a temporary vector for the fifth argument in the call to mp_collect during Fortran execution. Now, we have:
#ifdef DISTRIBUTE
IF (.not.allocated(Bwrk)) THEN
allocate ( Bwrk(Ntiles+1) )
END IF
IF (.not.allocated(Dwrk)) THEN
allocate ( Dwrk(Ntiles+1) )
END IF
#endif
...
#ifdef DISTRIBUTE
Bwrk=spv
Dwrk=spv
DO ng=1,Ngrids
Bwrk(MyRank+1)=BmemMax(ng)*1.0E-6_r8 ! already in bytes
Dwrk(MyRank+1)=megabytefac*Dmem(ng)
CALL mp_collect (ng, iNLM, numthreads, spv, Bwrk)
CALL mp_collect (ng, iNLM, numthreads, spv, Dwrk)
Bsize(MyRank,ng)=Bwrk(MyRank+1)
Dsize(MyRank,ng)=Dwrk(MyRank+1)
Bwrk=spv
Dwrk=spv
END DO
#else
where Bwrk and Dwrk are temporary vectors.
Note:
See TracTickets
for help on using tickets.
