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 (iremarkNum!=350) lkey = R350_END; @@ -1458,7 +1462,7 @@ int l,lkey,nAdd,j; while ((iRemark,"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) {