N.I.M.R.O.D.  

observationModel.f90

Go to the documentation of this file.
00001 !------------------------------------------------------------------------------
00002 ! N.I.M.R.O.D. - Normal approximation Inference in Models with Random
00003 !                effects based on Ordinary Differential equations
00004 !------------------------------------------------------------------------------
00005 !
00006 ! VERSION : 1.0
00007 !
00008 ! MODULE: observationModel.f90 function SystemResolution
00042 SUBROUTINE SystemResolution(Y,iout,simul,deriv,ifail)
00043     use WorkingSharedValues
00044     implicit none
00045     integer,intent(out)::ifail
00046     integer,intent(in)::iout
00047     double precision, dimension(2*nbcomp),intent(inout) :: Y
00048     double precision,dimension(tdef2,npmcomp),intent(inout)::simul,deriv
00049 
00050     ifail=0
00051     simul(iout,1)=(Y(2))**0.25
00052         ! *** Model transformation for derivatives
00053         IF(systeme(1).NE.1) then
00054         deriv(iout,1)=((25.d-2)*Y(4))*((Y(2))**(-75.d-2))
00055     END IF
00056 
00057     ! *** Catch transformation errors
00058     if(simul(iout,1).NE.simul(iout,1))simul(iout,1)=0.D0
00059     if(deriv(iout,1).NE.deriv(iout,1))deriv(iout,1)=0.D0
00060  5  continue
00061     return
00062 end subroutine SystemResolution
00063 
00064 SUBROUTINE putObservationModel(data)
00065    use WorkingSharedValues
00066    implicit none
00067    double precision,dimension(nbpatienta,tdef2,nbcomp),intent(inout)::data
00068          where (data(:,:,1) .gt. 0.d0)
00069             data(:,:,1)=(data(:,:,1))**(0.25)
00070          end where
00071    return
00072 end subroutine putObservationModel
00073 
00074 SUBROUTINE removeObservationModel(data)
00075    use WorkingSharedValues
00076    implicit none
00077    double precision,dimension(nbpatienta,tdef2,nbcomp),intent(inout)::data
00078             data(:,:,1)=(data(:,:,1))**4
00079    return
00080 end subroutine removeObservationModel