Repository navigation
Expand file tree
/
Copy pathsnapper.pl
More file actions
executable file
·65 lines (59 loc) · 1.5 KB
/
Copy pathsnapper.pl
File metadata and controls
executable file
·65 lines (59 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/perl
open inp, "<$ARGV[0]";
$NSNAPS= "$ARGV[1]";
$NLINES= "$ARGV[2]";
$DIRTPL= "$ARGV[3]";
@ATOMICNUM= (38, 22, 8);
$TYPNUM= @ATOMICNUM;
for($i=0;$i<=$NSNAPS;$i++) {
@lbound = ();
@ubound = ();
@box = ();
for($j=1;$j<=$NLINES;$j++) {
$l = <inp>;
@tar = split /\s+/, $l;
if( $j == 1 || $j == 3 || $j == 5) {
next;
}
if( $j == 2 ) {
$tar[0] /= 1000;
$tmp = $DIRTPL . '_' . $tar[0] . '/' . 'fort.20';
print "$tmp \n";
open out, ">$tmp";
next;
}
if( $j == 4 ) {
$NATOMS = $tar[0];
next;
}
if( $j == 6 || $j == 7 || $j == 8) {
$now = $j - 5;
$lbound[$now] = $tar[0];
$ubound[$now] = $tar[1];
$box[$now] = $ubound[$now] - $lbound[$now];
printf out "%3.10f ", $box[$now];
if($j==8) {printf out "\n";}
}
if( $j == 9 ) {
printf out "%i F\n",$NATOMS;
}
if( $j >= 10 ) {
$tar[3] -= $lbound[1];
$tar[4] -= $lbound[2];
$tar[5] -= $lbound[3];
if($tar[3] < 0) {$tar[3] += $box[1];}
if($tar[4] < 0) {$tar[4] += $box[2];}
if($tar[5] < 0) {$tar[5] += $box[3];}
if($tar[3] > $box[1]) {$tar[3] -= $box[1];}
if($tar[4] > $box[2]) {$tar[4] -= $box[2];}
if($tar[5] > $box[3]) {$tar[5] -= $box[3];}
$tar[3] /= $box[1];
$tar[4] /= $box[2];
$tar[5] /= $box[3];
for( $k=0; $k<$TYPNUM; $k++ ) {
if($tar[2] == ($k + 1)) {printf out "%2i %2.10f %2.10f %3.10f\n", $ATOMICNUM[$k], $tar[3], $tar[4], $tar[5];}
}
}
}
close out
}