| ! { dg-do compile } |
| ! { dg-additional-options "-ffast-math -ftree-vectorize" } |
| SUBROUTINE SOBOOK(MHSO,HSOMAX,MS) |
| IMPLICIT DOUBLE PRECISION(A-H,O-Z) |
| COMPLEX*16 HSOT,HSO1(2) |
| PARAMETER (ZERO=0.0D+00,TWO=2.0D+00) |
| DIMENSION SOL1(3,2),SOL2(3) |
| CALL FOO(SOL1,SOL2) |
| SQRT2=SQRT(TWO) |
| DO IH=1,MHSO |
| IF(MS.EQ.0) THEN |
| HSO1(IH) = DCMPLX(ZERO,-SOL1(3,IH)) |
| HSOT = DCMPLX(ZERO,-SOL2(3)) |
| ELSE |
| HSO1(IH) = DCMPLX(-SOL1(2,IH),SOL1(1,IH))/SQRT2 |
| HSOT = DCMPLX(-SOL2(2),SOL2(1))/SQRT2 |
| ENDIF |
| ENDDO |
| HSOT=HSOT+HSO1(1) |
| HSOMAX=MAX(HSOMAX,ABS(HSOT)) |
| RETURN |
| END |