Improve ctags callback API
[geany-mirror.git] / tests / ctags / pure_elem.f95
blobe4f35f383dbc368362cb7e1ec1e09c54d1d3e7e6
1 ! elemental
3 !Pure procedures are procedures declared with the PURE keyword and which
4 !satisfy certain constraints that ensure they have no side
5 !effects. They can be used in specification expressions and
6 !within FORALL constructs and statements.
8 !Elemental procedures can be written in Fortran 95 using the ELEMENTAL
9 !keyword. Elemental procedures are automatically ``pure''.
11 !Example:
13 PURE REAL FUNCTION pure_func(x,y) ! pure okay
14 IMPLICIT NONE
15 REAL, INTENT(IN) :: x, y
16 pure_func = x*x + y*y + 2*x*y + ASIN(MIN(x/y,y/x))
17 END FUNCTION pure_func
19 PURE REAL FUNCTION F(x,y) ! pure broken returns 'PURE REAL FU'
20 IMPLICIT NONE
21 REAL, INTENT(IN) :: x, y
22 F = x*x + y*y + 2*x*y + ASIN(MIN(x/y,y/x))
23 END FUNCTION F
26 ELEMENTAL REAL FUNCTION elem_maxabs(a,b) ! elemental broke
27 IMPLICIT NONE
28 REAL,INTENT(IN) :: a,b
29 elem_maxabs = MAX(ABS(a),ABS(b))
30 END
32 PURE REAL FUNCTION pure_maxabs2(a,b) ! pure okay
33 IMPLICIT NONE
34 REAL,INTENT(IN) :: a,b
35 pure_maxabs2 = MAX(ABS(a),ABS(b))
36 END