source: LMDZ5/branches/testing/tools/Max_diff_nc_with_lib/NR_util/outerdiff.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: 989 bytes
Line 
1MODULE outerdiff_m
2
3  IMPLICIT NONE
4
5  INTERFACE outerdiff
6     MODULE PROCEDURE outerdiff_r,outerdiff_d,outerdiff_i
7  END INTERFACE
8
9  private outerdiff_r,outerdiff_d,outerdiff_i
10
11CONTAINS
12
13  FUNCTION outerdiff_r(a,b)
14    REAL, DIMENSION(:), INTENT(IN) :: a,b
15    REAL, DIMENSION(size(a),size(b)) :: outerdiff_r
16    outerdiff_r = spread(a,dim=2,ncopies=size(b)) - &
17         spread(b,dim=1,ncopies=size(a))
18  END FUNCTION outerdiff_r
19  !BL
20  FUNCTION outerdiff_d(a,b)
21    DOUBLE PRECISION, DIMENSION(:), INTENT(IN) :: a,b
22    DOUBLE PRECISION, DIMENSION(size(a),size(b)) :: outerdiff_d
23    outerdiff_d = spread(a,dim=2,ncopies=size(b)) - &
24         spread(b,dim=1,ncopies=size(a))
25  END FUNCTION outerdiff_d
26  !BL
27  FUNCTION outerdiff_i(a,b)
28    INTEGER, DIMENSION(:), INTENT(IN) :: a,b
29    INTEGER, DIMENSION(size(a),size(b)) :: outerdiff_i
30    outerdiff_i = spread(a,dim=2,ncopies=size(b)) - &
31         spread(b,dim=1,ncopies=size(a))
32  END FUNCTION outerdiff_i
33
34END MODULE outerdiff_m
Note: See TracBrowser for help on using the repository browser.