Opened 4 years ago
Closed 4 years ago
#2549 closed Bug (fixed)
wrong diagnotic of error handling in stp_ctl
Reported by: | cbricaud | Owned by: | systeam |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | DYN | Version: | trunk |
Severity: | major | Keywords: | |
Cc: |
Description
Context
Some mpi splitting can lead to have land over all the inner local domain of a processor and ocean only on the halo bands.
stp_ctl compute MAXVAL of different fields to chec model values:
IF sn_cfctl%l_runstat= .True. the MAXVAL values are computed first on each local domain and then over all the processor , in stp_ctl.
IF sn_cfctl%l_runstat= .False. the MAXVAL values are only computed on each local domain.
When sn_cfctl%l_runstat= .False., the model stops on processors where the inner local domain have only land with values such as: -1.797693134862316E+308 e+308
Analysis
In stp_ctl, MAXVAL are computed with a mask: zmax(3) = MAXVAL( -ts(:,:,:,jp_sal,Kmm), mask = llmsk )
llmsk is false over the halo band
When inner local domain have only land, all llmsk is set to false
MAXVAL documentation (https://gcc.gnu.org/onlinedocs/gfortran/MAXVAL.html) says that, if all of the elements of MASK are .FALSE., then the result is -HUGE(ARRAY)
Fix
check tmask values in the inner domain and set zmax to zero if the inner local domain have only land?
Commit History (1)
Changeset | Author | Time | ChangeLog |
---|---|---|---|
13616 | smasson | 2020-10-15T17:58:33+02:00 | trunk: bugfix in stpctl for land inner-domains, see #2549 |
Change History (3)
comment:1 Changed 4 years ago by smasson
comment:2 Changed 4 years ago by smasson
In 13616:
comment:3 Changed 4 years ago by smasson
- Resolution set to fixed
- Status changed from new to closed
done in [13616]
check of land only domains was introduced in [13136] and was accidentally removed in [13216]...