PROGRAM GRIDEVAL C C MARCH 2017 GLAHN TDL MOS-2000 C ADAPTED FROM DRU155 C MARCH 2020 HUANG MDL INCREASED ND2 AND ND3 FOR NBM C CONUS GRIDS C C PURPOSE C DRIVER FOR PROGRAM U755. SEE U755 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 U755 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( ) THIS IS SET = ND2*ND3. C ND13 = MAXIMUM NUMBER OF REGIONS IN EQUATIONS. C ND14 = MAXIMUM NUMBER OF TERMS IN AN EQUATION. C ND15 = MAXIMUM NUMBER OF CATEGORIES IN PROBABILITY C EQUATIONS. C ND16 = MAXIMUM NUMBER OF ENTRIES IN MTABLE( , ) AND C MPLAIN( ) 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=(64000*10)/L3264B) C*** PARAMETER (NBLOCK=6400/L3264B) C*** PARAMETER (MAXSTA=500) ALASKA C PARAMETER (MAXSTA=3000) C ABOVE FOR CONUS MAX/MIN TEMP C PARAMETER (ND1=MAX(NBLOCK,MAXSTA)) C PARAMETER (ND2=2145, C 1 ND3=1377) C ABOVE FOR CONUS NDFD 2.5 KM GRID. C PARAMETER (ND2=1649, C 1 ND3=1105) C ABOVE FOR ALASKA NBM 3-KM GRID. PARAMETER (ND2=2345, 1 ND3=1597) C ABOVE FOR NBM CONUS 2.5 KM GRID. PARAMETER (ND4=80) PARAMETER (ND6=50) PARAMETER (ND7=54) PARAMETER (ND8=10) PARAMETER (ND9=10000) PARAMETER (ND10=50000) PARAMETER (ND11=3) PARAMETER (ND2X3=MAX(ND1,ND2*ND3)) PARAMETER (ND5=ND2X3) PARAMETER (ND12=ND2*ND3) C THIS ASSUMES THE ND2*ND3 GRID WILL ACCOMMODATE A 2.5-KM C CONUS GRID. PARAMETER (ND13=5) PARAMETER (ND14=22) PARAMETER (ND15=61) C ND13, ND14, AND ND15 ARE USED AS AUTOMATIC ARRAYS IN MELD. PARAMETER (ND16=100) C CHARACTER*8 CCALL(ND1,6) CHARACTER*8 CCALLD(ND5) CHARACTER*17 ANLTAB(ND4) CHARACTER*20 NAME(ND1) CHARACTER*32 PLAIN(ND4),PLAINT CHARACTER*32 MPLAIN(ND16+1) 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), 3 ISDATA(ND1),SDATA(ND1), 5 IQUAL(ND1,5),LNDSEA(ND1),ITYPE(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 IWRITF(ND4),INLTAB(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 MTABLE(ND16+1,3) C EQUIVALENCE (PLAIN,IPLAIN),(PLAINT,IPLANT) EQUIVALENCE (ICALL,CCALL),(ICALLD,CCALLD) 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('GRIDEVAL',2009,0001,0002,'OST22') CALL TIMPR(KFILDO,KFILDO,'START U755 ') CCC OPEN(UNIT=KFILDI,FILE='U755.CN',STATUS='OLD',IOSTAT=IOS,ERR=900) C CALL U755(KFILDI,KFILDO,ICALL,CCALL,ELEV,IWBAN, 1 STALAT,STALON,XP,YP,XYP, 2 ISDATA,SDATA,NAME,IQUAL,LNDSEA,ITYPE, 3 ND1,ND13,ND14,ND15, 4 FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9, 5 ND2,ND3,ND2X3, 6 ID,IDPARS,THRESH,JD,JP, 7 ANLTAB,INLTAB, 8 ISCALD,IWRITS,IWRITA,IWRITF, 9 PLAIN,IPLAIN,PLAINT,IPLANT,L3264B,L3264W,ND4, 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 MTABLE,MPLAIN,ND16, I LSTORE,MSTORE,INDEX,ND9, J CORE,ND10,NBLOCK, K DIR,NGRIDC,ND11) C CALL TIMPR(KFILDO,KFILDO,'END U755 ') CALL W3TAGE('GRIDEVAL') COPS STOP 755 STOP C C 900 CALL IERX(KFILDO,KFILDO,IOS,'DRU755','900 ') CALL W3TAGE('DRU755') STOP 900 C END