CALL SEQUENCE... extrac XIN XOUT INPUT OUTPUT [-dlon1 VAL0 -dlon2 VAL1 \ -dlat1 VAL2 -dlat2 VAL3 \ -kind VAL4 [VAL5] -nintyp VAL6 \ -lv1 VAL7 -lv2 VAL8 ] DESCRIPTION... extrac - ZEROES OUT ALL OF A GRID EXCEPT WINDOW(S) DEFINED IN INPUT AUTHOR - B.Dugas, 09 SEPTEMBRE 1985. LAST REVISION: $Header: /home/cvs/RMNLIB/utils/rdiag/lspgm/extrac.ptn,v 4.23 2014/09/25 20:20:47 dugas Exp $ PURPOSE - EXTRACTS CERTAIN PARTS OF AN ARRAY IN XIN, COMPLEX OR REAL, AND THEN PUTS THE RESULT IN XOUT = MASK * XIN, WHERE ! 1 IF (I1 <= I <= I2) AND (J1 <=J <= J2) MASK(I,J) =< ! 0 EVERYWHERE ELSE. - PLEASE REFER TO THE INPUT PARAMETERS SECTION BELOW. NOTES - 1) IF KIND IS SPEC, FOUR OR CMPL THEN I1 AND I2 DENOTE THE BEGINNING AND END OF THE RETAINED COMPLEX VECTOR. 2) IF KIND IS GRID (GLOBAL OR HEMISPHERIC) THEN THE DATA IS ASSUMED TO BE ORDERED FROM SOUTH TO NORTH. THIS IS CHECKED AND ACCOUNTED FOR IN RPN/CMC STANDARD FILES. 3) ALSO, AT LEAST ONE AND UP TO 99 SETS OF I1, I2, J1 ANS J2 ARE READ IN FROM INPUT. 4) INPUT CARDS BETWEEN 20 AND 99 MAY GET IGNORED,(DEPEN- DING ON THE TYPE AND RANGE OF VALUES SPECIFIED). INPUT IS ALWAYS READ UNTIL *EOF* IS REACHED. 5) BLANK INPUT LINES ARE IGNORED. INPUT FILE... XIN = ANY CCC-STANDARD FILE OUTPUT FILE... XOUT = MASKED VERSION OF XIN AS DESCRIBED ABOVE. INPUT PARAMETERS... I1 = VECTOR CONTAINING THE FIRST COORDINATES (OR THE LONGITUDINAL (dlon1) DEGREE, IF IFLG.NE.0) OF THE LOWER LEFT-HAND CORNER OF THE BOXES WE WISH TO RETAIN FROM THE ORIGINAL DATA. I2 = VECTOR CONTAINING THE FIRST COORDINATES (OR THE LONGITUDINAL (dlon2) DEGREE, IF IFLG.NE.0) OF THE HIGHER RIGHT-HAND CORNER OF THE BOXES WE WISH TO RETAIN FROM THE ORIGINAL DATA. J1 = VECTOR CONTAINING THE SECOND COORDINATES (OR THE LATITUDINAL (dlat1) DEGREE, IF IFLG.NE.0) OF THE LOWER LEFT-HAND CORNER OF THE BOXES WE WISH TO RETAIN FROM THE ORIGINAL DATA. J2 = VECTOR CONTAINING THE SECOND COORDINATES (OR THE LATITUDINAL (dlat2) DEGREE, IF IFLG.NE.0) OF THE HIGHER RIGHT-HAND CORNER OF THE BOXES WE WISH TO RETAIN FROM THE ORIGINAL DATA. (J2 >= J1). IFLG = USED TO IDENTIFY THE VALUES SUPPLIED IN I1, I2, J1 AND J2 AS (kind(1)) INDICES (IFLG.EQ.0) OR AS DEGREES (IFLG.NE.0) NTYP = USED TO DETERMINE THE TYPE OF GRID (IGNORED IF IFLG.EQ.0 (nintyp) ZERO DEFAULTS TO A GAUSSIAN GRID AND ANYTHING ELSE TO LAT-LONG GRID. ALLWAYS IGNORED WITH RPN/CMC STANDARD FILES. LV1 = UPPER VERTICAL LEVEL RETAINED. LV2 = LOWER VERTICAL LEVEL RETAINED. IN COMMAND-LINE MODE, LV1 AND LV2 MAY ALSO BE THE REAL DECODED LEVEL VALUES. IN THAT CASE, THE KIND(2) PARAMETER *** ABSOLUTELY HAS TO BE SPECIFIED ***. KIND(2) = VERTICAL LEVEL TYPE. ONLY USE THIS WITH IN RPN STD FILES AND WHEN LV1 AND LV2 CONTAIN DECODED VALUES. FURTHERMORE, THIS PARAMETRE CAN ONLY BE SPECIFIED IN COMMAND-LINE MODE. THE CURRENTLY SUPPORTED VALUES ARE: 'HAUTEUR' , heights (m) with respect to sea level 'SIGMA' , classical terrain following (0.0 -> 1.0) 'ETA' , first version of the GEM ETA coordinate 'PRESSION' , pressure (mb) 'ARBITRAIRE', arbitrary level (no units apply) 'HAUTEURS' , heights (M) with respect to the surface 'HYBRIDE' , hybrid GEM coordinate 'THETA' , potential temperature coordinate 'GALCHEN' , GalChen generalized coordinate NOTES 1) IFLG MUST BE ZERO FOR ALL THE FIELDS WHOSE KIND IS DIFFERENT FROM GRID (I.E. I1, I2, J1 AND J2 MAY HAVE DEGREE VALUES ONLY FOR GRID FIELDS, OTHERWISE THEY MUST CONTAIN INDICES VALUES) IF IFLG.NE.0 THEN I1 , I2 VALUES (-359,360) J1 , J2 VALUES (- 90, 90) WITH J2 >= J1 2) IF THE COMMAND LINE ARGUMENTS ARE USED, ONLY ONE SET OF BOX COORDINATES CAN BE PASSED TO THE PROGRAM, BUT THESE CAN THEN BE IN FLOATING POINT FORMAT. 3) LV1,LV2,IFLG AND NTYP ARE ONLY READ ONCE, ON THE FIRST CARD 4) IF BOTH LV1 AND LV2 ARE ZERO, THEY DEFAULT TO THE FIRST AND LAST LEVELS, RESPECTIVELY. IF ONLY ONE OF THEM IS ZERO, IT IS SET TO THE VALUE OF THE OTHER. 5) WHEN IFLG=0 AND I1 AND I2 ARE ZERO, ALL LONGITUDES ARE KEPT. THE SAME GOES FOR THE LATITUDES IF J1=J2=0.. READ( 5,5010 ) I1(N+1),I2(N+1),J1(N+1),J2(N+1),IFLG,NTYP,LV1,LV2 5010 FORMAT(10X,6I5) EXAMPLE OF INPUT CARD(S)... EXTRAC 11 41 1 101 -10 40 -90 10 1 1 271 361 31 161 0 270 360 -60 70 1 1 0 45 80 89 1 1 1 46 171 180 0123456789012345678901234567890123456789012345678901234567890 1 2 3 4 5 6 7 EXIT CONDITIONS... 0 NO PROBLEMS 1 ILLEGAL REQUEST FOR DEGREE-MODE INPUT DIRECTIVE 2 INCONSISTENT USE OF NTYP 3 NO VALID INPUT DIRECTIVES FOUND 4 MORE THAN ONE SIZE IN XIN 5 PREMATURE EOF IN XIN 6 INCONSISTENT VALUES IN INPUT PARAMETERS 7 MORE THAN ONE KIND OF INPUT LEVEL REQUESTED 8 PROBLEM WITH MEMORY ALLOCATIONS