[1765] | 1 | MODULE 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 | |
---|
| 11 | CONTAINS |
---|
| 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 | |
---|
| 34 | END MODULE outerdiff_m |
---|