source: lmdz_wrf/trunk/tools/module_generic.F90 @ 762

Last change on this file since 762 was 715, checked in by lfita, 9 years ago

Adding Fortran module for the interpolation via Fortran modules `Partialmap_EntiremapFor'

File size: 1.6 KB
Line 
1MODULE module_generic
2! Module with generic functions
3
4  CONTAINS
5
6  FUNCTION Index2DArrayR(array2D, d1, d2, val)
7! Function to provide the first index of a given value inside a 2D real array
8
9    IMPLICIT NONE
10
11    INTEGER, PARAMETER                                   :: r_k = KIND(1.d0)
12    INTEGER, INTENT(in)                                  :: d1, d2
13    REAL(r_k), INTENT(in)                                :: val
14    REAL(r_k), DIMENSION(d1,d2), INTENT(in)              :: array2D
15    INTEGER, DIMENSION(2)                                :: Index2DArrayR
16
17! Local
18    INTEGER                                              :: i, j
19    CHARACTER(LEN=50)                                    :: fname
20
21    fname = 'Index2DArrayR'
22
23    Index2DArrayR = -1
24
25    DO i=1,d1
26      DO j=1,d2
27        IF (array2d(i,j) == val) THEN
28          Index2DArrayR(1) = i
29          Index2DArrayR(2) = j
30          EXIT
31        END IF
32      END DO
33    END DO
34
35  END FUNCTION Index2DArrayR
36
37  CHARACTER(LEN=50) FUNCTION ErrWarnMsg(msg)
38! Function to print error/warning message
39
40    IMPLICIT NONE
41
42    CHARACTER(LEN=3), INTENT(in)                         :: msg
43! Local
44    CHARACTER(LEN=50)                                    :: fname
45
46    fname = 'ErrWarnMsg'
47
48    IF (msg == 'err') THEN
49      ErrWarnMsg = 'ERROR -- error -- ERROR -- error'
50    ELSE IF (msg == 'wrn') THEN
51      ErrWarnMsg = 'WARNING -- warning -- WARNING -- warning'
52    ELSE
53      PRINT *,'ERROR -- error -- ERROR -- error'
54      PRINT *,'  ' // TRIM(fname) // ": '" // TRIM(msg) // "' does not exist!!"
55      STOP
56    END IF
57  END FUNCTION ErrWarnMsg
58
59END MODULE module_generic
Note: See TracBrowser for help on using the repository browser.