﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
302	Consultation about array_bound_exceed in RO inversion	Ian Culverwell	Ian Culverwell	"Kent Bækgaard Lauritsen (DMI) forwarded the following bugfix from Michael Gorbunov:

{{{
Dear Jiachun,

Thank you for noticing this problem in ROPP.

I have processed your RO event example with my code, but it didn't
produce the runtime error you had. Then I compared the ROPP code 
with my code that was adopted for ROPP and found a mistake in ROPP.

In this piece of the code:

!20130208, sometimes error, array bounds exceeded, when kmax equals n.
  DO i=0,lb
    ni = SUM(DNB(kmin:kmax+i)**2)
    IF (ni > 0) THEN
      CNB(i) = SUM(DDS(kmin:kmax-i)*DNB(kmin+i:kmax)) /  &
                   SQRT(SUM(DDS(kmin:kmax-i)**2)*ni)
    ELSE
      CNB(i) = 0.0_wp
    ENDIF
  END DO

instead of

    ni = SUM(DNB(kmin:kmax+i)**2)

there should be

    ni = SUM(DNB(kmin+i:kmax)**2)

as it is in my code and can also be established by comparing it 
with the expression for CNB(i). 

In this case, the indices of array DNB will never exceed the bound, 
even if the correlation interval touches the array boundary point.

A cc is directed to Kent B. Lauritsen, who is in contact with the ROPP team.

Best regards,

Michael


> Dear Michael,
>
> I'm a lecturer of Wuhan University. And I'm interested in the software 
> ROPP, which is downloaded in the website of gras saf. But I have a 
> problem about array_bound_exceed in RO inversion.
>
> There are 3 files in the attachment,
> openloop file :  gpsBit_C002.2011.001.09.09.G27_2010.2640_txt
> openloop code_fortran : ropp_pp_openloop.f90 occ event atmPhs : 
> atmPhs_C002.2011.001.09.09.G27_2010.2640_nc
>
>
> In the openloop code_fortran,
> ALLOCATE(DnB(n))
> ni = SUM(DNB(kmin:kmax+i)**2)
> But for some occ events, when kmax equals n, array bounds exceeded.
> I have no idea how to solve this problem.
> An occ event is given the attachment, which appeared array_bound_exceed problem.
> Thank you for your help.
>
>
> Best regards.
>
> Jiachun An,
> Wuhan University,
> China

}}}

In ROPP, the relevant lines are to be found in Sec 3.4 of ropp_pp_openloop.f90.



"	defect	closed	normal	7.0	ropp_pp	6.0	fixed		
