4 & LBi, UBi, UBj, Istr, Iend, Jrec, &
49 logical,
intent(out) :: update
51 integer,
intent(in) :: ng, model, ifield
52 integer,
intent(in) :: LBi, UBi, UBj, Istr, Iend, Jrec
54 real(r8),
intent(in) :: Finp(LBi:UBi,UBj,2)
56 real(r8),
intent(out) :: Fout(LBi:UBi,UBj)
62 integer :: Tindex, i, it1, it2, j
64 real(dp) :: SecScale, fac, fac1, fac2
72 lonerec=
linfo(3,ifield,ng)
73 tindex=
iinfo(8,ifield,ng)
83 fac1=anint((
time(ng)-
tintrp(it2,ifield,ng))*secscale,dp)
84 fac2=anint((
tintrp(it1,ifield,ng)-
time(ng))*secscale,dp)
91 fout(i,j)=finp(i,j,tindex)
97 ELSE IF (((fac1*fac2).ge.0.0_dp).and.(fac1+fac2).gt.0.0_dp)
THEN
98 fac=1.0_dp/(fac1+fac2)
103 fout(i,j)=fac1*finp(i,j,it1)+fac2*finp(i,j,it2)
126 10
FORMAT (/,
' SET_NGFLDR - current model time', &
127 &
' exceeds ending value for variable: ',a, &
128 & /,14x,
'TDAYS = ',f15.4, &
129 & /,14x,
'Data Tmin = ',f15.4,2x,
'Data Tmax = ',f15.4, &
130 & /,14x,
'Data Tstr = ',f15.4,2x,
'Data Tend = ',f15.4, &
131 & /,14x,
'TINTRP1 = ',f15.4,2x,
'TINTRP2 = ',f15.4, &
132 & /,14x,
'FAC1 = ',f15.4,2x,
'FAC2 = ',f15.4)
logical, dimension(:,:,:), allocatable linfo
real(dp), dimension(:,:,:), allocatable tintrp
real(dp), dimension(:,:,:), allocatable finfo
character(len=maxlen), dimension(6, 0:nv) vname
integer, dimension(:,:,:), allocatable iinfo
real(dp), dimension(:), allocatable dt
logical, dimension(:), allocatable synchro_flag
real(dp), dimension(:), allocatable tdays
real(dp), parameter sec2day
real(dp), dimension(:), allocatable time
subroutine set_ngfldr(ng, model, ifield, lbi, ubi, ubj, istr, iend, jrec, finp, fout, update)