1! { dg-do compile } 2! { dg-additional-options "-O1" } 3 4subroutine ni (ps) 5 type vector 6 real x, y 7 end type 8 type quad_inductor 9 type (vector) v1, v2 10 end type 11 type (quad_inductor), dimension(inout) :: ps 12 integer :: dl, nk = 1.0 13 fo = 1.0 14 if (f == 1) then 15 nk = 0.0 16 fo = 0.0 17 end if 18 ot = nk * 0.5 19 gb = -fo * 0.5 20 wu = fo * 0.5 21 up = nk * 0.1 22 xe = up * 0.1 23 do lx = 0, 7 24 ps%v2%y = -wu 25 ps(dl)%v1%x = xe + 1.0 26 ps(dl)%v1%y = wu - tn 27 end do 28 do lx = 0, 7 29 ps(dl)%v1%x = 0.1 - ot 30 ps(dl)%v1%y = 0.1 - wu 31 end do 32end 33