FUNCTION ZERO_PAD,A,DIM,CENTER=center ;+ ;NAME: ZERO_PAD ;B=ZERO_PAD(A,DIM) returns array A zero-padded to size ;described by the vector DIM, where DIM=[d(0),d(1),...] ;contains a value for each dimension of A. The code for ;up to three dimensional arrays is implemented. It can ;easily be extended if more dimensions are needed. ; ;If A is smaller in some dimension then that ;dimension is trumcated. ; ;Keyword Arguments ;CENTER puts A in the center and zeros all around the ; border. ; ;HISTORY ;Written by H. Rhody, November 3, 1998 ;- SA=SIZE(A) IF N_ELEMENTS(DIM) NE SA[0] THEN BEGIN PRINT,'INCORRECT NUMBER OF DIMENSIONS GIVEN IN ZERO_PAD ARGUMENT' RETURN,-1 ENDIF SB=SA SB[1:SA[0]]=DIM B=MAKE_ARRAY(SIZE=SB) IF SA[0] EQ 1 THEN BEGIN B[0:SA[1]-1]=A IF KEYWORD_SET(center) then B=SHIFT(B,(DIM[0]-SA[1])/2) END IF SA[0] EQ 2 THEN BEGIN B[0:SA[1]-1,0:SA[2]-1]=A IF KEYWORD_SET(center) then $ B=SHIFT(B,(DIM[0]-SA[1])/2,(DIM[1]-SA[2])/2) END IF SA[0] EQ 3 THEN BEGIN B[0:SA[1]-1,0:SA[2]-1,0:SA[3]-1]=A IF KEYWORD_SET(center) then $ B=SHIFT(B,(DIM[0]-SA[1])/2,(DIM[1]-SA[2])/2,(DIM[2]-SA[3])/2) END RETURN,B END