CALL SEQUENCE... addlev XIN XOUT INPUT OUTPUT [ -kind VAL1 [VAL2] -N VAL3 -i VAL4 \ [ -lv1 VAL5 [VAL6 [VAL7] ] ] ] AUTHOR - B.Dugas, Oct 10/91. LAST REVISION: $Header: Corrections-for-Vgrid-Descriptors-and-other-small-changes @ Mon, 30 Mar 2015 20:05:25 -0400 (Bernard Dugas) $ DESCRIPTION... THIS PROGRAM EITHER: 1) ADDS (INTERPOLATES) VERTICAL LEVELS IN A GRID ARRAY. 2) INTERPOLATES TO A CONSTANT VERTICAL-INCREMENT GRID ARRAY, EITHER IN LINEAR- OR LOG-COORDINATE. THE TOP AND BOTTOM LEVELS REMAIN THE SAME. INPUT FILE... XIN = ANY SET OF MULTI-LEVEL 'ZONL, 'GRID' OR 'SUBA' ARRAYS. OUTPUT FILE... XOUT = MODIFIED SET OF ARRAYS. INPUT PARAMETERS... KIND(1) = 0 ==> ADD N LEVELS. -1 ==> PRODUCE A N-LEVEL LINEAR-COORDINATE GRID -2 ==> PRODUCE A N-LEVEL LOG-COORDINATE GRID -5 ==> PRODUCE A N-LEVEL GRID, USING THE LEVELS SPECIFIED BY LEVX N = NUMBER OF LEVELS TO ADD OR PRODUCE IN TARGET ARRAY (THE MAXIMUM NUMBER OF LEVELS IS NOW SET AT 999) IF N IS NEGATIVE, EACH -N LEVX VALUES ARE READ WITH A I10 FORMAT OR AN E10.0 IF ITS VALUE CONTAINS A DECIMAL POINT. I = INTERPOLATION TYPE. 0 ==> LINEAR (DEFAULT). OTHERWISE ==> CUBIC. LEVX = NEW LEVELS IN ADD MODE. ONLY THREE NEW LEVELS CAN BE (lv1) SPECIFIED IN COMMAND LINE INPUT MODE. THEY MUST BE INCREASING OR DECREASING, AS IN XIN. ALSO IN THIS MODE, LEVX MAY ALSO BE THE REAL DECODED LEVEL VALUES. IF THAT IS 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 LEVX CONTAINS 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) IF N IS ZERO AND KIND IS LESS THAN ZERO (I.E. WE ARE NOT IN ADD MODE), N WILL BE RESET TO 2/3 OF THE NUMBER LATITUDES IN XIN. 2) ADDLEV AND ZADLEV ARE THE SAME PROGRAM. 3) IF KIND IS EQUAL TO -5, LEVX IS ALWAYS READ FROM STANDARD INPUT. READ( 5,5000 ) KIND,N,I IF (N.GT.0) READ( 5,5010 ) (LEVX(L),L=1,N) IF (N.LT.0) READ( 5,5020 ) (LEVX(L),L=1,-N) 5000 FORMAT(10X,3I5) 5010 FORMAT(16I5) 5020 FORMAT(8E10.0) EXAMPLE .... ADDLEV -1 15 0 123456789012345678901234567890123456789012345678901234567890 1 2 3 4 5 6 7 EXIT CONDITIONS... 0 NO PROBLEMS FATAL CONDITIONS... 1 PROBLEMS READING XIN 2 FOUND UNSUPPORTED DATA TYPE IN FILE XIN 3 UNABLE TO READ/UNPACK A COMPLETE SET 4 MORE THAN ONE SIZE OF ARRAY IN XIN 5 INTERPOLATION PROCESSING OPTION UNKNOWN 6 ERROR READING INPUT PARAMETERS (FIRST LINE) 7 ERROR READING INPUT PARAMETERS (OPTIONAL SECOND LINE) 8 VERTICAL LEVELS DO NOT VARY MONOTONICALLY 9 NEW AND OLD VERTICAL LEVELS NOT THE SAME TYPE 11 INCONSISTENT LEVX VALUES IN INPUT PARAMETERS NON-FATAL CONDITION... 101 KIND PARAMETER VALUE NOT RECOGNIZED