source: LMDZ6/branches/Amaury_dev/libf/misc/lmdz_assert_eq.f90 @ 5114

Last change on this file since 5114 was 5113, checked in by abarral, 2 months ago

Rename modules in misc from *_mod > lmdz_*
Put cbrt.f90, ch*.f90, pch*.f90 in new lmdz_libmath_pch.f90

  • 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: 1.9 KB
Line 
1MODULE lmdz_assert_eq
2
3  IMPLICIT NONE
4
5  INTERFACE assert_eq
6    MODULE PROCEDURE assert_eq2, assert_eq3, assert_eq4, assert_eqn
7  END INTERFACE
8
9  PRIVATE assert_eq2, assert_eq3, assert_eq4, assert_eqn
10
11CONTAINS
12
13  FUNCTION assert_eq2(n1, n2, string)
14    CHARACTER(LEN = *), INTENT(IN) :: string
15    INTEGER, INTENT(IN) :: n1, n2
16    INTEGER  assert_eq2
17    IF (n1 == n2) THEN
18      assert_eq2 = n1
19    ELSE
20      WRITE (*, *) 'nrerror: an assert_eq failed with this tag: ', &
21              string
22      PRINT *, 'program terminated by assert_eq2'
23      STOP 1
24    END IF
25  END FUNCTION assert_eq2
26  !BL
27  FUNCTION assert_eq3(n1, n2, n3, string)
28    CHARACTER(LEN = *), INTENT(IN) :: string
29    INTEGER, INTENT(IN) :: n1, n2, n3
30    INTEGER  assert_eq3
31    IF (n1 == n2 .and. n2 == n3) THEN
32      assert_eq3 = n1
33    ELSE
34      WRITE (*, *) 'nrerror: an assert_eq failed with this tag: ', &
35              string
36      PRINT *, 'program terminated by assert_eq3'
37      STOP 1
38    END IF
39  END FUNCTION assert_eq3
40  !BL
41  FUNCTION assert_eq4(n1, n2, n3, n4, string)
42    CHARACTER(LEN = *), INTENT(IN) :: string
43    INTEGER, INTENT(IN) :: n1, n2, n3, n4
44    INTEGER  assert_eq4
45    IF (n1 == n2 .and. n2 == n3 .and. n3 == n4) THEN
46      assert_eq4 = n1
47    ELSE
48      WRITE (*, *) 'nrerror: an assert_eq failed with this tag: ', &
49              string, n1, n2, n3, n4
50      PRINT *, 'program terminated by assert_eq4'
51      STOP 1
52    END IF
53  END FUNCTION assert_eq4
54  !BL
55  FUNCTION assert_eqn(nn, string)
56    CHARACTER(LEN = *), INTENT(IN) :: string
57    INTEGER, DIMENSION(:), INTENT(IN) :: nn
58    INTEGER  assert_eqn
59    IF (all(nn(2:) == nn(1))) THEN
60      assert_eqn = nn(1)
61    ELSE
62      WRITE (*, *) 'nrerror: an assert_eq failed with this tag: ', &
63              string
64      PRINT *, 'program terminated by assert_eqn'
65      STOP 1
66    END IF
67  END FUNCTION assert_eqn
68
69END MODULE lmdz_assert_eq
Note: See TracBrowser for help on using the repository browser.