如何开始从Fortran到C#的转换?

时间:2019-07-20 10:15:34

标签: c# fortran

我想将此Fortran转换为C#。我不了解Fortran。

代码:

           DIMENSION JDAY(15000),DATE(15000),TMAX(15000),TM`enter code here`IN(15000),
         1 RH1(15000),RH2(15000),WS(15000),RF(15000),SS(15000),EVP(15000),
         2 ED(15000),WSI(15000),AN(15000),
         3 DD(15000),TC(15000),W(15000),F(15000),DD1(15000),DD2(15000),
         4 DR(15000),RA(15000),RS(15000),RNS(15000),TO(15000),RNL(15000),
         9 RN(15000),PET(15000),D(15000),DDD(15000),
         5 AA(15000),BB(15000),BCM(15000),TOA(20000),SLO(20000),
         5 EAA(20000),EAI(20000),EAV(20000),EDD(20000),VP(20000),
         5 GE(20000),PEN(20000),DE(20000),ESA(20000),TMK(20000),
         5TMN(20000),TA(20000),TX(20000),TN(20000),RS0(20000),
         5 EO(20000),EM(20000),CO(20000),CZ(20000),TXS(20000),TNS(20000),
         5ES(20000),EA(20000),SL(20000),SLTX(20000),SLTN(20000),DTR(20000),
         5SQDTR(20000),AHRS(20000),RFCO(20000),RFC(20000),RFPET(20000),
         5RFRO(20000),DRO(20000),SS0(20000),AR(20000),FR(20000),SD(20000),
         5TBASE(20000),ID(25000),IM(25000),IY(25000),IDS(300)
         5,IMS(9000),IYYY(9000),CF(25000),FF(25000),GF(25000),
         1IDSS(9000),IMSS(9000),IYSS(9000),
         1VAR(9000),DS(9000),SSD(9000),SSM1(9000),SSD1(900),SSY1(900),
         1SSD2(900),SSY2(900),SSM3(900),SSD3(900),SSY3(900),SSM4(900),
         1SSD4(900),SSY4(900),SSM5(900),SSD5(900),SSY5(900),SSM6(900),
         1SSD6(900),SSY6(900),SSM2(900),SSM7(900),SSD7(900),SSY7(900),
         1SSM8(900),SSD8(900),SSY8(900),SSM9(900),SSD9(900),SSY9(900),
         1SSM10(900),SSD10(900),SSY10(900),SSM11(900),SSD11(900),
         1SSY11(900),GDD6(900),GDD7(900),GDD8(900),GDD9(900),
         1GDD1(900),GDD2(900),GDD3(900),GDD4(900),GDD5(900),GDD10(900)
         1,AVGDD1(900),AVGDD2(900),AVGDD3(900),AVGDD4(900),AVGDD5(900)
         1,AVGDD6(900),AVGDD7(900),AVGDD8(900),AVGDD9(900),AVGDD10(900)
         1,AKC(15000),AMF(15000),ALF(15000),AHF(15000),AJF(15000),AET(15000)
         1,ANF(15000),DSS(900),SSDS(900),AVGDD1S(900),AVGDD2S(900),
         1AVGDD3S(900),AVGDD4S(900),AVGDD5S(900),JDAYO(10000),TFBS(10000)
         1,IMT(10000),IDT(10000),IYT(10000),TXX(10000),TNN(10000),RFL(10000)
         1,AVGDD6S(900),AVGDD7S(900),CRWT(25000),
         1AVGDD8S(900),AVGDD9S(900),AVGDD10S(900),CR1(900),CR2(900),CR3(900)
         1,CR4(900),CR5(900),CR6(900),CR7(900),CR8(900),CR9(900),CR10(900),
         1AVCR1(900),AVCR2(900),AVCR3(900),AVCR4(900),AVCR5(900),AVCR6(900),
         1AVCR7(900),AVCR8(900),AVCR9(900),AVCR10(900),AVCR6S(900),
         1AVCR1S(900),AVCR2S(900),AVCR3S(900),AVCR4S(900),AVCR5S(900),
         1AVCR7S(900),AVCR8S(900),AVCR9S(900),AVCR10S(900)
         CHARACTER DATE*15,FILE1*60,FILE2*15,IDOS*20,VAR*20,DS*5,AAV*15,
         1DSS*5
           INTEGER SSM1,SSD1,SSY1,SSM2,SSD2,SSY2,SSM3,SSD3,SSY3,SSM4,SSD4,
         1SSY4,SSM5,SSD5,SSY5,SSM6,SSD6,SSY6,ST1,ST2,ST3,ST4,ESO1,ESO2,MSO1,
         1MSO2,LSO1,LSO2,SSM7,SSD7,SSY7,SSM8,SSD8,SSY8,SSM9,SSD9,SSY9,SSM10,
         1SSD10,SSY10,SSM11,SSD11,SSY11
           WRITE(*,*)'***************************************************
         1************************'
          WRITE(*,*)'*
         1                       *'
           WRITE(*,*)'*
         1                       *'
           WRITE(*,*)'*                  - DYNAMIC CROP WEATHER CALENDAR v1.
         10 -                    *'
           WRITE(*,*)'*                                 AICRPAM
         1                       *'
           WRITE(*,*)'*                             CRIDA, HYDERABAD
         1                       *'
           WRITE(*,*)'*
         1                       *'
           WRITE(*,*)'*
         1                       *'
           WRITE(*,*)'**************************************************
         1************************'
           OPEN(29,FILE="INPUT.CSV")
           READ(29,*)
           READ(29,*)FILE1
           READ(29,*)
           READ(29,*)FILE2
           OPEN(10,FILE=FILE1)
           OPEN(30,FILE=FILE2)
           OPEN(20,FILE="R_H_WB FOR SOWING.CSV")
           OPEN(32,FILE="ACCUMULATED GDD.CSV")
    C       OPEN(91,FILE="CROP WATER REQUIREMENT.CSV")
           OPEN(33,FILE="CROP WATER REQUIREMENT.CSV")
           OPEN(23,FILE="PREDICTED DATE OF SOWING.CSV")
           OPEN(92,FILE="PREDICTED PHENOLOGY.CSV")
           OPEN(15,FILE="DOS.CSV")
           WRITE(92,*)"STAGE,DATE"
    C       WRITE(91,*)'DATE,JULIAN DAY,RF(MM),PET(MM),RFCO,NO OF DAYS SINCE
    C     1LAST RF,Kc,AET(MM),SOIL MOISTURE,RUNOFF,DRAINAGE,IRRIGATION'
           WRITE(20,*)'DATE,JULIAN DAY,RF(MM),PET(MM),RFCO,NO OF DAYS SINCE
         1LAST RF,AET(MM),RUNOFF,DRAINAGE,SOIL MOISTURE,SOWING DATE'
           WRITE(32,*)'DURATION,SOWING,STAGE-1,STAGE-2,STAGE-3,
         1STAGE-4,STAGE-5,STAGE-6,STAGE-7,STAGE-8,STAGE-9,STAGE-10'
           WRITE(33,*)'DURATION,SOWING,STAGE-1,STAGE-2,STAGE-3,
         1STAGE-4,STAGE-5,STAGE-6,STAGE-7,STAGE-8,STAGE-9,STAGE-10'
          READ(29,*)
           READ(29,*)ALA,ALON,ELEV
           ALAT=ALA*(3.14/180)
           READ(29,*)
           READ(29,*)
           READ(29,*)
           READ(29,*)
           READ(29,*)IIDW,IIMW,IIYW
           READ(29,*)
           READ(29,*)AWHC,FRAC
           READ(29,*)
           READ(29,*)JDAYMIN,JDAYMAX
           READ(29,*)
           READ(29,*)THRESHOLD
           READ(29,*)
           READ(29,*)FCAP,PWP
           READ(29,*)
           READ(29,*)RTR
           READ(29,*)
           READ(29,*)TBSE
           READ(29,*)
           READ(29,*)
           READ(29,*)ST1,ST2,ST3,ST4
           READ(29,*)
           READ(29,*)
           READ(29,*)CKC1,CKC2,CKC3
           READ(29,*)
           READ(29,*)
           READ(29,*)ESO1,ESO2
           READ(29,*)
           READ(29,*)MSO1,MSO2
           READ(29,*)
           READ(29,*)LSO1,LSO2
           READ(29,*)
           READ(29,*)JSTART
           AKC1=CKC1
           AKC3=CKC2
           AKC5=CKC3
           CROPWAT=0
           READ(30,*)
           READ(30,*)
           JDAYO(1)=1
           MI=1
     39    READ(30,*,END=38,ERR=38)IMT(MI),IDT(MI),IYT(MI),TXX(MI),TNN(MI),
         1RFL(MI)
           IF(IDT(MI).EQ.1.AND.IMT(MI).EQ.1)THEN
            JDAYO(MI)=1
            ELSE
            JDAYO(MI)=JDAYO(MI-1)+1
            TFBS(MI)=((TXX(MI)+TNN(MI))/2)-TBSE
            ENDIF
    C 47    FORMAT(I2,1X,I2,1X,I4)
    C       WRITE(83,*)IMT(MI),IDT(MI),IYT(MI),TXX(MI),TNN(MI),RFL(MI)
           MI=MI+1
           GOTO  39
     38    CLOSE(39)
           READ(15,*)
           READ(15,*)
           IN=1
     52    READ(15,*,END=51,ERR=51)VAR(IN),DS(IN),SSD(IN),SSM1(IN),
         1SSD1(IN),SSY1(IN),SSM2(IN),
         1SSD2(IN),SSY2(IN),SSM3(IN),SSD3(IN),SSY3(IN),SSM4(IN),
         1SSD4(IN),SSY4(IN),SSM5(IN),SSD5(IN),SSY5(IN),SSM6(IN),SSD6(IN),
         1SSY6(IN),SSM7(IN),SSD7(IN),SSY7(IN),SSM8(IN),SSD8(IN),SSY8(IN),
         1SSM9(IN),SSD9(IN),SSY9(IN),SSM10(IN),SSD10(IN),SSY10(IN),SSM11(IN)
         1,SSD11(IN),SSY11(IN)
           IN=IN+1
           GOTO 52
     51    CLOSE(52)         
           READ(10,*)
           I=1
           N=0
     45    READ(10,*,END=35)IM(I),ID(I),IY(I),TMAX(I),TMIN(I),
         5 RH1(I),RH2(I),WS(I),SS(I),RF(I),AR(I)
    C 14    FORMAT(I2,1X,I2,1X,I4,1X,F6.0,1X,F6.2,1X,F6.2,1X,F6.2,1X,F6.2,
    C     51X,F6.2,1X,F6.2,1X,F6.2)
    C       WRITE(84,*)IM(I),ID(I),IY(I),TMAX(I),TMIN(I),
    C     5 RH1(I),RH2(I),WS(I),SS(I),RF(I),AR(I)
           I=I+1
           N=N+1
           GOTO 45
     35    CLOSE(45)
    C       WRITE(*,*)'THE ET IS WRITTEN IN THE FILE OUT.CSV'
    C        FF(0)=0
           DO IL=1,IN-1
             DO I=1,N-1
          IF(SSM1(IL).EQ.IM(I).AND.SSD1(IL).EQ.ID(I).AND.SSY1(IL).EQ.
         1IY(I))THEN
             IST=I          
             DO IS=IST,IST+ST1
             AKC(IS)=CKC1
             ENDDO
             L1=1
             DO IS=IST+ST1+1,IST+ST1+ST2
             AKC(IS)=CKC1+(((CKC2-CKC1)/ST2)*L1)
             L1=L1+1
             ENDDO     DO IS=IST+ST1+ST2+1,IST+ST1+ST2+ST3
             AKC(IS)=CKC2
             ENDDO             L2=1
             DO IS=IST+ST1+ST2+ST3+1,IST+ST1+ST2+ST3+ST4
             AKC(IS)=CKC2-(((CKC2-CKC3)/ST4)*L2)
             L2=L2+1
             ENDDO   ENDIF  ENDDO 
    C         DO I=1,N
    C         WRITE(73,*)ID(I),IM(I),IY(I),AKC(I)
    C         ENDDO           ENDDO
            JDAY(1)=1
            DO I=1,N
            IF(ID(I).EQ.1.AND.IM(I).EQ.1)THEN
            JDAY(I)=1
            ELSE
            JDAY(I)=JDAY(I-1)+1
            ENDIF
            DR(I)=1+(0.033*(COS(6.28*(JDAY(I))/365)))
            D(I)=0.4093*SIN(6.28*JDAY(I)/365-1.39)
            WSI(I)=ACOS((-TAN(ALAT))*TAN(D(I)))
            WS(I)=((WS(I)*5)/18)*((4.87)/LOG((67.8*3.048006)-5.42))
            RA(I)=((24*60)/3.14)*(0.082*DR(I))*((WSI(I)*SIN(ALAT)
         7 *SIN(D(I))+(COS(ALAT)*COS(D(I))*SIN(WSI(I)))))
    C  AVERAGE TEMPERATURE IN A DAY IN KELVIN
           TBASE(I)=((TMAX(I)+TMIN(I))/2)-TBSE
           TO(I)=((TMAX(I)+TMIN(I))/2)+273
    C  AVERAGE TEMPERATURE IN A DAY IN KELVIN
           TOA(I)=(TMAX(I)+TMIN(I))/2
           TXS(I)=0.6108*EXP((TMAX(I)*17.27)/(TMAX(I)+237.3))
           TNS(I)=0.6108*EXP((TMIN(I)*17.27)/(TMIN(I)+237.3))
           ES(I)=(TXS(I)+TNS(I))/2
           EA(I)=ES(I)*(((RH1(I)+RH2(I))/2)/100)
           SLTX(I)=4098*(0.6108*EXP((17.27*TMAX(I))/(TMAX(I)+237.3)))/(
         1((TMAX(I)+237.3)*(TMAX(I)+237.3)))
           SLTN(I)=4098*(0.6108*EXP((17.27*TMIN(I))/(TMIN(I)+237.3)))/(
         1((TMIN(I)+237.3)*(TMIN(I)+237.3)))
           SL(I)=4098*(0.6108*EXP((17.27*TOA(I))/(TOA(I)+237.3)))/(
         1((TOA(I)+237.3)*(TOA(I)+237.3)))
           DTR(I)=TMAX(I)-TMIN(I)
           SQDTR(I)=SQRT(DTR(I))
           AHRS(I)=SQDTR(I)*RA(I)*0.16
           AN(I)=(24/3.14)*ACOS((-TAN(ALAT))*TAN(D(I)))
           RS(I)=(0.32+((SS(I)*0.46)/AN(I)))*RA(I)
           RNS(I)=(1-0.23)*RS(I)
           RS0(I)=(0.75+((2*ELEV)/100000))*RA(I)
           EO(I)=0.34-(0.14*SQRT(EA(I)))
           EM(I)=(1.35*(RS(I)/RS0(I)))-0.35
            TX(I)=TMAX(I)+273.16
            TN(I)=TMIN(I)+273.16
            TMK(I)=((TX(I)*TX(I)*TX(I)*TX(I)))
            TMN(I)=((TN(I)*TN(I)*TN(I)*TN(I)))
            TA(I)=(TMK(I)+TMN(I))/2
            GE(I)=0.38*(TOA(I)-TOA(I-1))
           RNL(I)=(((TMK(I)+TMN(I))/2)*EO(I)*EM(I)*4.903)/1000000000
           RN(I)=(RNS(I)-RNL(I))
           CO(I)=(0.408*RN(I)*SL(I))+(0.060217*WS(I)*(ES(I)-EA(I))*900/(273+
         1 TOA(I)))
            CZ(I)=SL(I)+0.060217*(1+0.34*WS(I))
           PET(I)=((0.408*SL(I)*RN(I))+(0.065584*(900/(TOA(I)+273)))*(WS
         1(I)*(ES(I)-EA(I))))/(SL(I)+(0.065584*(1+0.34*WS(I))))
    C POTENTIAL EVAPOTRANSPIRATION
            PEN(I)=CO(I)/CZ(I)
    C SOLAR INCLINATION
    C       WRITE(20,*)JDAY(I),',',DATE(I),',',PEN(I),',',PET(I)
           ENDDO
           RFC(1)=1
           R0=0
            DO I=1,N
            IF(RF(I).GT.0.0)THEN
            RFCO(I)=0
            ELSE
            RFCO(I)=1
            ENDIF            
            IF(RFCO(I).EQ.1)THEN
            RFC(I)=RFC(I-1)+RFCO(I)
            ELSE
            RFC(I)=0      ENDIF            
            IF(RFCO(I).EQ.0)THEN
            RFPET(I)=PET(I)
            ELSE
            RFPET(I)=PET(I)*SQRT((1/RFC(I)))
            ENDIF
            IF(RF(I).GE.RTR)THEN
            RFRO(I)=RF(I)-RTR    ELSE
            RFRO(I)=0       ENDIF
             IF(SS0(I-1).GT.AWHC)THEN
             DRO(I)=SS0(I-1)-AWHC       ELSE
             DRO(I)=0          ENDIF
           IF((SS0(I-1)+RF(I)+AR(I)-RFPET(I)-RFRO(I)-DRO(I)).LT.PWP)THEN
           SS0(I)=PWP        ELSE
           SS0(I)=SS0(I-1)+RF(I)+AR(I)-RFPET(I)-RFRO(I)-DRO(I)     ENDIF
            IF(SS0(I).GT.FCAP)THEN
            SS0(I)=FCAP        ELSE
            SS0(I)=SS0(I)
            ENDIF
            IF(((SS0(I-1))/AWHC).GT.FRAC)THEN
            FR(I)=1          ELSE
            FR(I)=(SS0(I-1)/(AWHC*FRAC))          ENDIF
            IF(JDAY(I).GE.JDAYMIN.AND.JDAY(I).LE.JDAYMAX.AND.SS0(I).GE.
         1(AWHC*THRESHOLD))THEN
            SD(I)=1         ELSE
            SD(I)=0         ENDIF
    C        WRITE(83,*)JDAYMIN,JDAYMAX,AWHC*THRESHOLD,AWHC,THRESHOLD
            CRWT(I)=AKC(I)*RFPET(I)
           WRITE(20,29)IM(I),ID(I),IY(I),JDAY(I),RF(I),PET(I),RFCO(I),RFC(I)
         1,RFPET(I),RFRO(I),DRO(I),SS0(I),SD(I)
     29    FORMAT (I2,'/',I2,'/',I4,',',I3,',',F6.2,',',F6.2,',',
         1F6.2,',',F6.2,',',F6.2,',',F6.2,',',F6.2,',',F6.2,',',F6.2)   ENDDO
            L=1
          DO I=1,N-1
            IF(SD(I).GT.SD(I-1).AND.SD(I).NE.SD(I-1))THEN
            IDS(L)=ID(I+1)
            IMS(L)=IM(I+1)
            IYYY(L)=IY(I+1)
            L=L+1
   C        I=I+50
    CC        GOTO 70
    C       ELSE
    C        I=I+1
    C        GOTO 70
            ENDIF
            ENDDO
            KK=1
            DO K=1,L-1
            IF(IYYY(K).NE.IYYY(K-1))THEN
            IDSS(KK)=IDS(K)
            IMSS(KK)=IMS(K)
            IYSS(KK)=IYYY(K)
    C        WRITE(23,*)IDS(K),',',IMS(K),',',IYYY(K),KK
            KK=KK+1
            ENDIF            ENDDO
              DO KL=1,KK-1
    C        DO I=1,N-1
    C        IF(ID(I).EQ.IDSS(KL).AND.IM(I).EQ.IMSS(KL).AND.IY(I).EQ.
    C     1IYSS(KL))THEN
    C         NO=I
    C        DO NA=NO,NO+19
          WRITE(23,*)IDSS(KL),'/',IMSS(KL),'/',IYSS(KL)         ENDDO
             DO IL=1,IN-1
             GDD1(IL)=0
             GDD2(IL)=0
             GDD3(IL)=0
             GDD4(IL)=0
             GDD5(IL)=0
             GDD6(IL)=0
             GDD7(IL)=0
             GDD8(IL)=0
             GDD9(IL)=0
             GDD10(IL)=0
             CR1(IL)=0
             CR2(IL)=0
             CR3(IL)=0
             CR4(IL)=0
             CR5(IL)=0
             CR6(IL)=0
             CR7(IL)=0
             CR8(IL)=0
             CR9(IL)=0
             CR10(IL)=0
             DO I=1,N-1
          IF(SSM1(IL).EQ.IM(I).AND.SSD1(IL).EQ.ID(I).AND.SSY1(IL).EQ.
         1IY(I))THEN
             ISS1=I
          ELSEIF(SSM2(IL).EQ.IM(I).AND.SSD2(IL).EQ.ID(I).AND.SSY2(IL).EQ.
         1IY(I))THEN
             ISS2=I
             ELSEIF(SSM3(IL).EQ.IM(I).AND.SSD3(IL).EQ.ID(I).AND.SSY3(IL).EQ.
         1IY(I))THEN
             ISS3=I
             ELSEIF(SSM4(IL).EQ.IM(I).AND.SSD4(IL).EQ.ID(I).AND.SSY4(IL).EQ.
         1IY(I))THEN
             ISS4=I
             ELSEIF(SSM5(IL).EQ.IM(I).AND.SSD5(IL).EQ.ID(I).AND.SSY5(IL).EQ.
         1IY(I))THEN
             ISS5=I
             ELSEIF(SSM6(IL).EQ.IM(I).AND.SSD6(IL).EQ.ID(I).AND.SSY6(IL).EQ.
         1IY(I))THEN
             ISS6=I
             ELSEIF(SSM7(IL).EQ.IM(I).AND.SSD7(IL).EQ.ID(I).AND.SSY7(IL).EQ.
         1IY(I))THEN
             ISS7=I
             ELSEIF(SSM8(IL).EQ.IM(I).AND.SSD8(IL).EQ.ID(I).AND.SSY8(IL).EQ.
         1IY(I))THEN
             ISS8=I
             ELSEIF(SSM9(IL).EQ.IM(I).AND.SSD9(IL).EQ.ID(I).AND.SSY9(IL).EQ.
         1IY(I))THEN
             ISS9=I
              ELSEIF(SSM10(IL).EQ.IM(I).AND.SSD10(IL).EQ.ID(I).AND.SSY10(IL)
         1.EQ.IY(I))THEN
             ISS10=I
              ELSEIF(SSM11(IL).EQ.IM(I).AND.SSD11(IL).EQ.ID(I).AND.SSY11(IL)
         1.EQ.
         1IY(I))THEN
             ISS11=I        ENDIF           ENDDO
    C          DO LL=ISS1+1,ISS2
             GDD1(IL)= GDD1(IL)+TBASE(LL)
             CR1(IL)=CR1(IL)+CRWT(LL)           ENDDO             
             DO LL=ISS2+1,ISS3
             GDD2(IL)= GDD2(IL)+TBASE(LL)
             CR2(IL)=CR2(IL)+CRWT(LL)
             ENDDO             
             DO LL=ISS3+1,ISS4
             GDD3(IL)= GDD3(IL)+TBASE(LL)
              CR3(IL)=CR3(IL)+CRWT(LL)
             ENDDO
             DO LL=ISS4+1,ISS5
             GDD4(IL)= GDD4(IL)+TBASE(LL)
              CR4(IL)=CR4(IL)+CRWT(LL)          ENDDO
             DO LL=ISS5+1,ISS6
             GDD5(IL)= GDD5(IL)+TBASE(LL)
              CR5(IL)=CR5(IL)+CRWT(LL)          ENDDO
             DO LL=ISS6+1,ISS7
             GDD6(IL)= GDD6(IL)+TBASE(LL)
              CR6(IL)=CR6(IL)+CRWT(LL)
             ENDDO
             DO LL=ISS7+1,ISS8
             GDD7(IL)= GDD7(IL)+TBASE(LL)
              CR7(IL)=CR7(IL)+CRWT(LL)            ENDDO
             DO LL=ISS8+1,ISS9
             GDD8(IL)= GDD8(IL)+TBASE(LL)
              CR8(IL)=CR8(IL)+CRWT(LL)          ENDDO
             DO LL=ISS9+1,ISS10
             GDD9(IL)= GDD9(IL)+TBASE(LL)
              CR9(IL)=CR9(IL)+CRWT(LL)          ENDDO
             DO LL=ISS10+1,ISS11
             GDD10(IL)= GDD10(IL)+TBASE(LL)
              CR10(IL)=CR10(IL)+CRWT(LL)         ENDDO
    C         WRITE(32,*)GDD1(IL),',',GDD2(IL),',',GDD3(IL),',',GDD4(IL),',',
    C     1GDD5(IL)
    C     1,',',SSM1(IL),',',
    C     1SSD1(IL),',',SSY1(IL),',',SSM2(IL),',',
    C     1SSD2(IL),',',SSY2(IL),',',SSM3(IL),',',SSD3(IL),',',
    C     1SSY3(IL),',',SSM4(IL),',',
    C     1SSD4(IL),',',SSY4(IL),',',SSM5(IL),',',SSD5(IL),',',SSY5(IL),
    C     1',',SSM6(IL),',',
    C     1SSD6(IL),',',SSY6(IL)         ENDDO           
             DO IB=1,IN-1
             L1=0
             AVGDD1(IB)=0
             AVGDD2(IB)=0
             AVGDD3(IB)=0
             AVGDD4(IB)=0
             AVGDD5(IB)=0
             AVGDD6(IB)=0
             AVGDD7(IB)=0
             AVGDD8(IB)=0
             AVGDD9(IB)=0
             AVGDD10(IB)=0
             AVCR1(IB)=0
             AVCR2(IB)=0
             AVCR3(IB)=0
             AVCR4(IB)=0
             AVCR5(IB)=0
             AVCR6(IB)=0
             AVCR7(IB)=0
             AVCR8(IB)=0
             AVCR9(IB)=0
             AVCR10(IB)=0
             DO IA=1,IN-1
             IF(DS(IB).EQ.DS(IA).AND.SSD(IB).EQ.SSD(IA))THEN
             AVCR1(IB)=AVCR1(IB)+CR1(IA)
             AVCR2(IB)=AVCR2(IB)+CR2(IA)
             AVCR3(IB)=AVCR3(IB)+CR3(IA)
             AVCR4(IB)=AVCR4(IB)+CR4(IA)
             AVCR5(IB)=AVCR5(IB)+CR5(IA)
             AVCR6(IB)=AVCR6(IB)+CR6(IA)
             AVCR7(IB)=AVCR7(IB)+CR7(IA)
             AVCR8(IB)=AVCR8(IB)+CR8(IA)
             AVCR9(IB)=AVCR9(IB)+CR9(IA)
             AVCR10(IB)=AVCR10(IB)+CR10(IA)
             AVGDD1(IB)=AVGDD1(IB)+GDD1(IA)
             AVGDD2(IB)=AVGDD2(IB)+GDD2(IA)
             AVGDD3(IB)=AVGDD3(IB)+GDD3(IA)
             AVGDD4(IB)=AVGDD4(IB)+GDD4(IA)
             AVGDD5(IB)=AVGDD5(IB)+GDD5(IA)
             AVGDD6(IB)=AVGDD6(IB)+GDD6(IA)
             AVGDD7(IB)=AVGDD7(IB)+GDD7(IA)
             AVGDD8(IB)=AVGDD8(IB)+GDD8(IA)
             AVGDD9(IB)=AVGDD9(IB)+GDD9(IA)
             AVGDD10(IB)=AVGDD10(IB)+GDD10(IA)
             L1=L1+1          ENDIF            ENDDO
             AVGDD1(IB)=AVGDD1(IB)/L1
             AVGDD2(IB)=AVGDD2(IB)/L1
             AVGDD3(IB)=AVGDD3(IB)/L1
             AVGDD4(IB)=AVGDD4(IB)/L1
             AVGDD5(IB)=AVGDD5(IB)/L1
             AVGDD6(IB)=AVGDD6(IB)/L1
             AVGDD7(IB)=AVGDD7(IB)/L1
             AVGDD8(IB)=AVGDD8(IB)/L1
             AVGDD9(IB)=AVGDD9(IB)/L1
             AVGDD10(IB)=AVGDD10(IB)/L1
             AVCR1(IB)=AVCR1(IB)/L1
             AVCR2(IB)=AVCR2(IB)/L1
             AVCR3(IB)=AVCR3(IB)/L1
             AVCR4(IB)=AVCR4(IB)/L1
             AVCR5(IB)=AVCR5(IB)/L1
             AVCR6(IB)=AVCR6(IB)/L1
             AVCR7(IB)=AVCR7(IB)/L1
             AVCR8(IB)=AVCR8(IB)/L1
             AVCR9(IB)=AVCR9(IB)/L1
             AVCR10(IB)=AVCR10(IB)/L1
    C       WRITE(32,*)DS(IB),',',SSD(IB),',',AVGDD1(IB),',',AVGDD2(IB),
    C     1',',AVGDD3(IB),',',AVGDD4(IB),',',AVGDD5(IB)        ENDDO
             DO IC=1,IN-1
             DO IE=IC,IN-1
             IF(SSD(IC).GT.SSD(IE))THEN
             AAV=DS(IC)
             DS(IC)=DS(IE)
             DS(IE)=AAV
             AS=SSD(IC)
             SSD(IC)=SSD(IE)
             SSD(IE)=AS
             AT1=AVGDD1(IC)
             AVGDD1(IC)=AVGDD1(IE)
             AVGDD1(IE)=AT1
             ACW1=AVCR1(IC)
             AVCR1(IC)=AVCR1(IE)
             AVCR1(IE)=ACW1
             AT2=AVGDD2(IC)
             AVGDD2(IC)=AVGDD2(IE)
             AVGDD2(IE)=AT2
              ACW2=AVCR2(IC)
             AVCR2(IC)=AVCR2(IE)
             AVCR2(IE)=ACW2
             AT3=AVGDD3(IC)
             AVGDD3(IC)=AVGDD3(IE)
             AVGDD3(IE)=AT3
              ACW3=AVCR3(IC)
             AVCR3(IC)=AVCR3(IE)
             AVCR3(IE)=ACW3
             AT4=AVGDD4(IC)
             AVGDD4(IC)=AVGDD4(IE)
             AVGDD4(IE)=AT4
              ACW4=AVCR4(IC)
             AVCR4(IC)=AVCR4(IE)
             AVCR4(IE)=ACW4
             AT5=AVGDD5(IC)
             AVGDD5(IC)=AVGDD5(IE)
             AVGDD5(IE)=AT5
              ACW5=AVCR5(IC)
             AVCR5(IC)=AVCR5(IE)
             AVCR5(IE)=ACW5
             AT6=AVGDD6(IC)
             AVGDD6(IC)=AVGDD6(IE)
             AVGDD6(IE)=AT6
              ACW6=AVCR6(IC)
             AVCR6(IC)=AVCR6(IE)
             AVCR6(IE)=ACW6
             AT7=AVGDD7(IC)
             AVGDD7(IC)=AVGDD7(IE)
             AVGDD7(IE)=AT7
              ACW7=AVCR7(IC)
             AVCR7(IC)=AVCR7(IE)
             AVCR7(IE)=ACW7
             AT8=AVGDD8(IC)
             AVGDD8(IC)=AVGDD8(IE)
             AVGDD8(IE)=AT8
              ACW8=AVCR8(IC)
             AVCR8(IC)=AVCR8(IE)
             AVCR8(IE)=ACW8
             AT9=AVGDD9(IC)
             AVGDD9(IC)=AVGDD9(IE)
             AVGDD9(IE)=AT9
              ACW9=AVCR9(IC)
             AVCR9(IC)=AVCR9(IE)
             AVCR9(IE)=ACW9
             AT10=AVGDD10(IC)
             AVGDD10(IC)=AVGDD10(IE)
             AVGDD10(IE)=AT10
              ACW10=AVCR10(IC)
             AVCR10(IC)=AVCR10(IE)
             AVCR10(IE)=ACW10
             ENDIF
             ENDDO
             ENDDO
             IG=1
             ALF(0)=0
             DO IC=1,IN-1
             IF(DS(IC).EQ.DS(IC+1).AND.SSD(IC).NE.SSD(IC-1))THEN
             DSS(IG)=DS(I)
             SSDS(IG)=SSD(IC)
             AVGDD1S(IG)=AVGDD1(IC)
             AVGDD2S(IG)=AVGDD2(IC)
             AVGDD3S(IG)=AVGDD3(IC)
             AVGDD4S(IG)=AVGDD4(IC)
             AVGDD5S(IG)=AVGDD5(IC)
             AVGDD6S(IG)=AVGDD6(IC)
             AVGDD7S(IG)=AVGDD7(IC)
             AVGDD8S(IG)=AVGDD8(IC)
             AVGDD9S(IG)=AVGDD9(IC)
             AVGDD10S(IG)=AVGDD10(IC)
             AVCR1S(IG)=AVCR1(IC)
             AVCR2S(IG)=AVCR2(IC)
             AVCR3S(IG)=AVCR3(IC)
             AVCR4S(IG)=AVCR4(IC)
             AVCR5S(IG)=AVCR5(IC)
             AVCR6S(IG)=AVCR6(IC)
             AVCR7S(IG)=AVCR7(IC)
             AVCR8S(IG)=AVCR8(IC)
             AVCR9S(IG)=AVCR9(IC)
             AVCR10S(IG)=AVCR10(IC)
             WRITE(32,57)DS(IC),SSD(IC),AVGDD1(IC),AVGDD2(IC),
         1AVGDD3(IC),AVGDD4(IC),AVGDD5(IC),AVGDD6(IC),AVGDD7(IC),AVGDD8(IC),
         1AVGDD9(IC),AVGDD10(IC)
              WRITE(33,57)DS(IC),SSD(IC),AVCR1(IC),AVCR2(IC),
         1AVCR3(IC),AVCR4(IC),AVCR5(IC),AVCR6(IC),AVCR7(IC),AVCR8(IC),
         1AVCR9(IC),AVCR10(IC)
     57     FORMAT(A2,',',F4.1,',',F7.2,',',F7.2,',',F7.2,',',F7.2,
         1',',F7.2,',',F7.2,',',F7.2,',',F7.2,',',F7.2,',',F7.2)
             IG=IG+1             ENDIF             ENDDO  
    C         DO IG=1,IN-1
    C         ENDDO
             DO I=1,N-1
             IF(AKC(I).GT.0)THEN
             AKC(I)=AKC(I)             ELSE
             AKC(I)=0             ENDIF
    C         WRITE(81,*)AKC(I),ID(I),IM(I),IY(I)
             IF(RF(I).GT.0)THEN
             CF(I)=0
             ELSE
             CF(I)=1             ENDIF
             IF(CF(I).EQ.1)THEN
             FF(I)=FF(I-1)+CF(I)             ELSE
             FF(I)=0             ENDIF
             IF(CF(I).EQ.0)THEN
             GF(I)=PET(I)             ELSE
             GF(I)=PET(I)*SQRT(1/FF(I))        IF                       IF(RF(I).GE.RTR)THEN
             AMF(I)=RF(I)-RTR   ELSE
             AMF(I)=0             ENDIF
            IF(ALF(I-1).GE.AWHC)THEN
             ANF(I)=ALF(I-1)-AWHC             ELSE
             ANF(I)=0             ENDIF
            IF(JDAY(I).LE.JSTART)THEN
             ALF(I)=0
             ELSEIF((ALF(I-1)+RF(I)+AR(I)-AET(I)-AMF(I)-ANF(I)).LT.PWP)THEN
             ALF(I)=PWP             ELSE
             ALF(I)=ALF(I-1)+RF(I)+AR(I)-AET(I)-AMF(I)-ANF(I)          ENDIF
             IF(ALF(I).GT.FCAP)THEN
             ALF(I)=140             ELSE
             ALF(I)=ALF(I)             ENDIF
             IF((ALF(I-1)/AWHC).GE.FRAC)THEN
             AHF(I)=1             ELSE
             AHF(I)=ALF(I-1)/(AWHC*FRAC)             ENDIF
             AJF(I)=AHF(I)*AKC(I)*(PET(I)-GF(I))
             AET(I)=GF(I)+AJF(I)
    C        WRITE(91,49)IM(I),ID(I),IY(I),JDAY(I),RF(I),PET(I),CF(I),FF(I),
    C     1AKC(I),AET(I),ALF(I),AMF(I),ANF(I),AR(I)
    C 49    FORMAT (I2,'/',I2,'/',I4,',',I3,',',F6.2,',',F6.2,',',
    C     1F6.2,',',F6.2,',',F6.2,',',F6.2,',',F6.2,',',F6.2,',',F6.2,',',
    C     1F6.2)             ENDDO
             DO IO=1,MI-1
             IF(IDT(IO).EQ.IIDW.AND.IMT(IO).EQ.IIMW.AND.IYT(IO).EQ.IIYW)THEN
             IDSM=IO
             JDY=JDAYO(IO)             ENDIF             ENDDO
             DO IK=1,IG-1
             IF(DS(IK).EQ.'S'.AND.JDY.GE.ESO1.AND.JDY.LE.ESO2)THEN
             IH=1
             ELSEIF(DS(IK).EQ.'S'.AND.JDY.GE.MSO1.AND.JDY.LE.MSO2)THEN
             IH=2
             ELSEIF(DS(IK).EQ.'S'.AND.JDY.GE.LSO1.AND.JDY.LE.LSO2)THEN
             IH=3
             ELSEIF(DS(IK).EQ.'M'.AND.JDY.GE.ESO1.AND.JDY.LE.ESO2)THEN
             IH=4
             ELSEIF(DS(IK).EQ.'M'.AND.JDY.GE.MSO1.AND.JDY.LE.MSO2)THEN
             IH=5
             ELSEIF(DS(IK).EQ.'M'.AND.JDY.GE.LSO1.AND.JDY.LE.LSO2)THEN
             IH=6
             ELSEIF(DS(IK).EQ.'L'.AND.JDY.GE.ESO1.AND.JDY.LE.ESO2)THEN
             IH=7
             ELSEIF(DS(IK).EQ.'L'.AND.JDY.GE.MSO1.AND.JDY.LE.MSO2)THEN
             IH=8
             ELSEIF(DS(IK).EQ.'L'.AND.JDY.GE.LSO1.AND.JDY.LE.LSO2)THEN
             IH=9             ENDIF             ENDDO
             STGB=0
             DO IP=IDSM,MI-1
             STGB=STGB+TFBS(IP)
             IF(STGB.GE.AVGDD1S(IH).AND.(STGB-TFBS(IP)).LE.AVGDD1S(IH))THEN
             WRITE(92,94)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     94      FORMAT("STAGE-1,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)).AND.(STGB-TFBS(IP)).
         1LE.(AVGDD1S(IH)+AVGDD2S(IH)))THEN
             WRITE(92,95)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     95      FORMAT("STAGE-2,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)).AND.
         1(STGB-TFBS(IP)).LE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)))THEN
             WRITE(92,96)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     96      FORMAT("STAGE-3,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1).AND.(STGB-TFBS(IP)).LE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+
         1AVGDD4S(IH)))THEN
             WRITE(92,97)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     97      FORMAT("STAGE-4,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1+AVGDD5S(IH)).AND.(STGB-TFBS(IP)).LE.(AVGDD1S(IH)+AVGDD2S(IH)+
         1AVGDD3S(IH)+AVGDD4S(IH)+AVGDD5S(IH)))THEN
             WRITE(92,98)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     98      FORMAT("STAGE-5,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1+AVGDD5S(IH)+AVGDD6S(IH)).AND.(STGB-TFBS(IP)).LE.(AVGDD1S(IH)+AVGD
         1D2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)+AVGDD5S(IH)+AVGDD6S(IH)))THEN
             WRITE(92,84)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     84      FORMAT("STAGE-6,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1+AVGDD5S(IH)+AVGDD6S(IH)+AVGDD7S(IH)).AND.(STGB-TFBS(IP)).LE.(AVGD
         1D1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)+AVGDD5S(IH)+AVGDD6S
         1(IH)+AVGDD7S(IH)))THEN
             WRITE(92,85)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     85      FORMAT("STAGE-7,",I2,'/',I2,'/',I4)
            ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1+AVGDD5S(IH)+AVGDD6S(IH)+AVGDD7S(IH)+AVGDD8S(IH)).AND.(STGB-TFBS
         1(IP)).LE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)+AVGDD5S
         1(IH)+AVGDD6S(IH)+AVGDD7S(IH)+AVGDD8S(IH)))THEN
             WRITE(92,86)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     86      FORMAT("STAGE-8,",I2,'/',I2,'/',I4)
            ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1+AVGDD5S(IH)+AVGDD6S(IH)+AVGDD7S(IH)+AVGDD8S(IH)+AVGDD9S(IH)).AND.
         1(STGB-TFBS(IP)).LE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S
         1(IH)+AVGDD5S(IH)+AVGDD6S(IH)+AVGDD7S(IH)+AVGDD8S(IH)+AVGDD9S(IH)))
         1THEN
             WRITE(92,87)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     87      FORMAT("STAGE-9,",I2,'/',I2,'/',I4)
             ELSEIF(STGB.GE.(AVGDD1S(IH)+AVGDD2S(IH)+AVGDD3S(IH)+AVGDD4S(IH)
         1+AVGDD5S(IH)+AVGDD6S(IH)+AVGDD7S(IH)+AVGDD8S(IH)+AVGDD9S(IH)+
         1AVGDD10S(IH)).AND.(STGB-TFBS(IP)).LE.(AVGDD1S(IH)+AVGDD2S(IH)+
         1AVGDD3S(IH)+AVGDD4S(IH)+AVGDD5S(IH)+AVGDD6S(IH)+AVGDD7S(IH)+
         1AVGDD8S(IH)+AVGDD9S(IH)+AVGDD10S(IH)))THEN
             WRITE(92,88)IMT(IP-1),IDT(IP-1),IYT(IP-1)
     88      FORMAT("STAGE-10,",I2,'/',I2,'/',I4)    ENDIF      ENDDO
    C          WRITE(91,*)    C          WRITE(91,*)   C  WRITE(91,71)CROPWAT
    C 71        FORMAT('CROP WATER REQUIREMENT:,',F9.2)  PAUSE  STOP   END

0 个答案:

没有答案