URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gfortran.dg/] [graphite/] [run-id-2.f90] - Rev 302
Compare with Previous | Blame | View Log
IMPLICIT NONEINTEGER, PARAMETER :: dp=KIND(0.0D0)REAL(KIND=dp) :: resres=exp_radius_very_extended( 0 , 1 , 0 , 1, &(/0.0D0,0.0D0,0.0D0/),&(/1.0D0,0.0D0,0.0D0/),&(/1.0D0,0.0D0,0.0D0/),&1.0D0,1.0D0,1.0D0,1.0D0)if (res.ne.1.0d0) call abort()CONTAINSFUNCTION exp_radius_very_extended(la_min,la_max,lb_min,lb_max,ra,rb,rp,&zetp,eps,prefactor,cutoff) RESULT(radius)INTEGER, INTENT(IN) :: la_min, la_max, lb_min, lb_maxREAL(KIND=dp), INTENT(IN) :: ra(3), rb(3), rp(3), zetp, &eps, prefactor, cutoffREAL(KIND=dp) :: radiusINTEGER :: i, ico, j, jco, la(3), lb(3), &lxa, lxb, lya, lyb, lza, lzbREAL(KIND=dp) :: bini, binj, coef(0:20), &epsin_local, polycoef(0:60), &prefactor_local, rad_a, &rad_b, s1, s2epsin_local=1.0E-2_dpprefactor_local=prefactor*MAX(1.0_dp,cutoff)rad_a=SQRT(SUM((ra-rp)**2))rad_b=SQRT(SUM((rb-rp)**2))polycoef(0:la_max+lb_max)=0.0_dpDO lxa=0,la_maxDO lxb=0,lb_maxcoef(0:la_max+lb_max)=0.0_dpbini=1.0_dps1=1.0_dpDO i=0,lxabinj=1.0_dps2=1.0_dpDO j=0,lxbcoef(lxa+lxb-i-j)=coef(lxa+lxb-i-j) + bini*binj*s1*s2binj=(binj*(lxb-j))/(j+1)s2=s2*(rad_b)ENDDObini=(bini*(lxa-i))/(i+1)s1=s1*(rad_a)ENDDODO i=0,lxa+lxbpolycoef(i)=MAX(polycoef(i),coef(i))ENDDOENDDOENDDOpolycoef(0:la_max+lb_max)=polycoef(0:la_max+lb_max)*prefactor_localradius=0.0_dpDO i=0,la_max+lb_maxradius=MAX(radius,polycoef(i)**(i+1))ENDDOEND FUNCTION exp_radius_very_extendedEND
