CALL SEQUENCE... rangrd GG INPUT OUTPUT \ [ -n VAL1 -name VAL2 -plv VAL3 -lon VAL4 \ -lat VAL5 -npg VAL6 -a VAL7 -delt VAL11 \ -kind VAL5 VAL6 -t1 VAL10 VAL11 \ -lv1 VAL12 [ VAL13 [ VAL14 ] ] \ -def [ DEFLEVS ][ FREEFMT ] ] AUTHOR - B.Dugas, AVRIL 23/87. LAST REVISION: $Header: Correction-au-mode-DEFLEVS-et-autres-trucs-divers @ 2019-04-15 09:48:36 -0400 (dugas) $ DESCRIPTION... CREATE A FILE, GG, CONTAINING NSETS OF ILEV LEVELS OF RANDOM GRIDS OF SIZE (ILG,ILAT). THE ORIGINAL RANDOM SEED IS READ IN AS WELL AS RELEVANT DIMENSIONS AND NUMBER OF TIME STEPS. PARAMETRE... NSETS (n) = NUMBER OF TIMESETS IN GG (DEF=100) DELT = TIME DELTA BETWEEN SAMPLES IN SECONDS (DEF=0). THIS ARGUMENT IS ALWAYS LESS THAN 99999 AND CAN ONLY BE SET VIA THE COMMAND LINE. WHEN DEFINED, THE INITIAL TIME IS SET TO 1979010100. DATEO (t1/t2) = INITIAL TIME (DEF=19790101/00). THESE TWO NUMBERS STAND FOR YYYYMMDD AND HHMMSS. AGAIN, THEY CAN ONLY BE SET VIA THE COMMAND LINE. NAME = DATA NAME (DEF='DATA') ILEV (plv) = NUMBER OF VERTICAL LEVELS (DEF=16,MAX=999) IF ILEV IS NEGATIVE, EACH -ILEV LVL VALUES ARE READ WITH A I10 FORMAT OR AN E10.0 IF ITS VALUE CONTAINS A DECIMAL POINT. ILG (lon) = LONGITUDINAL DIMENSION (DEF=32) ILAT (lat) = LATITUDINAL DIMENSION (DEF=16) NPACK (npg) = PACKING FACTOR (DEF=-32) SEED (a) = INTEGER SEED USED IN RANDOM NUMBER GENERATOR KIND (kind(1)) = OUTPUT DISTRIBUTION TYPE. 'UNIF', FOR UNIFORM [0.,1.] (DEFAULT) 'GAUS', FOR GAUSSIAN. VKIND (kind(2)) = VERTICAL LEVEL TYPE. IT CAN ONLY BE USED WITH CMC/RPN STD FILES AND THEN LV1 AND LV2 ARE ASSUMED TO 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) (*** DEFAULT ***) '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 LVL (lv1) = VERTICAL LEVELS (ILEV ARE READ IN A SECOND LINE) Notes: 1) The first input line is NOT read if any command-line parameters are passed. 2) Furthermore, the second line will not be read either if the -def command-line argument is specied by itself or with the 'DEFLEVS' value, as this activates a default level values processing mode. These defaults are then as specified in the example below and ILEV is also reset to 16, for consistency. 3) Specifying '-def FREEFMT' indicates that the output model levels should read with a list-directed free format. This is obviously not the default behaviour. Level values should then only be separated by spaces or comas, and spread over one or more lines. These numbers are then always assumed to be the actual real model levels, and not their possibly encoded integer values. Turning on the "FREE_FORMAT_LEVEL_IO" environment variable will also activate this behaviour. 4) The results are mutiplied by the local level pressure in HPa, so that the uniform range of values goes from 0 to the local pressure. The gaussian distribution has zero mean and unit variance before again being mutiplied by the local pressure. 5) Finally, the -def level-related parameters will all ignored if any level values are specified via the '-lv1' parameter. READ(5,5000) NSETS,NAME,ILEV,ILG,ILAT,NPACK, SEED,KIND IF (FREEFMT) READ( 5,* ) (ETA(I),I=1,ABS(ILEV)) IF (ILEV.GT.0) READ( 5,5001 ) (LVL(I),I=1,ILEV) IF (ILEV.LT.0) READ( 5,5002 ) (LVL(I),I=1,-ILEV) 5000 FORMAT(10X,I5,1X,A4,4I5,I10,1X,A4,i5) 5001 FORMAT(16I5) 5002 FORMAT(8I10) EXAMPLE OF INPUT CARDS (with format 5002 & 5002)... RANGRD 20 DATA 10 128 64 -16 12345678 100 200 300 400 500 600 700 800 900 1000 0123456789012345678901234567890123456789012345678901234567890 1 2 3 4 5 6 7 EXIT CONDITIONS... 0 NO PROBLEMS 1 MEMORY ALLOCATION PROBLEM 2 PROBLEM READING FIRST INPUT LINE 3 PROBLEM READING SECOND OR SUCCESSIVE INPUT LINES 4 CODED LVL DATA IS NOT CONSISTENT WITH VKIND 5 UNRECOGNIZED -DEF ARGUMENT VALUE 6 KIND MUST DE DEFINED WHEN REAL OUTPUT LEVELS ARE SPECIFIED