13 SUBROUTINE fitspectrum(KSMAX,KSPEC2G,PSPEC,KSTRUNK,PBETA0,PBETA1)
77 INTEGER(KIND=JPIM),
INTENT(IN) :: KSPEC2G
78 INTEGER(KIND=JPIM),
INTENT(IN) :: KSMAX
79 REAL(KIND=JPRB) ,
INTENT(IN) :: PSPEC(kspec2g)
80 INTEGER(KIND=JPIM),
INTENT(IN) :: KSTRUNK
81 REAL(KIND=JPRB) ,
INTENT(OUT) :: PBETA0
82 REAL(KIND=JPRB) ,
INTENT(OUT) :: PBETA1
83 REAL(KIND=JPRB) :: ZW(0:ksmax),ZNORM(0:ksmax)
85 INTEGER(KIND=JPIM) :: INM, ISMIN, JIR, JM, JN
86 INTEGER(KIND=JPIM) :: IASM0G(0:ksmax)
88 REAL(KIND=JPRB) :: Z, ZEPS, ZSUM1, ZSUM2, ZWSUM, ZX, ZXMW, ZY, ZYMW, ZZ
89 REAL(KIND=JPRB) :: ZHOOK_HANDLE
97 inm=inm+(ksmax+1-jm)*2
110 zz=
REAL(ksmax-ismin+1,
jprb)
112 zw(jn) = zz/
REAL(jn-ismin+1,
jprb)
122 DO jn=max(ismin,jm),ksmax
123 inm=iasm0g(jm)+(jn-jm)*2+jir
124 znorm(jn) = max(znorm(jn),abs(pspec(inm)))
129 znorm(jn)=max(znorm(jn),zeps)
130 IF(znorm(jn) == zeps)
THEN 131 zw(jn) = 100._jprb*zeps
141 zx = log(
REAL(JN*(JN+1),JPRB))
143 zxmw = zxmw+zx*zw(jn)
144 zymw = zymw+zy*zw(jn)
152 zx = log(
REAL(JN*(JN+1),JPRB))
154 zsum1 = zsum1+zw(jn)*(zy-zymw)*(zx-zxmw)
155 zsum2 = zsum2+zw(jn)*(zx-zxmw)**2
159 pbeta0 = zymw-pbeta1*zxmw
subroutine, public fitspectrum(KSMAX, KSPEC2G, PSPEC, KSTRUNK, PBETA0, PBETA1)