Opened 5 years ago

Closed 4 years ago

#208 closed defect (fixed)

Error in paralelisatino interface of interpolation

Reported by: jpolcher Owned by: somebody
Priority: major Milestone:
Component: Model architecture Version:
Keywords: Cc:

Description

aggregate_p was designed to called in a parallel section of the code and manage the interpolation which is only mono-proc. Once this is done the result (sub_index, sub_area) are scattered to all other processors.

This works well, except when in some routines aggregate_p is called within an "IF ( is_root_prc ) THEN" structure. In this case the global array is scattered onto the local arrays which are not correctly dimensioned. This leads to out of bounds access to memory.

This bug has been in the code for years and it is surprising it has not been noted before !

The solution is simply to precede the the "CALL scatter()" with a "IF ( nbpt < nbp_glo)". So the scatter will only be applied if the code has been called with local variables.

Change History (1)

comment:1 Changed 4 years ago by jgipsl

  • Resolution set to fixed
  • Status changed from new to closed

I can not find this way of coding in the trunk. It must have been corrected earlier.

Note: See TracTickets for help on using tickets.