Last change
on this file since 2873 was
1910,
checked in by Laurent Fairhead, 11 years ago
|
Merged trunk changes r1860:1909 into testing branch
|
-
Property copyright set to
Name of program: LMDZ Creation date: 1984 Version: LMDZ5 License: CeCILL version 2 Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539 See the license file in the root directory
|
File size:
774 bytes
|
Rev | Line | |
---|
[1765] | 1 | MODULE diagmult_m |
---|
| 2 | |
---|
| 3 | IMPLICIT NONE |
---|
| 4 | |
---|
| 5 | INTERFACE diagmult |
---|
| 6 | MODULE PROCEDURE diagmult_rv,diagmult_r |
---|
| 7 | END INTERFACE |
---|
| 8 | |
---|
| 9 | private diagmult_rv,diagmult_r |
---|
| 10 | |
---|
| 11 | CONTAINS |
---|
| 12 | |
---|
| 13 | SUBROUTINE diagmult_rv(mat,diag) |
---|
| 14 | use assert_eq_m, only: assert_eq |
---|
| 15 | REAL, DIMENSION(:,:), INTENT(INOUT) :: mat |
---|
| 16 | REAL, DIMENSION(:), INTENT(IN) :: diag |
---|
| 17 | INTEGER j,n |
---|
| 18 | n = assert_eq(size(diag),min(size(mat,1),size(mat,2)),'diagmult_rv') |
---|
| 19 | do j=1,n |
---|
| 20 | mat(j,j)=mat(j,j)*diag(j) |
---|
| 21 | end do |
---|
| 22 | END SUBROUTINE diagmult_rv |
---|
| 23 | !BL |
---|
| 24 | SUBROUTINE diagmult_r(mat,diag) |
---|
| 25 | REAL, DIMENSION(:,:), INTENT(INOUT) :: mat |
---|
| 26 | REAL, INTENT(IN) :: diag |
---|
| 27 | INTEGER j,n |
---|
| 28 | n = min(size(mat,1),size(mat,2)) |
---|
| 29 | do j=1,n |
---|
| 30 | mat(j,j)=mat(j,j)*diag |
---|
| 31 | end do |
---|
| 32 | END SUBROUTINE diagmult_r |
---|
| 33 | |
---|
| 34 | END MODULE diagmult_m |
---|
Note: See
TracBrowser
for help on using the repository browser.