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 |