summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.fortran-torture/compile/pr24136.f
blob: 87e3c61e03aea51151377a01620bdf1edb8d737b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
      subroutine  electra(ro,t,ye,ee,pe,se
     a                   ,eer,eet,per,pet,ser,set,keyps)
      implicit real*8 (a-h,o-z)
      common  /nunu/  nu,dnudr,dnudb,eta,detadnu,nup
      data facen,facpr,facs,rg /2.037300d+24,1.358200d+24,1.686304d-10
     1,8.314339d+07/
      data a1,a2,a3,a4 /2.059815d-03,-7.027778d-03
     1,4.219747d-02,-1.132427d+00/
      beta=facs*t
      b32=b12*beta
      u=(f62/f52)**2
      dudnu=2.0d0*u*(df62/f62-df52/f52)
      x=beta*u
      f=1.0d0+x*(2.5d0+x*(2.0d0+0.5d0*x))
      df=2.5d0+x*(4.0d0+1.5d0*x)
      dfdb=u*df
      fi32=f32+(f-1.0d0)*f52/u
      dfidnu=dfidu*dudnu+df32+(f-1.0d0)*df52/u
      dfidb=dfdb*f52/u
      dfidbet=dfidb+dfidnu*dnudb
      gs=sqrt(g)
      dg=0.75d0*gs
      dgdb=u*dg
      dgdu=beta*dg
      gi32=f32+(g-1.0d0)*f52/u
      dgidu=(u*dgdu-g+1.0d0)*f52/us
      dgidnu=dgidu*dudnu+df32+(g-1.0d0)*df52/u
      dgidb=dgdb*f52/u
      dgidbet=dgidb+dgidnu*dnudb
      dgidroe=dgidnu*dnudr
      em=facen*b52*fi32
      demdbet=facen*b32*(2.5d0*fi32+beta*dfidbet)
      dpmdbet=facpr*b32*(2.5d0*gi32+beta*dgidbet)
      demdroe=facen*b52*dfidroe
      dpmdroe=facpr*b52*dgidroe
      call  divine(nup,fp12,dfp12,s12)
      s42=2.0d0
      call  divine(nup,fp42,dfp42,s42)
      eer=(ye*(demdroe+depdroe)-(em+ep)/ro)/ro
      eet=facs*(demdbet+depdbet)/ro
      per=ye*(dpmdroe+dppdroe)
      pet=facs*(dpmdbet+dppdbet)
      end