40 lines
926 B
Fortran
40 lines
926 B
Fortran
SUBROUTINE DMDER
|
|
C ================
|
|
C
|
|
INCLUDE 'IMPLIC.FOR'
|
|
INCLUDE 'BASICS.FOR'
|
|
INCLUDE 'ATOMIC.FOR'
|
|
INCLUDE 'MODELQ.FOR'
|
|
COMMON/DEPTDR/DDM(MDEPTH),DDP(MDEPTH),DD0(MDEPTH),
|
|
* DDMIN(MDEPTH),DDPLU(MDEPTH),DDA(MDEPTH),
|
|
* DDC(MDEPTH),DDB(MDEPTH)
|
|
C
|
|
DO ID=2,ND-1
|
|
DDM(ID)=DM(ID)-DM(ID-1)
|
|
DDP(ID)=DM(ID+1)-DM(ID)
|
|
DD0(ID)=DM(ID+1)-DM(ID-1)
|
|
DDMIN(ID)=DDP(ID)/DD0(ID)
|
|
DDPLU(ID)=DDM(ID)/DD0(ID)
|
|
DDA(ID)=DDMIN(ID)/DDM(ID)
|
|
DDC(ID)=DDPLU(ID)/DDP(ID)
|
|
END DO
|
|
C
|
|
DDM(1)=0.
|
|
DDM(ND)=DM(ND)-DM(ND-1)
|
|
DDP(1)=DM(2)-DM(1)
|
|
DDP(ND)=0.
|
|
DDMIN(1)=0.
|
|
DDMIN(ND)=1.
|
|
DDPLU(1)=1.
|
|
DDPLU(ND)=0.
|
|
DDA(1)=0.
|
|
DDA(ND)=UN/DDM(ND)
|
|
DDC(1)=UN/DDP(1)
|
|
DDC(ND)=0.
|
|
DO ID=1,ND
|
|
DDB(ID)=DDA(ID)-DDC(ID)
|
|
END DO
|
|
C
|
|
RETURN
|
|
END
|