| subroutine foo(self,value) | |
| integer(kind=kind(1)), dimension(:) :: self | |
| integer(kind=kind(1)), intent(in) :: value | |
| integer(kind=kind(1)) :: x,y,sign | |
| intent(inout) :: self | |
| integer(kind=kind(1)) :: len,i | |
| len = size(self) | |
| do i = 1,len | |
| x = self(i) | |
| if (x==0.0d0) cycle | |
| y = abs(x) | |
| sign = x/y | |
| self(i) = sign*min(value,y) | |
| end do | |
| end subroutine |