! +-======-+ ! Copyright (c) 2003-2018 United States Government as represented by ! the Admistrator of the National Aeronautics and Space Administration. ! All Rights Reserved. ! ! THIS OPEN SOURCE AGREEMENT ("AGREEMENT") DEFINES THE RIGHTS OF USE, ! REPRODUCTION, DISTRIBUTION, MODIFICATION AND REDISTRIBUTION OF CERTAIN ! COMPUTER SOFTWARE ORIGINALLY RELEASED BY THE UNITED STATES GOVERNMENT AS ! REPRESENTED BY THE GOVERNMENT AGENCY LISTED BELOW ("GOVERNMENT AGENCY"). ! THE UNITED STATES GOVERNMENT, AS REPRESENTED BY GOVERNMENT AGENCY, IS AN ! INTENDED THIRD-PARTY BENEFICIARY OF ALL SUBSEQUENT DISTRIBUTIONS OR ! REDISTRIBUTIONS OF THE SUBJECT SOFTWARE. ANYONE WHO USES, REPRODUCES, ! DISTRIBUTES, MODIFIES OR REDISTRIBUTES THE SUBJECT SOFTWARE, AS DEFINED ! HEREIN, OR ANY PART THEREOF, IS, BY THAT ACTION, ACCEPTING IN FULL THE ! RESPONSIBILITIES AND OBLIGATIONS CONTAINED IN THIS AGREEMENT. ! ! Government Agency: National Aeronautics and Space Administration ! Government Agency Original Software Designation: GSC-15354-1 ! Government Agency Original Software Title: GEOS-5 GCM Modeling Software ! User Registration Requested. Please Visit http://opensource.gsfc.nasa.gov ! Government Agency Point of Contact for Original Software: ! Dale Hithon, SRA Assistant, (301) 286-2691 ! ! +-======-+ ! ! from Larry- to fill up NP data void SUBROUTINE fill_NPOLE (q,im,jm,undef) !--------------------------------------------------------------------------- IMPLICIT NONE INTEGER, INTENT(IN) :: im,jm REAL, INTENT(IN) :: undef REAL, INTENT(INOUT) :: q(im,jm) INTEGER i,j,j1,j2,iph,num REAL qi(im,jm) REAL qo(im,jm) !--------------------------------------------------------------------------- qi = q qo = q do i=1,im j1=jm do while( qi(i,j1).eq.undef ) j1=j1-1 end do num = jm-j1 ! go across the NP iph = i + im/2 if( iph.gt.im ) iph = iph-im j2=jm do while( qi(iph,j2).eq.undef ) j2=j2-1 end do ! linearly interp num = num+jm-j2 do j=j1+1,jm qo(i,j) = qi(i,j1) + (qi(iph,j2)-qi(i,j1))*(j-j1)/num enddo enddo q = qo RETURN !--------------------------------------------------------------------------- END SUBROUTINE fill_NPOLE !