subroutine opt_calc CC i (iyear,stidd,numyr,station_code,ii, i (iyear,stidd,station_code,ii, m sumpp,sumptx,sumptm,sumprd,sumpdr, o moveto) c + + + ARGUMENT DECLARATIONS + + + integer iyear, station_code, ii, moveto real sumpp(13),sumptx(12),sumptm(12),sumprd(12),sumpdr(12) c + + + PURPOSE + + + c To handle Options 1-3. c c ----- Split out from the CLIGEN main module 10/1/99 by C. R. Meyer. c c iyear - Beginning Simulation Year. c stidd - 41-character alphanumeric station name. c numyr - Number of years to simulate. c station_code - 4-digit Numeric Station Code. c ii - c sumpp(13) - "prcp" (average monthly values for numyr years) c (13: average annual precipitation) c sumptx(12) - "tmax" (average monthly values for numyr years) c sumptm(12) - "tmin" (average monthly values for numyr years) c sumprd(12) - "rad" (average monthly values for numyr years) c sumpdr(12) - "dur" (average monthly values for numyr years) c moveto - A global flag. If set to 'XX' it means "goto XX". c character*41 stidd c character*1 yc c c + + + COMMON BLOCKS + + + include 'cbk4.inc' c read: iopt c include 'csumr.inc' c read: sump,sumtx,sumtm,sumrd,sumdr c include 'cbk5.inc' c modify: r c include 'command.inc' c read: numyr c c + + + LOCAL VARIABLES + + + integer i, ne, j, nb, jj, iview real an c + + + SUBROUTINES CALLED + + + c clmout c c + + + OUTPUT FORMATS + + + 2000 format(/1x,'Do you want to view generated data (y/n)? ') 2010 format(/1x,'Do you want to simulate another year (y/n)? ') 2020 format(/1x,'Do you want another Station (y/n)? ') 2030 format(/15x,'Summary of Elements Generated - Year ',i4) 2040 format(1x,'elem',' yr',' J F M A M J', 1 ' J A S O N D'/) 2050 format(1x,'prcp',i3,12f6.2) 2060 format(1x,'tmax',i3,12f6.2) 2070 format(1x,'tmin',i3,12f6.2) 2080 format(1x,'rad ',i3,12f6.1) 2090 format(1x,'dur ',i3,12f6.2) 2100 format(/1x,'Annual Precipitation =',f6.2,a30/) 2110 format(i5,i5,10f5.2,8x,i2) 2120 format(i5,i5,6f5.2,28x,i2) c c + + + END SPECIFICATIONS + + + c c Option 1 Stuff if(iopt.le.1) then write(*,2000) read(*,'(a1)')yc if(yc.eq.'y'.or.yc.eq.'Y') then iview=1 call clmout(iview) end if write(*,2010) read(*,'(a1)')yc if(yc.eq.'y'.or.yc.eq.'Y') then moveto = 160 else write(*,2020) read(*,'(a1)')yc if(yc.eq.'y'.or.yc.eq.'Y') then moveto = 10 else moveto = 230 endif endif c c Option 2 Stuff elseif(iopt.eq.2) then jj=ii call clmout(0) write(*,2030) iyear write(*,*)' ' write(*,2040) write(*,2050)jj,(sump(i),i=1,12) write(*,2060)jj,(sumtx(i),i=1,12) write(*,2070)jj,(sumtm(i),i=1,12) write(*,2080)jj,(sumrd(i),i=1,12) write(*,2090)jj,(sumdr(i),i=1,12) write(*,2100)sump(13),stidd an=numyr do 200 i=1,12 sumpp(i)=sumpp(i)+sump(i)/an sumptx(i)=sumptx(i)+sumtx(i)/an sumptm(i)=sumptm(i)+sumtm(i)/an sumprd(i)=sumprd(i)+sumrd(i)/an sumpdr(i)=sumpdr(i)+sumdr(i)/an 200 continue sumpp(13)=sumpp(13)+sump(13)/an c c Option 3 Stuff elseif(iopt.eq.3) then nb=1 ne=10 do 210 j=1, 36 write(8,2110)station_code,iyear,(r(i),i=nb,ne),j nb=ne + 1 ne=nb + 9 210 continue nb=361 ne=366 if(((iyear/4*4)-iyear).ne.0) r(366)=0.0 j=37 write(8,2120)station_code,iyear,(r(i),i=nb,ne),j endif c return end