Opened 15 years ago
Closed 15 years ago
#173 closed defect (fixed)
roprof2obs cov%* allocation
Reported by: | Huw Lewis | Owned by: | Huw Lewis |
---|---|---|---|
Priority: | normal | Milestone: | 4.0 |
Component: | ropp_fm | Version: | 3.0 |
Keywords: | Cc: |
Description
Email from Hans:
I have detected a minor detail in ROPP 3 (actually it seems to be in ROPP 2 as well) that may cause a problem with some compilers. In the subroutine 'ropp_fm_roprof2obs1dbangle' there is an assigment y%cov%e(:) = y%cov%d(:) in Section 1.6 of the source file. If no BA sigmas are defined, then the matrix y%cov%d has memory allocated but is not assigned any values. In that case the above statement may crash. I have successfully compiled ROPP 3 on both PC/Cygwin with g95 and on PC/Linux with ifort. It executes fine under CygWin but crashes under Linux. It may be simply solved e.g. it by making the above statement conditional upon y%cov_ok.
Note:
See TracTickets
for help on using tickets.
It appears that the definition of cov%e, cov%f and cov%s in the ropp_fm_roprof2obs_1dbangle routine is not required in any case (where needed, cov%e is explicitly deallocated then allocated before use in other subroutines). In the corresponding refrac subroutine, cov%f, cov%e and cov%s are simply deallocated within the routine.
Subroutine ropp_fm_roprof2obs_1dbangle has been updated to match the refrac routine (see [2220]). Tested update with routine FM and 1DVAR module tests ok.
Ticket closed as fixed.