Meh… Not really… Example;
sync all
i_a[i_otherimage] = i_data
sync all
usually fails (wrong iteration number)
sync all
i_data = i_a[i_otherimage]
sync all
does most times (wrong iteration number)
but this never does;
do while(l_notdone)
allocate(p_localdatastucture)
sync all
p_localdatastructure = p_remotedatastructure[i_otherimage]
do while (p_localdatastructure%i_iterationnumber .ne. i_iterationnumber)
deallocate(p_localdatastructure)
sleep(1)
allocate(p_localdatastructure)
p_localdatastructure = p_remotedatastructure[i_otherimage]
end do
sync all
… some work …
deallocate(p_localdatastructure)
sync all
end do
always works so long as you always deallocate the structure and sleep if you need to.
Knarfnarf