Files
piscal/leafres/testarea/funkmin_cica5.f
T
2016-02-03 18:52:05 +00:00

51 lines
1.4 KiB
FortranFixed

subroutine funkmin_cica(ndim,beta,fvalue)
implicit none
include '../testarea/cica.h'
integer ndim
double precision beta(1:ndim),fvalue
!(in) ndim: the dimension of the parameter vector
!(in) beta: the parameters
!(out) fvalue: the value of the cost function at beta
!
integer i
double precision cica,der_cica,term,der_beta(ndim)
!----------- End of variables declaration ---------------------------------
!
! check to see if parameters are out of bounds
do i=1,ndim
if(beta(i).lt.bmin(i).or.beta(i).gt.bmax(i))then
! parameter out of bound
fvalue=1.0d+100
return
endif
enddo
fvalue=0.0d0
do i=1,nobs
term=pco2ambient(i)
call cica_ca5(imodel,ndim,beta,term,cica,der_cica,der_beta)
fvalue=fvalue+(cicameas(i)-cica)**2
enddo
return
end subroutine funkmin_cica
!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
double precision function f1dim_cica(x)
INTEGER NMAX
double precision x
PARAMETER (NMAX=1000)
CU USES funkmin_stom
INTEGER j,ncom
double precision pcom(NMAX),xicom(NMAX),xt(NMAX)
COMMON /f1com/ pcom,xicom,ncom
do 11 j=1,ncom
xt(j)=pcom(j)+x*xicom(j)
11 continue
call funkmin_cica(ncom,xt,f1dim_cica)
return
END