40 lines
1.4 KiB
Fortran
40 lines
1.4 KiB
Fortran
! { dg-do run }
|
|
|
|
! PR fortran/37099
|
|
! Check for correct results when comparing array-section-substrings.
|
|
|
|
! This is the original test from the PR.
|
|
! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr>
|
|
|
|
module xparams
|
|
integer,parameter :: exprbeg=100,exprend=154
|
|
character(*),dimension(exprbeg:exprend),parameter :: &
|
|
exprs=(/'nint() ','log10() ','sqrt() ','acos() ','asin() ', &
|
|
'atan() ','cosh() ','sinh() ','tanh() ','int() ', &
|
|
'cos() ','sin() ','tan() ','exp() ','log() ','abs() ',&
|
|
'delta() ','step() ','rect() ','max(,) ','min(,) ','bj0() ',&
|
|
'bj1() ','bjn(,) ','by0() ','by1() ','byn(,) ','logb(,) ',&
|
|
'erf() ','erfc() ','lgamma()','gamma() ','csch() ','sech() ',&
|
|
'coth() ','lif(,,) ','gaus() ','sinc() ','atan2(,)','mod(,) ',&
|
|
'nthrt(,)','ramp() ','fbi() ','fbiq() ','uran(,) ','aif(,,,)',&
|
|
'sgn() ','cbrt() ','fact() ','somb() ','bk0() ','bk1() ',&
|
|
'bkn(,) ','bbi(,,) ','bbiq(,,)'/)
|
|
logical :: tmp(55,26)
|
|
character(26) :: al = 'abcdefghijklmnopqrstuvwxyz'
|
|
end
|
|
|
|
program pack_bug
|
|
use xparams
|
|
do i = 1, 1
|
|
tmp(:,i) = (exprs(:)(1:1)==al(i:i))
|
|
print '(55L1)', exprs(:)(1:1)=='a'
|
|
print '(55L1)', tmp(:,i)
|
|
|
|
if (any ((exprs(:)(1:1)=='a') .neqv. tmp(:,i))) then
|
|
call abort ()
|
|
end if
|
|
end do
|
|
end
|
|
|
|
! { dg-final { cleanup-modules "xparams" } }
|