c do i0l=1,n0l if(r3rgw(i0l,0,n0m).gt.0.0)then do i0m=1,n0m if(r3rgw(i0l,0,i0m).ne.p0mis)then if(r2arafrc(i0l,i0m).ne.p0mis)then if(i0m.eq.n0m)then continue else if(i0m+1.le.n0m.and.r2arafrc(i0l,i0m+1).gt.0.0)then r3rgw(i0l,0,i0m+1)=r3rgw(i0l,0,i0m+1) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m+1) else if(i0m+2.le.n0m.and.r2arafrc(i0l,i0m+2).gt.0.0)then r3rgw(i0l,0,i0m+2)=r3rgw(i0l,0,i0m+2) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m+2) else if(i0m+3.le.n0m.and.r2arafrc(i0l,i0m+3).gt.0.0)then r3rgw(i0l,0,i0m+3)=r3rgw(i0l,0,i0m+3) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m+3) else if(i0m+4.le.n0m.and.r2arafrc(i0l,i0m+4).gt.0.0)then r3rgw(i0l,0,i0m+4)=r3rgw(i0l,0,i0m+4) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m+4) else if(i0m+5.le.n0m.and.r2arafrc(i0l,i0m+5).gt.0.0)then r3rgw(i0l,0,i0m+5)=r3rgw(i0l,0,i0m+5) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m+5) else if(i0m+1.le.n0m.and.r2arafrc(i0l,i0m+1).eq.0.0)then r3rgw(i0l,0,i0m+1)=r3rgw(i0l,0,i0m+1) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/1e-10 else write(*,*) 'need more lines in cpl/bin/main.f1' write(*,*) i0m,n0m,r2arafrc(i0l,1) write(*,*) i0m,n0m,r2arafrc(i0l,2) write(*,*) i0m,n0m,r2arafrc(i0l,3) write(*,*) i0m,n0m,r2arafrc(i0l,4) stop end if end if r3rgw(i0l,0,i0m)=max(0.0,r3rgw(i0l,0,i0m)) end if end do else do i0m=n0m,1,-1 if(r3rgw(i0l,0,i0m).ne.p0mis)then if(r2arafrc(i0l,i0m).ne.p0mis.and. $ r2arafrc(i0l,n0m).le.0.99)then if(i0m.eq.1)then continue else if(i0m-1.ge.1.and.r2arafrc(i0l,i0m-1).gt.0.0)then r3rgw(i0l,0,i0m-1)=r3rgw(i0l,0,i0m-1) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m-1) else if(i0m-2.ge.1.and.r2arafrc(i0l,i0m-2).gt.0.0)then r3rgw(i0l,0,i0m-2)=r3rgw(i0l,0,i0m-2) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m-2) else if(i0m-3.ge.1.and.r2arafrc(i0l,i0m-3).gt.0.0)then r3rgw(i0l,0,i0m-3)=r3rgw(i0l,0,i0m-3) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m-3) else if(i0m-4.ge.1.and.r2arafrc(i0l,i0m-4).gt.0.0)then r3rgw(i0l,0,i0m-4)=r3rgw(i0l,0,i0m-4) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m-4) else if(i0m-5.ge.1.and.r2arafrc(i0l,i0m-5).gt.0.0)then r3rgw(i0l,0,i0m-5)=r3rgw(i0l,0,i0m-5) $ +min(0.0,r3rgw(i0l,0,i0m)) $ *r2arafrc(i0l,i0m)/r2arafrc(i0l,i0m-5) end if end if r3rgw(i0l,0,i0m)=max(0.0,r3rgw(i0l,0,i0m)) end if c bugfix end end do end if end do d write(*,*) 'main: r3rgw(1):',r3rgw(i0ldbg,0,1) d write(*,*) 'main: r3rgw(2):',r3rgw(i0ldbg,0,2) d write(*,*) 'main: r3rgw(3):',r3rgw(i0ldbg,0,3) d write(*,*) 'main: r3rgw(4):',r3rgw(i0ldbg,0,4)