Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F88407132
bondConnectCheck.f90
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Oct 18, 15:50
Size
7 KB
Mime Type
text/x-c
Expires
Sun, Oct 20, 15:50 (2 d)
Engine
blob
Format
Raw Data
Handle
21722337
Attached To
rLAMMPS lammps
bondConnectCheck.f90
View Options
!# DEC.9, 2010
!# HLL
!# NCSU
!#
!# This is a program to read the output from 'fix reax/bond', TPRD, Lammps
!# The output is saved into file "bonds.reax", where each image is divided
!# into three parts:
!#
!# (1) Head, 7 Lines;
!# (2) Body, No._of_atom Lines;
!# (3) Tail, 1 Line
!#
!# The total number of images is related with the output frequence and number of iterations.
!# In this case, it is "number of iteration+1".
!#
!# Each line in Body part is made up of the following parameters:
!# id, type, nb, id_1, id_2, ... id_nb, mol, bo_1, bo_2, ... bo_nb, abo, nlp, q
!# abo = atomic bond order
!# nlp = number of lone pairs
!# q = atomic charge
!#
!# PLEASE DOUBLE CHECK YOUR OWN LAMMPS INPUT SCRIPT & OUTPUT AND MAKE CORRESPONDING CHSNGES
program
main
implicit none
integer
I
,
J
,
K
,
L
integer
image
,
natom
integer
headline
,
tailline
integer
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
double precision
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
open
(
unit
=
10
,
file
=
'bonds.reax'
)
open
(
unit
=
20
,
file
=
'N129.txt'
,
status
=
'unknown'
)
open
(
unit
=
21
,
file
=
'N133.txt'
,
status
=
'unknown'
)
open
(
unit
=
22
,
file
=
'N137.txt'
,
status
=
'unknown'
)
open
(
unit
=
23
,
file
=
'N141.txt'
,
status
=
'unknown'
)
open
(
unit
=
24
,
file
=
'N145.txt'
,
status
=
'unknown'
)
open
(
unit
=
25
,
file
=
'N149.txt'
,
status
=
'unknown'
)
open
(
unit
=
26
,
file
=
'N153.txt'
,
status
=
'unknown'
)
open
(
unit
=
27
,
file
=
'N157.txt'
,
status
=
'unknown'
)
open
(
unit
=
30
,
file
=
'reactionRecord.txt'
,
status
=
'unknown'
)
!# Make changes accordingly.
image
=
1
headline
=
7
tailline
=
1
natom
=
384
do
I
=
1
,
image
+
1
! Skip the head part
do
J
=
1
,
headline
read
(
10
,
*
)
end do
! Each image has 'natom' lines
do
K
=
1
,
natom
! read in the first three number each line to determine:
! (1) what type of atom it is, atype
! the correspondence in Lammps: 1-C, 2-H, 3-O, 4-N, 5-S
! (2) how many bonds it has, nb
! this 'nb' determines the following bond_link information & bond_order paramaters of the same line
read
(
10
,
*
)
id
,
atype
,
nb
! TEST
! write(*,*) id, atype, nb
if
(
atype
.eq.
4
)
then
backspace
10
! Should have some easier way to replace this "IF", I am just toooo lazy.
! Thanks to the fact that the maximum number of bonds is 4. ^-^
!??? is it possible that nb = 0 ??? KEEP THAT IN MIND.
if
(
nb
.eq.
0
)
then
read
(
10
,
*
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
if
(
id
.eq.
129
)
then
write
(
20
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
133
)
then
write
(
21
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
137
)
then
write
(
22
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
141
)
then
write
(
23
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
145
)
then
write
(
24
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
149
)
then
write
(
25
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
153
)
then
write
(
26
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
elseif
(
id
.eq.
157
)
then
write
(
27
,
200
)
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
200
format
(
4
I4
,
3
f14
.3
)
endif
! If bd .ne. 3, it measn reaction is happening to Nitrogen atom.
write
(
30
,
300
)
I
,
id
,
atype
,
nb
,
mol
,
abo
,
nlp
,
q
300
format
(
5
I4
,
3
f14
.3
)
elseif
(
nb
.eq.
1
)
then
read
(
10
,
*
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
if
(
id
.eq.
129
)
then
write
(
20
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
133
)
then
write
(
21
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
137
)
then
write
(
22
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
141
)
then
write
(
23
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
145
)
then
write
(
24
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
149
)
then
write
(
25
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
153
)
then
write
(
26
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
elseif
(
id
.eq.
157
)
then
write
(
27
,
201
)
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
201
format
(
5
I4
,
4
f14
.3
)
endif
! If bd .ne. 3, it measn reaction is happening to Nitrogen atom.
write
(
30
,
301
)
I
,
id
,
atype
,
nb
,
bd1
,
mol
,
bo1
,
abo
,
nlp
,
q
301
format
(
6
I4
,
4
f14
.3
)
elseif
(
nb
.eq.
2
)
then
read
(
10
,
*
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
if
(
id
.eq.
129
)
then
write
(
20
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
133
)
then
write
(
21
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
137
)
then
write
(
22
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
141
)
then
write
(
23
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
145
)
then
write
(
24
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
149
)
then
write
(
25
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
153
)
then
write
(
26
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
elseif
(
id
.eq.
157
)
then
write
(
27
,
202
)
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
202
format
(
6
I4
,
5
f14
.3
)
endif
! If bd .ne. 3, it measn reaction is happening to Nitrogen atom.
write
(
30
,
302
)
I
,
id
,
atype
,
nb
,
bd1
,
bd2
,
mol
,
bo1
,
bo2
,
abo
,
nlp
,
q
302
format
(
7
I4
,
5
f14
.3
)
elseif
(
nb
.eq.
3
)
then
read
(
10
,
*
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
if
(
id
.eq.
129
)
then
write
(
20
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
133
)
then
write
(
21
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
137
)
then
write
(
22
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
141
)
then
write
(
23
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
145
)
then
write
(
24
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
149
)
then
write
(
25
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
153
)
then
write
(
26
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bd3
,
abo
,
nlp
,
q
elseif
(
id
.eq.
157
)
then
write
(
27
,
203
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
mol
,
bo1
,
bo2
,
bo3
,
abo
,
nlp
,
q
203
format
(
7
I4
,
6
f14
.3
)
endif
elseif
(
nb
.eq.
4
)
then
read
(
10
,
*
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
if
(
id
.eq.
129
)
then
write
(
20
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
133
)
then
write
(
21
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
137
)
then
write
(
22
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
141
)
then
write
(
23
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
145
)
then
write
(
24
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
149
)
then
write
(
25
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
153
)
then
write
(
26
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bd3
,
bo4
,
abo
,
nlp
,
q
elseif
(
id
.eq.
157
)
then
write
(
27
,
204
)
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
204
format
(
8
I4
,
7
f14
.3
)
endif
! If bd .ne. 3, it measn reaction is happening to Nitrogen atom.
write
(
30
,
304
)
I
,
id
,
atype
,
nb
,
bd1
,
bd2
,
bd3
,
bd4
,
mol
,
bo1
,
bo2
,
bo3
,
bo4
,
abo
,
nlp
,
q
304
format
(
9
I4
,
7
f14
.3
)
! Corresponding to "if (nb.eq.0) then "
endif
! Corresponding to "if (atype .eq. 4) then"
endif
enddo
do
L
=
1
,
tailline
read
(
10
,
*
)
enddo
enddo
end program
main
Event Timeline
Log In to Comment