Program g11safe ! G11SAF Example Program Text ! Mark 24 Release. NAG Copyright 2012. ! .. Use Statements .. Use nag_library, Only: g11saf, nag_wp, x04abf ! .. Implicit None Statement .. Implicit None ! .. Parameters .. Integer, Parameter :: iset = 1, nin = 5, nout = 6 ! .. Local Scalars .. Real (Kind=nag_wp) :: cgetol, chi, rlogl, siglev Integer :: i, idf, ifail, ip, ip2, iprint, & ishow, ldcm, ldexpp, ldx, lw, maxit, & n, nadv, niter, ns Logical :: chisqr, gprob ! .. Local Arrays .. Real (Kind=nag_wp), Allocatable :: a(:), alpha(:), c(:), cm(:,:), & exf(:), expp(:,:), g(:), obs(:,:), & pigam(:), w(:), xl(:), y(:) Integer, Allocatable :: iob(:), irl(:) Logical, Allocatable :: x(:,:) ! .. Executable Statements .. Write (nout,*) 'G11SAF Example Program Results' Write (nout,*) Flush (nout) ! Skip heading in data file Read (nin,*) ! Read in problem size Read (nin,*) ip, n, ns ! Read in control parameters Read (nin,*) gprob, iprint, cgetol, maxit, chisqr, ishow ! Set the advisory channel to NOUT for monitoring information If (iprint>0 .Or. ishow/=0) Then nadv = nout Call x04abf(iset,nadv) End If ip2 = 2*ip ldx = ns ldcm = ip2 ldexpp = ip lw = 4*ip*(ip+16) Allocate (x(ldx,ip),irl(ns),a(ip),c(ip),alpha(ip),pigam(ip), & cm(ldcm,ip2),g(ip2),expp(ldexpp,ip),obs(ldexpp,ip),exf(ns),y(ns), & xl(ns),iob(ns),w(lw)) ! Read in data Read (nin,*)(irl(i),x(i,1:ip),i=1,ns) ! Read in intial values Read (nin,*) a(1:ip) Read (nin,*) c(1:ip) ! Fit a latent variable model ifail = 0 Call g11saf(ip,n,gprob,ns,x,ldx,irl,a,c,iprint,cgetol,maxit,chisqr, & ishow,niter,alpha,pigam,cm,ldcm,g,expp,ldexpp,obs,exf,y,xl,iob,rlogl, & chi,idf,siglev,w,lw,ifail) End Program g11safe