PROGRAM GRDMODL_NEW C C$$$ MAIN PROGRAM DOCUMENTATION BLOCK *** C C MAIN PROGRAM: LMP_DECLTG C PRGMMR: WIEDENFELD ORG: OST21 DATE: 2005-08-09 C C ABSTRACT: DRIVER FOR PROGRAM U150. SEE U150 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 U150 MIGHT HAVE TO CHANGE EXCEPT WHAT IS C READ IN CONTROL FILES. C C C PROGRAM HISTORY LOG: C JULY 2000 GLAHN TDL LAMP C ADAPTED FROM DRU201 C AUGUST 2005 WIEDENFELD MDL MODIFIED FOR NCEP OPERATIONS C MARCH 2012 GHIRARDELLIMDL MODIFIED TO CHANGE MAXSTA FROM C 3500 to 4500 C DECEMBER 2016 GHIRARDELLIMDL COPIED FROM GRDMODL. THIS C VERSION USES MRMS AND TL DATA C AND IDS. C MARCH 2024 SAMPLATSKY MDL COPY OF GRDMODL_NEW, ONLY C CHANGE IS CALL U15015M, NOT C U150. C C PURPOSE C DATA SET USE C INPUT FILES: C FORT.KFILDI - UNIT NUMBER OF DEFAULT INPUT FILE. C THIS IS PROBABLY SPECIFIED FOR THE SYSTEM C BEING USED. SET IN DATA STATEMENT. C C OUTPUT FILES: C FORT.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 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 PARAMETER (L3264B=32) PARAMETER (L3264W=64/L3264B) PARAMETER (NBLOCK=(6400*10)/L3264B) C THE ABOVE GIVES A BLOCK OF 2000; A GRID OF 80 KM OVER C THE LAMP AREA = 11097 WORDS. PACKED THIS WOULD BE ABOUT C 3000 OR MORE WORDS C*** PARAMETER (NBLOCK=6400/L3264B) PARAMETER (MAXSTA=5500) PARAMETER (ND1=MAX(NBLOCK,MAXSTA)) C PARAMETER (ND2=2177, C 1 ND3=1281) C ABOVE TOO BIG TO RUN, WHAT'S NECESSARY FOR 5-KM GRIDS. PARAMETER (ND2=1089, 1 ND3=641) C ABOVE FOR 10-KM GRIDS OVER LAMP AREA. C PARAMETER (ND2=137, C 1 ND3=81) PARAMETER (ND4=5000) PARAMETER (ND6=50) PARAMETER (ND7=54) PARAMETER (ND8=1000) PARAMETER (ND9=5000) PARAMETER (ND10=6000000) PARAMETER (ND11=3) PARAMETER (ND2X3=MAX(ND1,ND2*ND3)) PARAMETER (ND5=ND2X3) C CHARACTER*8 CCALL(ND1,6) CHARACTER*8 CCALLD(ND5) CHARACTER*12 UNITS(ND4) CHARACTER*20 NAME(ND1) CHARACTER*32 PLAIN(ND4) CHARACTER*60 NAMIN(ND6) C DIMENSION ICALL(L3264W,ND1,6), 1 NELEV(ND1),IWBAN(ND1),STALAT(ND1),STALON(ND1), 2 XP(ND1),YP(ND1),XPL(ND1),YPL(ND1), 3 ISDATA(ND1),SDATA(ND1),LTAG(ND1), 4 WDIR(ND1),WSPD(ND1),PW(ND1),THICK(ND1),EL(ND1), 5 DP(ND1),WX(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), C SMULT(ND4),SADD(ND4),ORIGIN(ND4),CINT(ND4) DIMENSION IPLAIN(L3264W,4,ND4) 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) C EQUIVALENCE (PLAIN,IPLAIN) EQUIVALENCE (ICALL,CCALL),(ICALLD,CCALLD) EQUIVALENCE (IWBAN,SDATA) C DATA KFILDI/5/, 1 KFILDO/6/ DATA PLAIN/ND4*' '/ DATA LDATB/ND6*2100000000/ DATA LDATE/ND6*-2100000000/ DATA LKHERE/ND6*1/ C CALL TIMPR(KFILDO,KFILDO,'START U15015M ') CALL W3TAGB('LMP_GRDMODL',2005,0100,0050,'OST21') C OPEN(UNIT=KFILDI,FILE='U150.CN',STATUS='OLD',IOSTAT=IOS,ERR=900) C CALL U15015M(KFILDI,KFILDO,ICALL,CCALL,NELEV,IWBAN,WDIR,WSPD, 1 STALAT,STALON,XPL,YPL,XP,YP,ISDATA,SDATA, 2 DP,WX,PW,EL,THICK,LTAG,NAME,ND1, 3 FD1,FD2,FD3,FD4,FD5,FD6,FD7,FD8,FD9, 4 ND2,ND3,ND2X3, 5 ID,IDPARS,THRESH,JD,JP, 6 ISCALD,SMULT,SADD,ORIGIN,CINT,UNITS,ND4, 7 PLAIN,IPLAIN,L3264B,L3264W, 8 IPACK,DATA,IWORK,ICALLD,CCALLD,ND5, 9 KFILIN,NAMIN,JFOPEN,MODNUM,LDATB,LDATE, A LKHERE,MSDATE,INDEXC,ND6, B IS0,IS1,IS2,IS4,ND7, C IDATE,NWORK,ND8, D LSTORE,MSTORE,INDEX,ND9, E CORE,ND10,NBLOCK, F DIR,NGRIDC,ND11) C CALL TIMPR(KFILDO,KFILDO,'END U15015M ') CALL W3TAGE('LMP_GRDMODL') STOP C C900 CALL IERX(KFILDO,KFILDO,IOS,'DRU150','900 ') C STOP 900 C END