4 REAL, SAVE :: A_S
,B_S
,C_S
! -> Superlattice constants
5 REAL, DIMENSION(3), SAVE :: A1_S
,A2_S
,A3_S
! -> Superlattice vectors
6 INTEGER, SAVE :: NMin_X
,NMax_X
,NMin_Y
,NMax_Y
,NMin_Z
,NMax_Z
7 REAL, SAVE :: X_Min
,X_Max
,Y_Min
,Y_Max
,Z_Min
,Z_Max
8 REAL, SAVE :: X_Inc
,Y_Inc
,Z_Inc
9 INTEGER, SAVE :: XDim
,YDim
,ZDim
10 INTEGER, SAVE :: KCOOR
12 !!! Material Parameters
13 REAL, SAVE :: XLAMB
,XMU
,C13
,C33
,C11
,EPSC
,EPSA
14 !!! Calculation Constants
15 REAL, SAVE :: ETA1
,ETA2
,ETA_DIF
,CN02_1
,CN02_2
,CN42_1
,CN42_2
,&
16 CN31_1
,CN31_2
,CN1_2G
,BISUM
,BIZZ
,BIAUX
18 !!! Normalized Dot Parameters
19 REAL, SAVE :: RC
,ZC
,D
,RD
,HD
23 SUBROUTINE READ_INPUT()
26 Use Auxiliar_Procedures
, ONLY
: AISO
, MTYPE
30 INTEGER :: NDots_X
,NDots_Y
,NDots_Z
33 REAL,DIMENSION(3) :: V_AUX
37 !!!!! read data from data file !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
43 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
45 READ (*,*) DWL
! Wetting layer thickness (A)
46 READ (*,*) ISHAPE
! Shape of the dot
47 READ (*,*) HQD
! Height of the quantum dot (A)
48 READ (*,*) Rqd_Base
! Base Radius (A)
49 READ (*,*) Rqd_Top
! Top Radius (A)
50 !!! Superlattice Begins !!!!
52 READ (*,*) A_S
,B_S
,C_S
53 READ (*,*) A1_S(1),A1_S(2),A1_S(3)
54 READ (*,*) A2_S(1),A2_S(2),A2_S(3)
55 READ (*,*) A3_S(1),A3_S(2),A3_S(3)
56 READ (*,*) NDots_X
,NDots_Y
,NDots_Z
61 IF(MOD(NDots_X
,2).EQ
.0) THEN
63 WRITE(6,'(A,1X,I3)')"Warning: NDots_X Even -> NDots_X=",NDots_X
65 IF(MOD(NDots_Y
,2).EQ
.0) THEN
67 WRITE(6,'(A,1X,I3)')"Warning: NDots_Y Even -> NDots_Y=",NDots_Y
69 IF(MOD(NDots_Z
,2).EQ
.0) THEN
71 WRITE(6,'(A,1X,I3)')"Warning: NDots_Z Even -> NDots_Z=",NDots_Z
76 NMin_X
=-(NDots_X
-1)/2; NMax_X
=-NMin_X
81 NMin_Y
=-(NDots_Y
-1)/2; NMax_Y
=-NMin_Y
86 NMin_Z
=-(NDots_Z
-1)/2; NMax_Z
=-NMin_Z
91 READ (*,*) X_Min
,X_Max
92 READ (*,*) Y_Min
,Y_Max
93 READ (*,*) Z_Min
,Z_Max
94 READ (*,*) XDim
,YDim
,ZDim
96 IF(G_Method
.EQ
.1) THEN
113 D_Z
=Z_Max
-(Hqd
+DWL
)/2.E0
122 X_Inc
=(X_Max
-X_Min
)/REAL(XDim
-1)
127 Y_Inc
=(Y_Max
-Y_Min
)/REAL(YDim
-1)
132 Z_Inc
=(Z_Max
-Z_Min
)/REAL(ZDim
-1)
135 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
138 READ (*,*) C11
,C13
,C33
! Elastic modulus
139 READ (*,*) XLAMB
,XMU
! Lame constants
140 READ (*,*) EPSA
! Misfit strain: EPS0
141 READ (*,*) EPSC
! Misfit strain: EPSC
142 READ (*,*) MTYPE
! MTYPE: 1-> ZBI, 2-> WZI, 3-> WZA
148 READ (*,*) KCOOR
! KCOOR=0 Cartesian Coordinates
149 ! KCOOR=1 Cylindrical Coordinates
150 IF(KCOOR
.EQ
.1.AND
.YDIM
.GT
.1) THEN
151 WRITE(6,*)"ERROR: Selected coordinates are cylindrical and YDIM.GT.1"
152 WRITE(6,*)" Exiting Program"
156 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
161 END SUBROUTINE READ_INPUT
163 SUBROUTINE CONSTANTS( )
167 REAL :: ALPHA
,BETA
,GAMA
168 REAL :: R
,S
,A1
,A2
,B1
,B2
169 REAL :: CN1_1
,CN1_2
,CN3_1
,CN3_2
,CN4_1
,CN4_2
172 !!!! Remember: XLAMB=C12, XMU=C44 !!!!!
175 BISUM
= 2.*EPSA
! Biaxial strain components
176 BIZZ
= -2.*EPSA
*XLAMB
/(XLAMB
+2.*XMU
)
179 R
=(C11
+XLAMB
+C13
)*EPSA
+C13
*(EPSC
-EPSA
)
180 S
=(C33
+C13
-XLAMB
-C11
)*EPSA
+(C33
-C13
)*(EPSC
-EPSA
)
186 A1
=R
*(C33
-XMU
-C13
)-S
*(C13
+XMU
)
189 B1
=S
*(C13
+2.E0
*XMU
)-R
*(C33
-C13
-2.E0
*XMU
)
190 B2
=S
*C11
-R
*(C13
+2.E0
*XMU
-C11
)
192 BETA
=( C13
*(C13
+2.E0
*XMU
)-C11
*C33
)/(-XMU
*C33
)
196 CN3_1
=A1
+B1
; CN3_2
=A2
+B2
197 CN4_1
=A1
+B1
/2.E0
; CN4_2
=A2
+B2
/2.E0
199 ETA_AUX
=SQRT(BETA
**2 - 4.E0
*GAMA
)
200 ETA1
=(-BETA
+ETA_AUX
)/2.E0
201 ETA2
=(-BETA
-ETA_AUX
)/2.E0
202 IF(ETA1
.GT
.0.E0
.OR
.ETA2
.GT
.0.E0
) THEN
203 WRITE(6,*)"ERROR: ETA1 AND ETA2 ARE GREATHER THAN ZERO"
211 CN02_1
=(CN1_2
/ETA2
-CN1_1
)
212 CN02_2
=(CN1_2
/ETA1
-CN1_1
)
214 CN31_1
=(CN4_1
*SQRT(ETA2
)-CN4_2
/SQRT(ETA2
))
215 CN31_2
=(CN4_1
*SQRT(ETA1
)-CN4_2
/SQRT(ETA1
))
217 CN42_1
=(CN3_1
*ETA2
-CN3_2
)
218 CN42_2
=(CN3_1
*ETA1
-CN3_2
)
224 END SUBROUTINE CONSTANTS
227 END MODULE INPUT_DATA