1 |
|
module acc_m |
2 |
|
|
|
! $Header: /home/cvsroot/LMDZ4/libf/filtrez/acc.F,v 1.1.1.1 2004/05/19 |
|
|
! 12:53:09 lmdzadmin Exp $ |
|
|
|
|
|
SUBROUTINE acc(vec, d, im) |
|
3 |
implicit none |
implicit none |
4 |
integer im, i, j |
|
5 |
real vec(im, im), d(im) |
contains |
6 |
real sum, ssum |
|
7 |
|
SUBROUTINE acc(vec) |
8 |
DO j = 1, im |
|
9 |
DO i = 1, im |
! From LMDZ4/libf/filtrez/acc.F, v 1.1.1.1 2004/05/19 12:53:09 |
10 |
d(i) = vec(i, j)*vec(i, j) |
|
11 |
END DO |
! Normalize each column of vec. |
12 |
sum = ssum(im, d, 1) |
|
13 |
sum = sqrt(sum) |
real, intent(inout):: vec(:, :) |
14 |
DO i = 1, im |
|
15 |
vec(i, j) = vec(i, j)/sum |
! Local: |
16 |
END DO |
integer j |
17 |
END DO |
|
18 |
RETURN |
!-------------------------------------------------- |
19 |
END SUBROUTINE acc |
|
20 |
|
forall (j = 1:size(vec, 2)) vec(:, j) = vec(:, j) / sqrt(sum(vec(:, j)**2)) |
21 |
|
|
22 |
|
END SUBROUTINE acc |
23 |
|
|
24 |
|
end module acc_m |