c c------------------------------------------------------------------ c Begin file /home/sting/foster/timesdif/recpert.f c------------------------------------------------------------------ c subroutine recpert(fld,pnt) c c Recover perturbed selected fields: c c On input: c fld contains differences at selected fields c pnt contains control at all fields c On output: c fld contains perturbed at selected fields c pnt is unchanged c c d = (p-c) / c * 100. ==> p = d/100.*c + c where d=diff, p=pert, c=cntr c include 'gettime.h' include 'timesdif.h' dimension fld(imx,kmx,jmx,nplfld),pnt(imx,kmx,jmx,ntimefld) c ixp = 0 do ip=1,ntimefld if (ipltime(ip).le.0) goto 100 ixp = ixp+1 if (wtime(ip).gt.0.) then do j=1,jmx do k=1,kmx do i=1,imx if (pnt(i,k,j,ip).ne.cpspval.and. + fld(i,k,j,ixp).ne.cpspval) then fld(i,k,j,ixp) = fld(i,k,j,ixp)/100.*pnt(i,k,j,ip) + + pnt(i,k,j,ip) else fld(i,k,j,ixp) = cpspval endif enddo enddo enddo else fld(:,:,:,ixp) = fld(:,:,:,ixp) + pnt(:,:,:,ip) endif 100 continue enddo c return end