C+ C NAME: C FillWholeT C PURPOSE: C To fill Whole T Maps from maps at the other times C C CATEGORY: C Data processing C CALLING SEQUENCE: C subroutine FillWholeT(Mode,Nit,NiterT,XCbe,nLng,nLat,NT,nLngLat,ConsTM,DMap,DDD) C INPUTS: C Mode integer 0 - density C 1 - velocity C Nit integer iteration number C NiterT integer Total number of iterations C XCbe(2,NT) real Beginning (and ending) rotation values C nLng integer # of Longitudes C nLat integer # of Latitudes C nT integer # of times C ConsTM real Longitude filter constant (in terms of the numbers of intervals in one rotation) C DMap(nLng,nLat,NT) real Input map C SCRATCH ARRAY: C DDD(nLng) C OUTPUTS: C DMap(nLng,nLat) real Output map C CALLS: C PROCEDURE: C Bad values (indicated by BadR4()) are processed C MODIFICATION HISTORY: C MAY, 1999 B. Jackson (STEL,UCSD) C- subroutine FillWholeT(Mode,Nit,NiterT,XCbe,nLng,nLat,nT,ConsTM,DMap,DDD) real DMap(nLng,nLat,nT), ! Map & XCbe(2,nT) real DDD(nLng) ! scratch array C Bad = BadR4() nLngLat = nLng*nLat C nT2 = nT/2 do N=nT2,nT-1 NNM = nT - N NNP = N + 1 call arrR4getminmax(nLngLat,DMAP(1,1,NNM),aminm,amaxm) call arrR4getminmax(nLngLat,DMAP(1,1,NNP),aminp,amaxp) if(amaxp.eq.Bad.and.N.eq.nT2) then if(Nit.eq.0.or.Nit.eq.NiterT-1) then if(Mode.eq.0) print *, 'Bad middle in FillWholeT DMAP nT =', N if(Mode.eq.1) print *, 'Bad middle in FillWholeT VMAP nT =', N end if call FillMaptN(NNP,XCbe,nLng,nLat,nT,ConsTM,DMAP,DDD) end if if(amaxm.eq.Bad) then if(Nit.eq.0.or.Nit.eq.NiterT-1) then if(Mode.eq.0) print *, 'All bad values in FillWholeT DMAP nT =',NNM if(Mode.eq.1) print *, 'All bad values in FillWholeT VMAP nT =',NNM end if call FillMaptN(NNM,XCbe,nLng,nLat,nT,ConsTM,DMAP,DDD) end if if(amaxp.eq.Bad) then if(Nit.eq.0.or.Nit.eq.NiterT-1) then if(Mode.eq.0) print *, 'All bad values in FillWholeT DMAP nT =',NNP if(Mode.eq.1) print *, 'All bad values in FillWholeT VMAP nT =',NNP end if call FillMaptN(NNP,XCbe,nLng,nLat,nT,ConsTM,DMAP,DDD) end if end do return end