📄 alloc3.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 + -