--- trunk/OOPSE/libmdtools/mdProfile.cpp 2003/12/19 17:25:00 887 +++ trunk/OOPSE/libmdtools/mdProfile.cpp 2003/12/19 20:36:35 891 @@ -10,6 +10,7 @@ #include "mpiSimulation.hpp" #endif //is_mpi +#include "config.h" #include "simError.h" #include "mdProfile.hpp" @@ -30,10 +31,17 @@ namespace mdProfileSpace { #ifdef IS_MPI double globalTime[N_PROFILES]; #endif //is_mpi + } +extern "C"{ + + void F90_FUNC(gettimes, GETTIMES)(double* forceTime, + double* commTime); +} + using namespace mdProfileSpace; @@ -50,9 +58,9 @@ void initProfile( void ){ #endif //is_mpi } - strncpy( theNames[pro1].myName, "unamed1", MAX_PROFILE_NAMELENGTH ); - strncpy( theNames[pro2].myName, "unamed2", MAX_PROFILE_NAMELENGTH ); - strncpy( theNames[pro3].myName, "unamed3", MAX_PROFILE_NAMELENGTH ); + strncpy( theNames[pro1].myName, "BASS Parse", MAX_PROFILE_NAMELENGTH ); + strncpy( theNames[pro2].myName, "SimSetup->CreateSim", MAX_PROFILE_NAMELENGTH ); + strncpy( theNames[pro3].myName, "Integrate the Sim", MAX_PROFILE_NAMELENGTH ); strncpy( theNames[pro4].myName, "unamed4", MAX_PROFILE_NAMELENGTH ); strncpy( theNames[pro5].myName, "unamed5", MAX_PROFILE_NAMELENGTH ); strncpy( theNames[pro6].myName, "unamed6", MAX_PROFILE_NAMELENGTH ); @@ -91,16 +99,18 @@ void writeProfiles( void ){ int days, hours, minutes, secs, msecs; double donkey; + double forceTime, commTime; + #ifdef IS_MPI int j; MPI_Status istatus; - double nodeTime; + double nodeTime, nodeForceTime, nodeCommTime; double nodeAccum[N_PROFILES]; double nodePercent[N_PROFILES]; - double globalTime; + double globalTime, globalForceTime, globalCommTime; double globalAccum[N_PROFILES]; double globalPercent[N_PROFILES]; #endif // is_mpi @@ -140,15 +150,21 @@ void writeProfiles( void ){ secs = (int)donkey; msecs = (int)( (donkey - secs) * 1000 ); + F90_FUNC(gettimes, GETTIMES)(&forceTime, &commTime); + fprintf( stdout, "----------------------------------------------------------------------------\n" - " Total Time = %03d:%02d:%02d:%02d.%03d ( %G sec )\n", + " Total Time = %03d:%02d:%02d:%02d.%03d ( %G sec )\n" + "\n" + " From Fortran: forceTime = %G secs; communicationTime = %G secs.\n", days, hours, minutes, secs, msecs, - totalTime ); + totalTime, + forceTime, + commTime); #else // the parrallel version @@ -193,21 +209,29 @@ void writeProfiles( void ){ secs = (int)donkey; msecs = (int)( (donkey - secs) * 1000 ); + F90_FUNC(gettimes, GETTIMES)(&forceTime, &commTime); + fprintf( stdout, "----------------------------------------------------------------------------\n" - " Total Time = %03d:%02d:%02d:%02d.%03d ( %G sec )\n", + " Total Time = %03d:%02d:%02d:%02d.%03d ( %G sec )\n" + "\n" + " From Fortran: forceTime = %G secs; communicationTime = %G secs.\n", days, hours, minutes, secs, msecs, - totalTime ); + totalTime, + forceTime, + commTime); // now the rest of the nodes nodeTots[0] = totalTime; - globalTime = 0.0; + globalTime = totalTime; + globalForceTime = forceTime; + globalCommTime = commTime; for(i=0;i