3#if defined WEAK_CONSTRAINT && (defined ARRAY_MODES || defined CLIPPING)
59 integer,
intent(in) :: ng, model, outloop, ninnloop
63 integer :: iobs, innloop
68 real(r8),
dimension(NinnLoop) :: zdot
76 master_thread :
IF (
master)
THEN
81 IF (innloop.eq.1)
THEN
84 zfact=1.0_r8/
cg_beta(innloop,outloop)
87 IF (
obserr(iobs).ne.0.0_r8)
THEN
88 zdot(innloop)=zdot(innloop)+ &
89 & tlmodval(iobs)*zfact* &
90 & tlmodval_s(iobs,innloop,outloop)/ &
98 zsum=zsum+zdot(innloop)*
cg_zv(innloop,
nvct,outloop)
110 DO innloop=1,ninnloop
113 &
zcglwk(iobs,innloop,outloop)
120 IF (
obserr(iobs).ne.0.0_r8)
THEN
130 zsum=zsum+tlmodval(iobs)*
admodval(iobs)
137 10
FORMAT (/,
' REP CHECK: zsum = ', 1p, e14.7,2x, &
138 &
'cg_Ritz-1 = ', 1p, e14.7)
176 integer,
intent(in) :: ng, model, outloop, ninnloop
180 integer :: iobs, innloop
186 master_thread :
IF (
master)
THEN
197 DO innloop=1,ninnloop
200 &
zcglwk(iobs,innloop,outloop)
209 IF (
obserr(iobs).ne.0.0_r8)
THEN
253 integer,
intent(in) :: ng, model, outloop, ninnloop
257 integer :: iobs, ivec, innloop
259 real(r8),
dimension(NinnLoop) :: zu
261 real(r8),
dimension(Ndatum(ng)) :: innov, rsvec
267 master_thread :
IF (
master)
THEN
281 DO innloop=1,ninnloop
282 rsvec(iobs)=rsvec(iobs)+ &
283 &
cg_zv(innloop,ivec,outloop)* &
284 &
zcglwk(iobs,innloop,outloop)
291 IF (
obserr(iobs).ne.0.0_r8)
THEN
292 rsvec(iobs)=rsvec(iobs)/sqrt(
obserr(iobs))
297 zu(ivec)=zu(ivec)+innov(iobs)*rsvec(iobs)
305 zu(ivec)=zu(ivec)/
cg_ritz(ivec,outloop)
321 DO innloop=1,ninnloop
323 &
cg_zv(innloop,ivec,outloop)* &
324 &
zcglwk(iobs,innloop,outloop)* &
333 IF (
obserr(iobs).ne.0.0_r8)
THEN
subroutine, public rep_check(ng, model, outloop, ninnloop)
subroutine, public rep_eigen(ng, model, outloop, ninnloop)
subroutine, public rep_clip(ng, model, outloop, ninnloop)
real(dp), dimension(:), allocatable cg_gnorm_v
real(dp), dimension(:,:), allocatable cg_beta
real(dp), dimension(:,:), allocatable cg_ritz
integer, dimension(:), allocatable ndatum
real(r8), dimension(:), allocatable obsval
real(r8), dimension(:), allocatable obserr
real(dp), dimension(:,:,:), allocatable cg_zv
real(r8), dimension(:), allocatable admodval
real(r8), dimension(:,:,:), allocatable zcglwk
real(r8), dimension(:), allocatable nlmodval