⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alloc3.f

📁 油田化学驱模拟的经典 fortran源代码
💻 F
字号:
       SUBROUTINE ALLOC_GEO
C
       USE MODULE1
       IMPLICIT NONE
C
       INTEGER   :: NFSB,NEQ,NBLW1,ID
       NEQ=NELET+4*NEX+NSLD+NACAT
       NFSB=NFLD+NSORB+NACAT
       NBLW1=NX*NY*NZ+NWELL_TEMP
C
       ALLOCATE(REDUC(NEX+1,NSORB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(ELEMNT(NELET+1,4),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(FLDSPS(NFLD,4),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(SLDSPS(NSLD+1,4),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(SORBSP(NSORB+1,4),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(ACATSP(NACAT+1,4),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(H(NEQ+1,NFSB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(GGG(NEQ+1,NSLD+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(FFF(NEQ+1,NSORB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(PP(NEQ+1,NACAT+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(NKEX(NEX+1),NSORBX(NEX+1),CHARGE(NFLD)
     *   ,CHACAT(NACAT+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(AR(NELET+1,NFLD),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(BR(NELET+1,NSLD+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(DR(NELET+1,NSORB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(ER(NELET+1,NACAT+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(BBIN(NFSB+1,NIND+1),BB(NFSB+1,NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(EXSLD(NSLD+1,NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(SCHARG(NEX+1,NSORB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(EXCAI(NEX+1),EXCA(NEX+1),EQK(NFLD),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(EXEX(NEX+1,NSORB+1,NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(EXACAT(NACAT+1,NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(EXK(NEX+1,NSORB+1),EXKL(NEX+1,NSORB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(SPK(NSLD+1),SPKL(NSLD+1),ACATK(NACAT+1),CI(NACAT+1)
     *   ,STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CAQI(NELET+1),NSLDAB(NSLD+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CSLDI(NSLD+1),CSORBI(NSORB+1)
     *   ,CELAQI(NELET+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CSLDT(NBLW1,NSLD+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CSORBT(NBLW1,NSORB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CAQSP(NBLW1,NFLD),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CACAT(NBLW1,NACAT+1),CACATT(NBLW1,NACAT+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(TTT(NIND+1),TOT(NEQ+1),CIND(NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CFLD(NFLD),CSLD(NSLD+1),CSORB(NSORB+1)
     *  ,CAACAT(NACAT+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(CVAR(NFSB+1),CLOG(NIND+1),FUNC(NIND+1)
     *	   ,CELFLT(NELET+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(AA(NIND+1,NFSB+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(DERIV(NIND+1,NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(INCMEL(NELET+1),ELCRG(NELET+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
       ALLOCATE(BBTEM(NFSB+1,NIND+1),STAT=ID)
       IF(ID/= 0) STOP " *****NOT ENOUGH MEMORY**** "
C
       REDUC(1:NEX+1,1:NSORB+1)=0.0

       ELEMNT(1:NELET+1,4)=0.0

       FLDSPS(1:NFLD,4)=0.0

       SLDSPS(1:NSLD+1,4)=0.0

       SORBSP(1:NSORB+1,4)=0.0

       ACATSP(1:NACAT+1,4)=0.0

       H(1:NEQ+1,1:NFSB+1)=0.0

       GGG(1:NEQ+1,1:NSLD+1)=0.0

       FFF(1:NEQ+1,1:NSORB+1)=0.0

       PP(1:NEQ+1,1:NACAT+1)=0.0

       NKEX(1:NEX+1)=0;NSORBX(1:NEX+1)=0;CHARGE(1:NFLD)=0.0
     *   ;CHACAT(1:NACAT+1)=0.0

       AR(1:NELET+1,1:NFLD)=0.0

       BR(1:NELET+1,1:NSLD+1)=0.0

       DR(1:NELET+1,1:NSORB+1)=0.0

       ER(1:NELET+1,1:NACAT+1)=0.0

       BBIN(1:NFSB+1,1:NIND+1)=0.0;BB(1:NFSB+1,1:NIND+1)=0.0

       EXSLD(1:NSLD+1,1:NIND+1)=0.0

       SCHARG(1:NEX+1,1:NSORB+1)=0.0

       EXCAI(1:NEX+1)=0.0;EXCA(1:NEX+1)=0.0;EQK(1:NFLD)=0.0

       EXEX(1:NEX+1,1:NSORB+1,1:NIND+1)=0.0

       EXACAT(1:NACAT+1,1:NIND+1)=0.0

       EXK(1:NEX+1,1:NSORB+1)=0.0;EXKL(1:NEX+1,1:NSORB+1)=0.0

       SPK(1:NSLD+1)=0.0;SPKL(1:NSLD+1)=0.0

       ACATK(1:NACAT+1)=0.0;CI(1:NACAT+1)=0.0

       CAQI(1:NELET+1)=0.0;NSLDAB(1:NSLD+1)=0

       CSLDI(1:NSLD+1)=0.0;CSORBI(1:NSORB+1)=0.0;CELAQI(1:NELET+1)=0.0

       CSLDT(1:NBLW1,1:NSLD+1)=0.0

       CSORBT(1:NBLW1,1:NSORB+1)=0.0

       CAQSP(1:NBLW1,1:NFLD)=0.0

       CACAT(1:NBLW1,1:NACAT+1)=0.0;CACATT(1:NBLW1,1:NACAT+1)=0.0

       TTT(1:NIND+1)=0.0;TOT(1:NEQ+1)=0.0;CIND(1:NIND+1)=0.0

       CFLD(1:NFLD)=0.0;CSLD(1:NSLD+1)=0.0;CSORB(1:NSORB+1)=0.0
     *  ;CAACAT(1:NACAT+1)=0.0

       CVAR(1:NFSB+1)=0.0;CLOG(1:NIND+1)=0.0

       FUNC(1:NIND+1)=0.0;CELFLT(1:NELET+1)=0.0

       AA(1:NIND+1,1:NFSB+1)=0.0

       DERIV(1:NIND+1,1:NIND+1)=0.0

       INCMEL(1:NELET+1)=0;ELCRG(1:NELET+1)=0.0

       BBTEM(1:NFSB+1,1:NIND+1)=0.0

       RETURN
       END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -