-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathopt_merge.f90
50 lines (33 loc) · 1.03 KB
/
opt_merge.f90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
module opt_merge_m
implicit none
interface opt_merge
! Analogous to the intrinsic procedure "merge" : merges an
! optional parameter and a default value depending on the
! presence of the optional parameter.
module procedure opt_merge_integer, opt_merge_logical
end interface opt_merge
private
public opt_merge
contains
integer function opt_merge_integer(param, default)
integer, intent(in), optional:: param
integer, intent(in):: default
!--------------
if (present(param)) then
opt_merge_integer = param
else
opt_merge_integer = default
end if
end function opt_merge_integer
!*********************************************************************
logical function opt_merge_logical(param, default)
logical, intent(in), optional:: param
logical, intent(in):: default
!--------------
if (present(param)) then
opt_merge_logical = param
else
opt_merge_logical = default
end if
end function opt_merge_logical
end module opt_merge_m