PROGRAM GRANALYSIS C C JUNE 2004 GLAHN TDL MOS-2000 C ADAPTED FROM DRU150 C AUGUST 2004 GLAHN ADDED IQUAL(ND1,2) C OCTOBER 2004 GLAHN ADDED XPE( ) AND YPE( ) C OCTOBER 2004 GLAHN CHANGED NELEV( ) TO ELEV( ) C OCTOBER 2004 GLAHN ADDED LNDSEA( ), PLAINT, IPLANT( , ) C DECEMBER 2004 GLAHN ADDED IDST( , , , ), IDPARST( , , , ), C TRSTL( , , ), TRSTU( , , ), C XLAPSE( , , ), AA( , , , ), C IDIMTB( , ), ND13, ND14, ND15 C DECEMBER 2004 GLAHN ADDED IBASE( ) C MAY 2005 GLAHN REMOVED IDST( , , , ), IDPARST( , , , ), C TRSTL( , , ), TRSTU( , , ), C XLAPSE( , , ), AA( , , , ), C IDIMTB( , ), ND14, ND15' C IBASE( ); ADDED IALOC( ), ADIST( ), C AELEV( ),QUALST( ), XLAPSE( ) C MAY 2005 GLAHN CHANGED NOALOC( ) TO NOPAR( ), C KEY( ) TO LOCPAR( ); ADDED LOCSTA( ) C MAY 2005 GLAHN REMOVED LOCSTA( ) C JULY 2005 GLAHN CHANGED ND2,ND3 FROM 1089 X 641 TO C NDFD AREA 1073 X 689 C SEPTEMBER 2005 GLAHN ADDED INLTAB( ), KFILAN( ), ANLNAM( ) C NOVEMBER 2005 GLAHN INCREASED ANLTAB CHARACTER*11 TO *14 C APRIL 2006 GLAHN CHANGED XDATA(ND1) TO XDATA(ND1,6) C APRIL 2006 GLAHN INCREASED ANLTAB CHARACTER*14 TO *17 C JUNE 2006 GLAHN ADDED CPNDFD( ) C MAY 2007 GLAHN INCREASED IQUAL( ,2) TO IQUAL( , 5) C JUNE 2007 GLAHN REMOVED XDATA( , ) C JULY 2007 GLAHN INCREASED DIMENSIONS FOR ALASKA C AUGUST 2007 GLAHN ADDED VRAD( , ) C SEPTEMBER 2007 GLAHN ADDED ELEVHI( ) AND ELEVLO( ) C FEBRUARY 2008 GLAHN ADDED IWRITA( ) C OCTOBER 2009 GLAHN SET DIMENSIONS FOR 2.5 NDFD CONUS GRID C DECEMBER 2009 GLAHN INCREASED ND13 C MARCH 2010 GLAHN DEFINED XYP( ,2), EQUIVALENCED TO XP C AND YP, AND ADDED TO CALL TO U405A C JULY 2014 HUANG COMMENTED OUT OPEN STATEMENT, 900 C STATEMENT, AND TWO STOP STATEMENT AT C THE END. ADDED CALL STATEMENTS W3TAGB C AND W3TAGE C AUGUST 2014 GHIRARDELLI MADE COSMETIC MODIFICATIONS TO C LOOK MORE LIKE CURRENT OPERATIONAL C VERSION C NOVEMBER 2014 HUANG ADDED CALL TO W3TAGE C APRIL 2018 HUANG INCREASED ND2 AND ND3 TO INCLUDE C EXPENDED GRID TO COVER NBM DOMAIN C SEPTEMBER 2018 HUANG INCREASED ND9 TO BE 160000 C 1 2 3 4 5 6 7 X C C PURPOSE C DRIVER FOR PROGRAM U155. SEE U155 COMMENTS OR PROGRAM C WRITEUP FOR VARIABLE DEFINITIONS. AN ATTEMPT HAS BEEN C MADE TO INCLUDE ALL INFORMATION IN THIS DRIVER THAT C THE USER OF U155 MIGHT HAVE TO CHANGE EXCEPT WHAT IS C READ IN CONTROL FILES. C C DATA SET USE C KFILDI - UNIT NUMBER OF DEFAULT INPUT FILE. C THIS IS PROBABLY SPECIFIED FOR THE SYSTEM C BEING USED. SET IN DATA STATEMENT. C KFILDO - UNIT NUMBER OF DEFAULT OUTPUT (PRINT) FILE. C THIS IS PROBABLY SPECIFIED FOR THE SYSTEM C BEING USED. SET IN DATA STATEMENT. C C LET ND1 = THE MAXIMUM NUMBER OF STATIONS THAT CAN BE DEALT C WITH. C ND2 = ND2*ND3 IS THE MAXIMUM SIZE OF THE GRID THAT CAN C BE DEALT WITH. C ND3 = ND2*ND3 IS THE MAXIMUM SIZE OF THE GRID THAT CAN C BE DEALT WITH. SEE ND2. BECAUSE ND5 = ND2X3, C AND ND5 MAY NEED TO BE LARGER THAN ND2X3, ND2 C OR ND3 MAY NEED TO BE SET LARGER THAN NECESSARY. C SINCE THE INDIVIDUAL VALUES OF ND2 AND ND3 ARE C NOT USED, THIS IS OK. C ND4 = THE MAXIMUM NUMBER OF VARIABLES. C ND5 = DIMENSION OF IPACK( ), IWORK( ), AND DATA( ). C THESE ARE GENERAL PURPOSE ARRAYS, SOMETIMES USED C FOR GRIDS. TO AVIOD ERRORS IN CERTAIN ROUTINES, C AND TO AVOID CONFUSION, ND5 SHOULD BE SET EQUAL TO C ND2X3. ALSO, BECAUSE IPACK( ) AND IWORK( ) ARE C USED AS WORK ARRAYS IN RDSNAM. C ND6 = MAXIMUM NUMBER OF INPUT FILES THAT CAN BE DEALT C WITH IN ONE RUN. C ND7 = DIMENSION OF IS0( ), IS1( ), IS2( ), AND IS4( ). C SHOULD BE GE 54. C ND8 = MAXIMUM NUMBER OF DATES THAT CAN BE DEALT WITH. C ND9 = MAXIMUM NUMBER OF FIELDS THAT CAN BE DEALT WITH. C EFFECTIVELY, THIS IS THE TOTAL NUMBER OF FIELDS C IN ALL MODELS USED FOR DAY 1. C ND10 = THE MEMORY IN WORDS ALLOCATED TO THE SAVING OF C PACKED GRIDPOINT FIELDS AND UNPACKED VECTOR DATA. C WHEN THIS SPACE IS EXHAUSTED, SCRATCH DISK WILL C BE USED. C ND11 = MAXIMUM NUMBER OF GRID COMBINATIONS THAT CAN BE C DEALT WITH ON THIS RUN. C ND12 = THE MAXIMUM SIZE OF THE CONSTANT GRIDS ELEV( ) C SEALND( ), AND CPNDFD( ). C ND13 = MAXIMUM TOTAL PAIRS OF STATIONS. DIMENSION OF C IALOC( ), ADIST( ), AND AELEV( ). C C SUBPROGRAMS CALLED: U155, W3TAGB, W3TAGE C UNIQUE: - U155 C LIBRARY: C W3LIB - W3TAGB, W3TAGE C MDLLIB - TIMPR C C EXIT STATES: C COND = 0 - SUCCESSFUL RUN C C REMARKS: NONE C ATTRIBUTES: C LANGUAGE: FORTRAN 90 (xlf90 compiler) C MACHINE: IBM SP C C THEN IT IS SUFFICIENT THAT THE DIMENSIONS OF VARIABLES BE C AS INDICATED BELOW IN THIS EXAMPLE DIRVER. NOTE THAT THE C VARIABLE L3264B IS SET TO 32 FOR A 32-BIT MACHINE AND TO C 64 FOR A 64-BIT MACHINE. L3264W AND NBLOCK WILL C AUTOMATICALLY ADJUST ACCORDINGLY. C 1 2 3 4 5 6 7 X C PARAMETER (L3264B=32) PARAMETER (L3264W=64/L3264B) PARAMETER (NBLOCK=(6400*10)/L3264B) CCCC PARAMETER (NBLOCK=6400/L3264B) CCCC PARAMETER (MAXSTA=500) ALASKA C C PARAMETER (MAXSTA=12200) PARAMETER (MAXSTA=1250000) C ABOVE FOR CONUS MAX/MIN TEMP C PARAMETER (ND1=MAX(NBLOCK,MAXSTA)) C CCCC PARAMETER (ND2=1321, CCCC 1 ND3=721) CCCC ABOVE FOR ALASKA 3-KM. C CCCC PARAMETER (ND2=1073, CCCC 1 ND3=689) CCCC ABOVE FOR CONUS NDFD 5 KM GRID. CC CCCC PARAMETER (ND2=1089, CCCC 1 ND3=641) CCCC ABOVE FOR 10-KM GRIDS OVER LAMP AREA. C CCCC PARAMETER (ND2=137, CCCC 1 ND3=81) PARAMETER (ND2=2345, 1 ND3=1597) C ABOVE FOR EXPENDED NBM GRID. C C ND2=2145, ND3=1377 IS FOR CONUS NDFD 2.5 KM GRID. C C PARAMETER (ND4=200) PARAMETER (ND4=400) PARAMETER (ND6=50) PARAMETER (ND7=54) PARAMETER (ND8=1000) PARAMETER (ND9=160000) PARAMETER (ND10=50000) PARAMETER (ND11=3) PARAMETER (ND2X3=MAX(ND1,ND2*ND3)) PARAMETER (ND5=MAX(ND2X3,2953665)) C 2,953,665 IS REQUIRED FRO READING 2.5 KM TERRAIN. PARAMETER (ND12=ND2*ND3) C THIS ASSUMES THE ND2*ND3 GRID WILL ACCOMMODATE A 2.5-KM C CONUS ANALYSIS. C CCCC PARAMETER (ND13=100000) CCCC THE ABOVE FOR ALASKA. C C PARAMETER (ND13=850000) PARAMETER (ND13=2000000) C CHARACTER*8 CCALL(ND1,6) CHARACTER*8 CCALLD(ND5) CHARACTER*17 ANLTAB(ND4) CHARACTER*12 UNITS(ND4) CHARACTER*20 NAME(ND1) CHARACTER*32 PLAIN(ND4),PLAINT CHARACTER*60 ANLNAM(ND4) CHARACTER*60 NAMIN(ND6) C DIMENSION ICALL(L3264W,ND1,6),XYP(ND1,2), 1 ELEV(ND1),IWBAN(ND1),STALAT(ND1),STALON(ND1), 2 XP(ND1),YP(ND1),XPL(ND1),YPL(ND1),XPE(ND1),YPE(ND1), 3 ISDATA(ND1),SDATA(ND1),LTAG(ND1), 4 WDIR(ND1),WSPD(ND1), 5 TOSS(ND1),QUEST(ND1), 6 IQUAL(ND1,5),LNDSEA(ND1), 7 NOPAR(ND1),LOCPAR(ND1),QUALST(ND1),XLAPSE(ND1), 8 VRAD(ND1,6), 9 ELEVHI(ND1),ELEVLO(ND1) DIMENSION FD1(ND2X3),FD2(ND2X3),FD3(ND2X3),FD4(ND2X3), 1 FD5(ND2X3),FD6(ND2X3),FD7(ND2X3),FD8(ND2X3), 2 FD9(ND2X3) DIMENSION ID(4,ND4),IDPARS(15,ND4),THRESH(ND4),JD(4,ND4), 1 JP(3,ND4),ISCALD(ND4),IWRITS(ND4),IWRITA(ND4), 2 INLTAB(ND4),KFILAN(ND4), 3 SMULT(ND4),SADD(ND4),ORIGIN(ND4),CINT(ND4) DIMENSION IPLAIN(L3264W,4,ND4),IPLANT(L3264W,4) DIMENSION IPACK(ND5),DATA(ND5),IWORK(ND5),ICALLD(L3264W,ND5) DIMENSION KFILIN(ND6),MODNUM(ND6),LDATB(ND6),LDATE(ND6), 1 JFOPEN(ND6),LKHERE(ND6),MSDATE(ND6) DIMENSION INDEXC(ND1,ND6) DIMENSION IS0(ND7),IS1(ND7),IS2(ND7),IS4(ND7) DIMENSION IDATE(ND8),NWORK(ND8) DIMENSION LSTORE(12,ND9),MSTORE(7,ND9),INDEX(ND9) DIMENSION CORE(ND10) DIMENSION DIR(ND1,2,ND11),NGRIDC(6,ND11) DIMENSION TELEV(ND12),SEALND(ND12),CPNDFD(ND12) DIMENSION IALOC(ND13),ADIST(ND13),AELEV(ND13) C EQUIVALENCE (PLAIN,IPLAIN),(PLAINT,IPLANT) EQUIVALENCE (ICALL,CCALL),(ICALLD,CCALLD) EQUIVALENCE (IWBAN,SDATA) EQUIVALENCE (XYP(1,1),XP(1)),(XYP(1,2),YP(1)) C DATA KFILDI/5/, 1 KFILDO/6/ DATA PLAIN/ND4*' '/ DATA LDATB/ND6*2100000000/ DATA LDATE/ND6*-2100000000/ DATA LKHERE/ND6*1/ C CALL W3TAGB('GRANALYSIS',2009,0001,0002,'OST22') CALL TIMPR(KFILDO,KFILDO,'START GRANALYSIS ') CCC OPEN(UNIT=KFILDI,FILE='U155.CN',STATUS='OLD',IOSTAT=IOS,ERR=900) C CALL U155(KFILDI,KFILDO,ICALL,CCALL,ELEV,IWBAN,WDIR,WSPD, 1 STALAT,STALON,XPL,YPL,XP,YP,XYP,XPE,YPE, 2 ISDATA,SDATA,TOSS,QUEST,LTAG,NAME,IQUAL,LNDSEA, 3 NOPAR,LOCPAR,QUALST,XLAPSE,VRAD,ELEVHI,ELEVLO,ND1, 4 FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9, 5 ND2,ND3,ND2X3, 6 ID,IDPARS,THRESH,JD,JP, 7 ANLTAB,INLTAB,KFILAN,ANLNAM, 8 ISCALD,IWRITS,IWRITA,SMULT,SADD,ORIGIN,CINT,UNITS, 9 PLAIN,IPLAIN,PLAINT,IPLANT,L3264B,L3264W,ND4, A IALOC,ADIST,AELEV,ND13, B IPACK,DATA,IWORK,ICALLD,CCALLD,ND5, C TELEV,SEALND,CPNDFD,ND12, E KFILIN,NAMIN,JFOPEN,MODNUM,LDATB,LDATE, E LKHERE,MSDATE,INDEXC,ND6, F IS0,IS1,IS2,IS4,ND7, G IDATE,NWORK,ND8, H LSTORE,MSTORE,INDEX,ND9, I CORE,ND10,NBLOCK, J DIR,NGRIDC,ND11) C CALL TIMPR(KFILDO,KFILDO,'END U155 ') CALL W3TAGE('GRANALYSIS') C STOP 155 STOP C C 900 CALL IERX(KFILDO,KFILDO,IOS,'DRU155','900 ') C STOP 900 CALL W3TAGE('DRU155') STOP 900 C END