source: LMDZ5/branches/testing/tools/Max_diff_nc_with_lib/NR_util/put_diag.f90

Last change on this file 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: 766 bytes
Line 
1MODULE put_diag_m
2
3  IMPLICIT NONE
4
5  INTERFACE put_diag
6     MODULE PROCEDURE put_diag_rv, put_diag_r
7  END INTERFACE
8
9  private put_diag_rv, put_diag_r
10
11CONTAINS
12
13  SUBROUTINE put_diag_rv(diagv,mat)
14    use assert_eq_m, only: assert_eq
15    REAL, DIMENSION(:), INTENT(IN) :: diagv
16    REAL, DIMENSION(:,:), INTENT(INOUT) :: mat
17    INTEGER :: j,n
18    n=assert_eq(size(diagv),min(size(mat,1),size(mat,2)),'put_diag_rv')
19    do j=1,n
20       mat(j,j)=diagv(j)
21    end do
22  END SUBROUTINE put_diag_rv
23  !BL
24  SUBROUTINE put_diag_r(scal,mat)
25    REAL, INTENT(IN) :: scal
26    REAL, DIMENSION(:,:), INTENT(INOUT) :: mat
27    INTEGER :: j,n
28    n = min(size(mat,1),size(mat,2))
29    do j=1,n
30       mat(j,j)=scal
31    end do
32  END SUBROUTINE put_diag_r
33
34END MODULE put_diag_m
Note: See TracBrowser for help on using the repository browser.