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.

Change history (1)

comment:1 by Huw Lewis, 15 years ago

Resolution: fixed
Status: newclosed

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.

Note: See TracTickets for help on using tickets.