summaryrefslogtreecommitdiff
blob: 7d7c159e7daaee8b62191b96b301878b6dcf64c9 (plain)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
diff --git a/src/machine_.h b/src/machine_.h
index 804bc6d..6ed52a6 100644
--- a/src/machine_.h
+++ b/src/machine_.h
@@ -127,8 +127,12 @@
 # define CALL_LIKE_VMS  1
 
 // MVS stands for Microsoft Visual Studio
-#elif defined(_MVS) 
+#elif defined(_MSC_VER)
+# if (_MSC_VER) >= 800
+# define CALL_LIKE_MVS  2
+# else
 # define CALL_LIKE_MVS  1
+# endif
 
 #elif defined(F2C) || defined(G77)
 # define CALL_LIKE_SUN  8
@@ -400,11 +404,41 @@ typedef  double     apireal;    // FORTRAN  real*8
 
 #elif defined(CALL_LIKE_MVS)
 
+# if ( CALL_LIKE_MVS == 2 )
+
   typedef pstr fpstr;
 
 # define FTN_STR(s)  s
 # define FTN_LEN(s)  s##_len
 
+# define char_struct(s)           \
+    pstr  s;                      \
+    int   s##_len;
+# define fill_char_struct(s,str)  \
+    s  = str;                     \
+    s##_len = strlen(str);
+
+# ifdef __cplusplus
+#   define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
+    extern "C" void NAME p_sun
+# else
+#   define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
+    void NAME p_sun
+# endif
+
+# define FORTRAN_EXTERN(NAME,name,p_sun,p_stardent,p_mvs) \
+    extern "C" void NAME p_sun
+
+# define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
+    NAME p_sun
+
+# else 
+
+  typedef pstr fpstr;
+
+# define FTN_STR(s)  s
+# define FTN_LEN(s)  s##_len
+
 # define char_struct(s)  \
     pstr  s;             \
     int   s##_len;
@@ -425,7 +459,7 @@ typedef  double     apireal;    // FORTRAN  real*8
 
 # define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
     NAME p_mvs
-
+# endif
 #else
 
 # error  Unknown machine!!!
diff --git a/src/mmdb_atom.h b/src/mmdb_atom.h
index 61bafaa..c860e30 100644
--- a/src/mmdb_atom.h
+++ b/src/mmdb_atom.h
@@ -312,7 +312,7 @@ class CAtom : public CUDData  {
 
     realtype GetDist2 ( PCAtom a );
     realtype GetDist2 ( PCAtom a, mat44 & tm );  // tm applies to A
-    realtype GetDist2 ( PCAtom a, mat33 & r, vect3 & t );// tm applies to A
+    realtype GetDist2 ( PCAtom a, mat33 & r, vect3 & t );  // tm applies to A
     realtype GetDist2 ( realtype ax, realtype ay, realtype az );
 
     // GetCosine(a1,a2) calculates cosine of angle a1-this-a2,
diff --git a/src/mmdb_chain.cpp b/src/mmdb_chain.cpp
index 95023b7..fcf602f 100644
--- a/src/mmdb_chain.cpp
+++ b/src/mmdb_chain.cpp
@@ -679,7 +679,7 @@ int  i,k,sN;
     i  = 0;
     sN = 1;
     while (i<numRes)  {
-      PutInteger ( &(S[8]),sN,2 );
+      PutInteger ( &(S[7]),sN,3 );
       k = 19;
       while ((i<numRes) && (k<70))  {
         if (resName[i][0])
diff --git a/src/mmdb_selmngr.cpp b/src/mmdb_selmngr.cpp
index 20261c7..87b4bef 100644
--- a/src/mmdb_selmngr.cpp
+++ b/src/mmdb_selmngr.cpp
@@ -1158,7 +1158,7 @@ void  CMMDBSelManager::Select (
              int   selKey    // selection key
                     )  {
 int       i,j,k,n,m1,m2,c, sk,nsel;
-Boolean   noRes,modelSel,chainSel,resSel,selAND;
+Boolean   noRes,modelSel(False),chainSel,resSel,selAND;
 PCModel   model;
 PCChain   chain;
 PCResidue res;
diff --git a/src/mmdb_title.cpp b/src/mmdb_title.cpp
index 3dd7925..eb6de74 100644
--- a/src/mmdb_title.cpp
+++ b/src/mmdb_title.cpp
@@ -1381,6 +1381,10 @@ MakeStreamFunctions(CRemark)
 #define  R350_CHAINS         2
 #define  R350_BIOMT          3
 
+#ifdef _WIN32
+#define  strcasestr(s, t) strstr(strupr(s), t)
+#endif
+
 void getRemarkKey ( RPCRemark rem, int & lkey )  {
   if (rem)  {
     if (rem->remarkNum!=350)  lkey = R350_END;
@@ -1458,7 +1462,7 @@ int      l,lkey,nAdd,j;
 
   while ((i<l) && (lkey==R350_NONE))  {
 
-    p = strcasestr ( rem->Remark,"CHAINS:" );
+    p = strcasestr( rem->Remark,"CHAINS:" );
     if (p)  p += 7;
     else  {
       p = rem->Remark;
@@ -1513,7 +1517,7 @@ pstr p1,p2;
 int  l,j,lkey;
 
   sprintf ( PN,"BIOMT%1i",biomtNo );
-  p1 = strcasestr ( rem->Remark,PN );
+  p1 = strcasestr( rem->Remark,PN );
   if (!p1)  return R350_ERRBIOMT;
 
   p1 += 6;
@@ -1976,7 +1980,7 @@ int      i,l;
     if (rem)  {
       if (rem->remarkNum==2)  {
         if (rem->Remark)  {
-          p = strcasestr ( rem->Remark,"RESOLUTION" );
+          p = strcasestr( rem->Remark,"RESOLUTION" );
           if (p)  {
             while ((*p) && (*p!=' '))  p++;
             if (*p)  {