Class | dc_present |
In: |
src/dc_present.f90
|
result : | logical |
arg : | integer(INTK),intent(in),optional |
val : | integer(INTK),intent(in) |
function present_and_eq_integer(arg,val) result(result) logical :: result integer(INTK),intent(in),optional :: arg integer(INTK),intent(in) :: val if(present(arg)) then if(arg==val) then result=.true. else result=.false. endif else result=.false. endif end function present_and_eq_integer
result : | logical |
arg : | real(SP),intent(in),optional |
val : | real(SP),intent(in) |
function present_and_eq_real(arg,val) result(result) logical :: result real(SP),intent(in),optional :: arg real(SP),intent(in) :: val if(present(arg)) then if(arg==val) then result=.true. else result=.false. endif else result=.false. endif end function present_and_eq_real
result : | logical |
arg : | real(DP),intent(in),optional |
val : | real(DP),intent(in) |
function present_and_eq_double(arg,val) result(result) logical :: result real(DP),intent(in),optional :: arg real(DP),intent(in) :: val if(present(arg)) then if(arg==val) then result=.true. else result=.false. endif else result=.false. endif end function present_and_eq_double
result : | logical |
arg : | logical,intent(in),optional |
function present_and_false(arg) result(result) logical :: result logical,intent(in),optional :: arg if(present(arg)) then if(arg) then result=.false. else result=.true. endif else result=.false. endif end function present_and_false
result : | logical |
arg : | real(DP),intent(in),optional |
val : | real(DP),intent(in) |
function present_and_ne_double(arg,val) result(result) logical :: result real(DP),intent(in),optional :: arg real(DP),intent(in) :: val if(present(arg)) then if(arg/=val) then result=.true. else result=.false. endif else result=.false. endif end function present_and_ne_double
result : | logical |
arg : | real(SP),intent(in),optional |
val : | real(SP),intent(in) |
function present_and_ne_real(arg,val) result(result) logical :: result real(SP),intent(in),optional :: arg real(SP),intent(in) :: val if(present(arg)) then if(arg/=val) then result=.true. else result=.false. endif else result=.false. endif end function present_and_ne_real
result : | logical |
arg : | integer(INTK),intent(in),optional |
val : | integer(INTK),intent(in) |
function present_and_ne_integer(arg,val) result(result) logical :: result integer(INTK),intent(in),optional :: arg integer(INTK),intent(in) :: val if(present(arg)) then if(arg/=val) then result=.true. else result=.false. endif else result=.false. endif end function present_and_ne_integer
result : | logical |
arg : | integer(INTK),intent(in),optional |
function present_and_nonzero(arg) result(result) logical :: result integer(INTK),intent(in),optional :: arg if(present(arg)) then if(arg==0) then result=.false. else result=.true. endif else result=.false. endif end function present_and_nonzero
result : | logical |
arg : | character(len=*),intent(in),optional |
function present_and_not_empty(arg) result(result) logical :: result character(len=*),intent(in),optional :: arg if(present(arg)) then if(arg=="") then result=.false. else result=.true. endif else result=.false. endif end function present_and_not_empty
result : | logical |
arg : | logical,intent(in),optional |
function present_and_true(arg) result(result) logical :: result logical,intent(in),optional :: arg if(present(arg)) then if(arg) then result=.true. else result=.false. endif else result=.false. endif end function present_and_true
result : | logical |
arg : | integer(INTK),intent(in),optional |
function present_and_zero(arg) result(result) logical :: result integer(INTK),intent(in),optional :: arg if(present(arg)) then if(arg==0) then result=.true. else result=.false. endif else result=.false. endif end function present_and_zero
result : | integer(INTK) |
invalid : | logical ,intent(in) |
default : | integer(INTK) ,intent(in) |
d0 : | integer(INTK) ,intent(in),optional |
d1 : | integer(INTK) ,intent(in),optional |
d2 : | integer(INTK) ,intent(in),optional |
d3 : | integer(INTK) ,intent(in),optional |
d4 : | integer(INTK) ,intent(in),optional |
d5 : | integer(INTK) ,intent(in),optional |
d6 : | integer(INTK) ,intent(in),optional |
d7 : | integer(INTK) ,intent(in),optional |
d8 : | integer(INTK) ,intent(in),optional |
d9 : | integer(INTK) ,intent(in),optional |
function present_select_Int_auto( invalid, default, d0, d1, d2, d3, d4, d5, d6, d7, d8, d9 ) result(result) implicit none logical ,intent(in) :: invalid integer(INTK) ,intent(in) :: default integer(INTK) ,intent(in),optional :: d0 integer(INTK) ,intent(in),optional :: d1 integer(INTK) ,intent(in),optional :: d2 integer(INTK) ,intent(in),optional :: d3 integer(INTK) ,intent(in),optional :: d4 integer(INTK) ,intent(in),optional :: d5 integer(INTK) ,intent(in),optional :: d6 integer(INTK) ,intent(in),optional :: d7 integer(INTK) ,intent(in),optional :: d8 integer(INTK) ,intent(in),optional :: d9 integer(INTK) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = "present_select_Int_auto" continue !!$ call BeginSub(subname, !!$ 'invalid=%y default=%d', !!$ l=(/invalid/), i=(/default/)) specified = .false. if ( present(d0) ) then if ( .not. invalid ) then result = d0 specified = .true. elseif ( d0 /= 0 ) then result = d0 specified = .true. endif end if if ( present(d1) .and. .not. specified ) then if ( .not. invalid ) then result = d1 specified = .true. elseif ( d1 /= 0 ) then result = d1 specified = .true. endif end if if ( present(d2) .and. .not. specified ) then if ( .not. invalid ) then result = d2 specified = .true. elseif ( d2 /= 0 ) then result = d2 specified = .true. endif end if if ( present(d3) .and. .not. specified ) then if ( .not. invalid ) then result = d3 specified = .true. elseif ( d3 /= 0 ) then result = d3 specified = .true. endif end if if ( present(d4) .and. .not. specified ) then if ( .not. invalid ) then result = d4 specified = .true. elseif ( d4 /= 0 ) then result = d4 specified = .true. endif end if if ( present(d5) .and. .not. specified ) then if ( .not. invalid ) then result = d5 specified = .true. elseif ( d5 /= 0 ) then result = d5 specified = .true. endif end if if ( present(d6) .and. .not. specified ) then if ( .not. invalid ) then result = d6 specified = .true. elseif ( d6 /= 0 ) then result = d6 specified = .true. endif end if if ( present(d7) .and. .not. specified ) then if ( .not. invalid ) then result = d7 specified = .true. elseif ( d7 /= 0 ) then result = d7 specified = .true. endif end if if ( present(d8) .and. .not. specified ) then if ( .not. invalid ) then result = d8 specified = .true. elseif ( d8 /= 0 ) then result = d8 specified = .true. endif end if if ( present(d9) .and. .not. specified ) then if ( .not. invalid ) then result = d9 specified = .true. elseif ( d9 /= 0 ) then result = d9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%d", !!$ i=(/result/)) end function present_select_Int_auto
result : | character(STRING) |
invalid : | logical ,intent(in) |
default : | character(*) ,intent(in) |
c0 : | character(*) ,intent(in),optional |
c1 : | character(*) ,intent(in),optional |
c2 : | character(*) ,intent(in),optional |
c3 : | character(*) ,intent(in),optional |
c4 : | character(*) ,intent(in),optional |
c5 : | character(*) ,intent(in),optional |
c6 : | character(*) ,intent(in),optional |
c7 : | character(*) ,intent(in),optional |
c8 : | character(*) ,intent(in),optional |
c9 : | character(*) ,intent(in),optional |
function present_select_Char_auto( invalid, default, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9 ) result(result) implicit none logical ,intent(in) :: invalid character(*) ,intent(in) :: default character(*) ,intent(in),optional :: c0 character(*) ,intent(in),optional :: c1 character(*) ,intent(in),optional :: c2 character(*) ,intent(in),optional :: c3 character(*) ,intent(in),optional :: c4 character(*) ,intent(in),optional :: c5 character(*) ,intent(in),optional :: c6 character(*) ,intent(in),optional :: c7 character(*) ,intent(in),optional :: c8 character(*) ,intent(in),optional :: c9 character(STRING) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = "present_select_Char_auto" continue !!$ call BeginSub(subname, 'invalid=%y default=%c', !!$ l=(/invalid/), c1=trim(default) ) specified = .false. if ( present(c0) ) then if ( trim(c0) /= '' ) then result = c0 specified = .true. endif end if if ( present(c1) .and. .not. specified ) then if ( trim(c1) /= '' ) then result = c1 specified = .true. endif end if if ( present(c2) .and. .not. specified ) then if ( trim(c2) /= '' ) then result = c2 specified = .true. endif end if if ( present(c3) .and. .not. specified ) then if ( trim(c3) /= '' ) then result = c3 specified = .true. endif end if if ( present(c4) .and. .not. specified ) then if ( trim(c4) /= '' ) then result = c4 specified = .true. endif end if if ( present(c5) .and. .not. specified ) then if ( trim(c5) /= '' ) then result = c5 specified = .true. endif end if if ( present(c6) .and. .not. specified ) then if ( trim(c6) /= '' ) then result = c6 specified = .true. endif end if if ( present(c7) .and. .not. specified ) then if ( trim(c7) /= '' ) then result = c7 specified = .true. endif end if if ( present(c8) .and. .not. specified ) then if ( trim(c8) /= '' ) then result = c8 specified = .true. endif end if if ( present(c9) .and. .not. specified ) then if ( trim(c9) /= '' ) then result = c9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%c", c1=trim(result)) end function present_select_Char_auto
result : | integer(INTK) |
invalid : | integer(INTK) ,intent(in) |
default : | integer(INTK) ,intent(in) |
d0 : | integer(INTK) ,intent(in),optional |
d1 : | integer(INTK) ,intent(in),optional |
d2 : | integer(INTK) ,intent(in),optional |
d3 : | integer(INTK) ,intent(in),optional |
d4 : | integer(INTK) ,intent(in),optional |
d5 : | integer(INTK) ,intent(in),optional |
d6 : | integer(INTK) ,intent(in),optional |
d7 : | integer(INTK) ,intent(in),optional |
d8 : | integer(INTK) ,intent(in),optional |
d9 : | integer(INTK) ,intent(in),optional |
function present_select_Int( invalid, default, d0, d1, d2, d3, d4, d5, d6, d7, d8, d9 ) result(result) implicit none integer(INTK) ,intent(in) :: invalid integer(INTK) ,intent(in) :: default integer(INTK) ,intent(in),optional :: d0 integer(INTK) ,intent(in),optional :: d1 integer(INTK) ,intent(in),optional :: d2 integer(INTK) ,intent(in),optional :: d3 integer(INTK) ,intent(in),optional :: d4 integer(INTK) ,intent(in),optional :: d5 integer(INTK) ,intent(in),optional :: d6 integer(INTK) ,intent(in),optional :: d7 integer(INTK) ,intent(in),optional :: d8 integer(INTK) ,intent(in),optional :: d9 integer(INTK) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = 'present_select_Int' continue !!$ call BeginSub(subname, !!$ 'invalid=%d default=%d', !!$ i=(/invalid, default/)) specified = .false. if ( present(d0) ) then if ( d0 /= invalid ) then result = d0 specified = .true. endif end if if ( present(d1) .and. .not. specified ) then if ( d1 /= invalid ) then result = d1 specified = .true. endif end if if ( present(d2) .and. .not. specified ) then if ( d2 /= invalid ) then result = d2 specified = .true. endif end if if ( present(d3) .and. .not. specified ) then if ( d3 /= invalid ) then result = d3 specified = .true. endif end if if ( present(d4) .and. .not. specified ) then if ( d4 /= invalid ) then result = d4 specified = .true. endif end if if ( present(d5) .and. .not. specified ) then if ( d5 /= invalid ) then result = d5 specified = .true. endif end if if ( present(d6) .and. .not. specified ) then if ( d6 /= invalid ) then result = d6 specified = .true. endif end if if ( present(d7) .and. .not. specified ) then if ( d7 /= invalid ) then result = d7 specified = .true. endif end if if ( present(d8) .and. .not. specified ) then if ( d8 /= invalid ) then result = d8 specified = .true. endif end if if ( present(d9) .and. .not. specified ) then if ( d9 /= invalid ) then result = d9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%d", !!$ i=(/result/)) end function present_select_Int
result : | character(STRING) |
invalid : | character(*) ,intent(in) |
default : | character(*) ,intent(in) |
c0 : | character(*) ,intent(in),optional |
c1 : | character(*) ,intent(in),optional |
c2 : | character(*) ,intent(in),optional |
c3 : | character(*) ,intent(in),optional |
c4 : | character(*) ,intent(in),optional |
c5 : | character(*) ,intent(in),optional |
c6 : | character(*) ,intent(in),optional |
c7 : | character(*) ,intent(in),optional |
c8 : | character(*) ,intent(in),optional |
c9 : | character(*) ,intent(in),optional |
function present_select_Char( invalid, default, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9 ) result(result) implicit none character(*) ,intent(in) :: invalid character(*) ,intent(in) :: default character(*) ,intent(in),optional :: c0 character(*) ,intent(in),optional :: c1 character(*) ,intent(in),optional :: c2 character(*) ,intent(in),optional :: c3 character(*) ,intent(in),optional :: c4 character(*) ,intent(in),optional :: c5 character(*) ,intent(in),optional :: c6 character(*) ,intent(in),optional :: c7 character(*) ,intent(in),optional :: c8 character(*) ,intent(in),optional :: c9 character(STRING) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = 'present_select_Char' continue !!$ call BeginSub(subname, 'invalid=%c default=%c', !!$ c1=trim(invalid), c2=trim(default) ) specified = .false. if ( present(c0) ) then if ( len(trim(c0)) > len(trim(invalid)) ) then result = c0 specified = .true. else if ( trim(c0) /= invalid(:len(trim(c0))) ) then result = c0 specified = .true. endif end if end if if ( present(c1) .and. .not. specified) then if ( len(trim(c1)) > len(trim(invalid)) ) then result = c1 specified = .true. else if ( trim(c1) /= invalid(:len(trim(c1))) ) then result = c1 specified = .true. endif end if end if if ( present(c2) .and. .not. specified) then if ( len(trim(c2)) > len(trim(invalid)) ) then result = c2 specified = .true. else if ( trim(c2) /= invalid(:len(trim(c2))) ) then result = c2 specified = .true. endif end if end if if ( present(c3) .and. .not. specified) then if ( len(trim(c3)) > len(trim(invalid)) ) then result = c3 specified = .true. else if ( trim(c3) /= invalid(:len(trim(c3))) ) then result = c3 specified = .true. endif end if end if if ( present(c4) .and. .not. specified) then if ( len(trim(c4)) > len(trim(invalid)) ) then result = c4 specified = .true. else if ( trim(c4) /= invalid(:len(trim(c4))) ) then result = c4 specified = .true. endif end if end if if ( present(c5) .and. .not. specified) then if ( len(trim(c5)) > len(trim(invalid)) ) then result = c5 specified = .true. else if ( trim(c5) /= invalid(:len(trim(c5))) ) then result = c5 specified = .true. endif end if end if if ( present(c6) .and. .not. specified) then if ( len(trim(c6)) > len(trim(invalid)) ) then result = c6 specified = .true. else if ( trim(c6) /= invalid(:len(trim(c6))) ) then result = c6 specified = .true. endif end if end if if ( present(c7) .and. .not. specified) then if ( len(trim(c7)) > len(trim(invalid)) ) then result = c7 specified = .true. else if ( trim(c7) /= invalid(:len(trim(c7))) ) then result = c7 specified = .true. endif end if end if if ( present(c8) .and. .not. specified) then if ( len(trim(c8)) > len(trim(invalid)) ) then result = c8 specified = .true. else if ( trim(c8) /= invalid(:len(trim(c8))) ) then result = c8 specified = .true. endif end if end if if ( present(c9) .and. .not. specified) then if ( len(trim(c9)) > len(trim(invalid)) ) then result = c9 specified = .true. else if ( trim(c9) /= invalid(:len(trim(c9))) ) then result = c9 specified = .true. endif end if end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%c", c1=trim(result)) end function present_select_Char
result : | real(SP) |
invalid : | real(SP) ,intent(in) |
default : | real(SP) ,intent(in) |
r0 : | real(SP) ,intent(in),optional |
r1 : | real(SP) ,intent(in),optional |
r2 : | real(SP) ,intent(in),optional |
r3 : | real(SP) ,intent(in),optional |
r4 : | real(SP) ,intent(in),optional |
r5 : | real(SP) ,intent(in),optional |
r6 : | real(SP) ,intent(in),optional |
r7 : | real(SP) ,intent(in),optional |
r8 : | real(SP) ,intent(in),optional |
r9 : | real(SP) ,intent(in),optional |
function present_select_Real( invalid, default, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 ) result(result) implicit none real(SP) ,intent(in) :: invalid real(SP) ,intent(in) :: default real(SP) ,intent(in),optional :: r0 real(SP) ,intent(in),optional :: r1 real(SP) ,intent(in),optional :: r2 real(SP) ,intent(in),optional :: r3 real(SP) ,intent(in),optional :: r4 real(SP) ,intent(in),optional :: r5 real(SP) ,intent(in),optional :: r6 real(SP) ,intent(in),optional :: r7 real(SP) ,intent(in),optional :: r8 real(SP) ,intent(in),optional :: r9 real(SP) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = 'present_select_Real' continue !!$ call BeginSub(subname, !!$ 'invalid=%r default=%r', !!$ r=(/invalid, default/)) specified = .false. if ( present(r0) ) then if ( r0 /= invalid ) then result = r0 specified = .true. endif end if if ( present(r1) .and. .not. specified ) then if ( r1 /= invalid ) then result = r1 specified = .true. endif end if if ( present(r2) .and. .not. specified ) then if ( r2 /= invalid ) then result = r2 specified = .true. endif end if if ( present(r3) .and. .not. specified ) then if ( r3 /= invalid ) then result = r3 specified = .true. endif end if if ( present(r4) .and. .not. specified ) then if ( r4 /= invalid ) then result = r4 specified = .true. endif end if if ( present(r5) .and. .not. specified ) then if ( r5 /= invalid ) then result = r5 specified = .true. endif end if if ( present(r6) .and. .not. specified ) then if ( r6 /= invalid ) then result = r6 specified = .true. endif end if if ( present(r7) .and. .not. specified ) then if ( r7 /= invalid ) then result = r7 specified = .true. endif end if if ( present(r8) .and. .not. specified ) then if ( r8 /= invalid ) then result = r8 specified = .true. endif end if if ( present(r9) .and. .not. specified ) then if ( r9 /= invalid ) then result = r9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%r", !!$ r=(/result/)) end function present_select_Real
result : | real(SP) |
invalid : | logical ,intent(in) |
default : | real(SP) ,intent(in) |
r0 : | real(SP) ,intent(in),optional |
r1 : | real(SP) ,intent(in),optional |
r2 : | real(SP) ,intent(in),optional |
r3 : | real(SP) ,intent(in),optional |
r4 : | real(SP) ,intent(in),optional |
r5 : | real(SP) ,intent(in),optional |
r6 : | real(SP) ,intent(in),optional |
r7 : | real(SP) ,intent(in),optional |
r8 : | real(SP) ,intent(in),optional |
r9 : | real(SP) ,intent(in),optional |
function present_select_Real_auto( invalid, default, r0, r1, r2, r3, r4, r5, r6, r7, r8, r9 ) result(result) implicit none logical ,intent(in) :: invalid real(SP) ,intent(in) :: default real(SP) ,intent(in),optional :: r0 real(SP) ,intent(in),optional :: r1 real(SP) ,intent(in),optional :: r2 real(SP) ,intent(in),optional :: r3 real(SP) ,intent(in),optional :: r4 real(SP) ,intent(in),optional :: r5 real(SP) ,intent(in),optional :: r6 real(SP) ,intent(in),optional :: r7 real(SP) ,intent(in),optional :: r8 real(SP) ,intent(in),optional :: r9 real(SP) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = "present_select_Real_auto" continue !!$ call BeginSub(subname, !!$ 'invalid=%y default=%r', !!$ l=(/invalid/), r=(/default/)) specified = .false. if ( present(r0) ) then if ( .not. invalid ) then result = r0 specified = .true. elseif ( r0 /= 0.0_SP ) then result = r0 specified = .true. endif end if if ( present(r1) .and. .not. specified ) then if ( .not. invalid ) then result = r1 specified = .true. elseif ( r1 /= 0.0_SP ) then result = r1 specified = .true. endif end if if ( present(r2) .and. .not. specified ) then if ( .not. invalid ) then result = r2 specified = .true. elseif ( r2 /= 0.0_SP ) then result = r2 specified = .true. endif end if if ( present(r3) .and. .not. specified ) then if ( .not. invalid ) then result = r3 specified = .true. elseif ( r3 /= 0.0_SP ) then result = r3 specified = .true. endif end if if ( present(r4) .and. .not. specified ) then if ( .not. invalid ) then result = r4 specified = .true. elseif ( r4 /= 0.0_SP ) then result = r4 specified = .true. endif end if if ( present(r5) .and. .not. specified ) then if ( .not. invalid ) then result = r5 specified = .true. elseif ( r5 /= 0.0_SP ) then result = r5 specified = .true. endif end if if ( present(r6) .and. .not. specified ) then if ( .not. invalid ) then result = r6 specified = .true. elseif ( r6 /= 0.0_SP ) then result = r6 specified = .true. endif end if if ( present(r7) .and. .not. specified ) then if ( .not. invalid ) then result = r7 specified = .true. elseif ( r7 /= 0.0_SP ) then result = r7 specified = .true. endif end if if ( present(r8) .and. .not. specified ) then if ( .not. invalid ) then result = r8 specified = .true. elseif ( r8 /= 0.0_SP ) then result = r8 specified = .true. endif end if if ( present(r9) .and. .not. specified ) then if ( .not. invalid ) then result = r9 specified = .true. elseif ( r9 /= 0.0_SP ) then result = r9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%r", !!$ r=(/result/)) end function present_select_Real_auto
result : | real(DP) |
invalid : | real(DP) ,intent(in) |
default : | real(DP) ,intent(in) |
f0 : | real(DP) ,intent(in),optional |
f1 : | real(DP) ,intent(in),optional |
f2 : | real(DP) ,intent(in),optional |
f3 : | real(DP) ,intent(in),optional |
f4 : | real(DP) ,intent(in),optional |
f5 : | real(DP) ,intent(in),optional |
f6 : | real(DP) ,intent(in),optional |
f7 : | real(DP) ,intent(in),optional |
f8 : | real(DP) ,intent(in),optional |
f9 : | real(DP) ,intent(in),optional |
function present_select_Double( invalid, default, f0, f1, f2, f3, f4, f5, f6, f7, f8, f9 ) result(result) implicit none real(DP) ,intent(in) :: invalid real(DP) ,intent(in) :: default real(DP) ,intent(in),optional :: f0 real(DP) ,intent(in),optional :: f1 real(DP) ,intent(in),optional :: f2 real(DP) ,intent(in),optional :: f3 real(DP) ,intent(in),optional :: f4 real(DP) ,intent(in),optional :: f5 real(DP) ,intent(in),optional :: f6 real(DP) ,intent(in),optional :: f7 real(DP) ,intent(in),optional :: f8 real(DP) ,intent(in),optional :: f9 real(DP) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = 'present_select_Double' continue !!$ call BeginSub(subname, !!$ 'invalid=%f default=%f', !!$ d=(/invalid, default/)) specified = .false. if ( present(f0) ) then if ( f0 /= invalid ) then result = f0 specified = .true. endif end if if ( present(f1) .and. .not. specified ) then if ( f1 /= invalid ) then result = f1 specified = .true. endif end if if ( present(f2) .and. .not. specified ) then if ( f2 /= invalid ) then result = f2 specified = .true. endif end if if ( present(f3) .and. .not. specified ) then if ( f3 /= invalid ) then result = f3 specified = .true. endif end if if ( present(f4) .and. .not. specified ) then if ( f4 /= invalid ) then result = f4 specified = .true. endif end if if ( present(f5) .and. .not. specified ) then if ( f5 /= invalid ) then result = f5 specified = .true. endif end if if ( present(f6) .and. .not. specified ) then if ( f6 /= invalid ) then result = f6 specified = .true. endif end if if ( present(f7) .and. .not. specified ) then if ( f7 /= invalid ) then result = f7 specified = .true. endif end if if ( present(f8) .and. .not. specified ) then if ( f8 /= invalid ) then result = f8 specified = .true. endif end if if ( present(f9) .and. .not. specified ) then if ( f9 /= invalid ) then result = f9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%f", !!$ d=(/result/)) end function present_select_Double
result : | real(DP) |
invalid : | logical ,intent(in) |
default : | real(DP) ,intent(in) |
f0 : | real(DP) ,intent(in),optional |
f1 : | real(DP) ,intent(in),optional |
f2 : | real(DP) ,intent(in),optional |
f3 : | real(DP) ,intent(in),optional |
f4 : | real(DP) ,intent(in),optional |
f5 : | real(DP) ,intent(in),optional |
f6 : | real(DP) ,intent(in),optional |
f7 : | real(DP) ,intent(in),optional |
f8 : | real(DP) ,intent(in),optional |
f9 : | real(DP) ,intent(in),optional |
function present_select_Double_auto( invalid, default, f0, f1, f2, f3, f4, f5, f6, f7, f8, f9 ) result(result) implicit none logical ,intent(in) :: invalid real(DP) ,intent(in) :: default real(DP) ,intent(in),optional :: f0 real(DP) ,intent(in),optional :: f1 real(DP) ,intent(in),optional :: f2 real(DP) ,intent(in),optional :: f3 real(DP) ,intent(in),optional :: f4 real(DP) ,intent(in),optional :: f5 real(DP) ,intent(in),optional :: f6 real(DP) ,intent(in),optional :: f7 real(DP) ,intent(in),optional :: f8 real(DP) ,intent(in),optional :: f9 real(DP) :: result !=== Variables for internal work logical :: specified character(*), parameter:: subname = "present_select_Double_auto" continue !!$ call BeginSub(subname, !!$ 'invalid=%y default=%f', !!$ l=(/invalid/), d=(/default/)) specified = .false. if ( present(f0) ) then if ( .not. invalid ) then result = f0 specified = .true. elseif ( f0 /= 0.0_DP ) then result = f0 specified = .true. endif end if if ( present(f1) .and. .not. specified ) then if ( .not. invalid ) then result = f1 specified = .true. elseif ( f1 /= 0.0_DP ) then result = f1 specified = .true. endif end if if ( present(f2) .and. .not. specified ) then if ( .not. invalid ) then result = f2 specified = .true. elseif ( f2 /= 0.0_DP ) then result = f2 specified = .true. endif end if if ( present(f3) .and. .not. specified ) then if ( .not. invalid ) then result = f3 specified = .true. elseif ( f3 /= 0.0_DP ) then result = f3 specified = .true. endif end if if ( present(f4) .and. .not. specified ) then if ( .not. invalid ) then result = f4 specified = .true. elseif ( f4 /= 0.0_DP ) then result = f4 specified = .true. endif end if if ( present(f5) .and. .not. specified ) then if ( .not. invalid ) then result = f5 specified = .true. elseif ( f5 /= 0.0_DP ) then result = f5 specified = .true. endif end if if ( present(f6) .and. .not. specified ) then if ( .not. invalid ) then result = f6 specified = .true. elseif ( f6 /= 0.0_DP ) then result = f6 specified = .true. endif end if if ( present(f7) .and. .not. specified ) then if ( .not. invalid ) then result = f7 specified = .true. elseif ( f7 /= 0.0_DP ) then result = f7 specified = .true. endif end if if ( present(f8) .and. .not. specified ) then if ( .not. invalid ) then result = f8 specified = .true. elseif ( f8 /= 0.0_DP ) then result = f8 specified = .true. endif end if if ( present(f9) .and. .not. specified ) then if ( .not. invalid ) then result = f9 specified = .true. elseif ( f9 /= 0.0_DP ) then result = f9 specified = .true. endif end if if (.not. specified) then result = default end if !!$ call EndSub(subname, "result=%f", !!$ d=(/result/)) end function present_select_Double_auto