source: CONFIG_DEVT/IPSLCM6.5_work_ENSEMBLES/modeles/NEMO/tools/OBSTOOLS/src/test_arrays_mod.F90 @ 5501

Last change on this file since 5501 was 5501, checked in by aclsce, 4 years ago

First import of IPSLCM6.5_work_ENSEMBLES working configuration

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.