New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
test_arrays_mod.F90 in branches/2014/dev_r4650_UKMO14.11_SETTE_OBSASM/NEMOGCM/TOOLS/OBSTOOLS/src – NEMO

source: branches/2014/dev_r4650_UKMO14.11_SETTE_OBSASM/NEMOGCM/TOOLS/OBSTOOLS/src/test_arrays_mod.F90 @ 4751

Last change on this file since 4751 was 4751, checked in by djlea, 10 years ago

Changes to include an OBS test in SETTE. At the moment this uses an example profile observation.

File size: 1.9 KB
Line 
1MODULE test_arrays_mod
2USE obs_fbm
3
4INTERFACE test_arrays
5   MODULE PROCEDURE test_real_arrays
6   MODULE PROCEDURE test_real_arrays_2D
7   MODULE PROCEDURE test_real_arrays_3D
8   MODULE PROCEDURE test_integer_arrays
9END INTERFACE test_arrays
10
11CONTAINS
12
13   LOGICAL FUNCTION test_real_arrays(array_in,array_out)
14   IMPLICIT NONE
15   INTEGER :: i
16   REAL(KIND=fbdp) :: array_in(:), array_out(:)
17
18   test_real_arrays=.TRUE.
19   DO i=1,SIZE(array_in)
20      IF (array_in(i) /= array_out(i)) THEN
21         test_real_arrays=.FALSE.
22      END IF
23   END DO
24
25   IF (SIZE(array_in) /= SIZE(array_out)) THEN
26         test_real_arrays=.FALSE.
27   END IF
28
29   END FUNCTION test_real_arrays
30
31
32   LOGICAL FUNCTION test_real_arrays_2D(array_in,array_out)
33   IMPLICIT NONE
34   INTEGER :: i, j
35   REAL(KIND=fbdp) :: array_in(:,:), array_out(:,:)
36
37   test_real_arrays_2D=.TRUE.
38   DO j=1,SIZE(array_in,2)
39      DO i=1,SIZE(array_in,1)
40         IF (array_in(i,j) /= array_out(i,j)) THEN
41            test_real_arrays_2D=.FALSE.
42         END IF
43      END DO
44   END DO
45
46   IF (SIZE(array_in) /= SIZE(array_out)) THEN
47         test_real_arrays_2D=.FALSE.
48   END IF
49
50   END FUNCTION test_real_arrays_2D
51
52
53   LOGICAL FUNCTION test_real_arrays_3D(array_in,array_out)
54   IMPLICIT NONE
55   INTEGER :: i, j, k
56   REAL(KIND=fbdp) :: array_in(:,:,:), array_out(:,:,:)
57
58   test_real_arrays_3D=.TRUE.
59   DO k=1,SIZE(array_in,3)
60      DO j=1,SIZE(array_in,2)
61         DO i=1,SIZE(array_in,1)
62            IF (array_in(i,j,k) /= array_out(i,j,k)) THEN
63               test_real_arrays_3D=.FALSE.
64            END IF
65         END DO
66      END DO
67   END DO
68
69   IF (SIZE(array_in) /= SIZE(array_out)) THEN
70         test_real_arrays_3D=.FALSE.
71   END IF
72
73   END FUNCTION test_real_arrays_3D
74
75
76   LOGICAL FUNCTION test_integer_arrays(array_in,array_out)
77   IMPLICIT NONE
78   INTEGER :: i
79   INTEGER :: array_in(:), array_out(:)
80
81   test_integer_arrays=.TRUE.
82   DO i=1,SIZE(array_in)
83      IF (array_in(i) /= array_out(i)) THEN
84         test_integer_arrays=.FALSE.
85      END IF
86   END DO
87
88   IF (SIZE(array_in) /= SIZE(array_out)) THEN
89         test_integer_arrays=.FALSE.
90   END IF
91
92   END FUNCTION test_integer_arrays
93
94END MODULE test_arrays_mod
Note: See TracBrowser for help on using the repository browser.