Changeset 6310


Ignore:
Timestamp:
10/15/10 08:28:17 (14 years ago)
Author:
Mathieu Morlighem
Message:

Better Synchronization

Location:
issm/trunk/src/c/shared/Numerics
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/shared/Numerics/Synchronize.sh

    r6301 r6310  
    77
    88#Get all lines of Verbosity.cpp
    9 cat Verbosity.cpp | grep "bool" | grep "GetVerbosityLevel()" | awk '{ printf "%s %s\n", NR, $0 }' > temp
     9cat Verbosity.h |  grep "bool Verb" | awk '{print $2}' | sed -e "s/(/ /" | awk '{print $1}' | awk '{ printf "%s %s\n", NR, $0 }' >temp
     10#Build header of Verbosity.cpp {{{1
     11cat <<END > Verbosity.cpp
     12/*
     13* \file Verbosity.cpp:
     14* \brief: Manage verbosity levels
     15*
     16*   WARNING: DO NOT MODIFY THIS FILE
     17*            this file has been automatically generated by Synchronize.sh
     18*            Please read README for more information
     19*/
     20
     21/*include*/
     22/*{{{*/
     23#ifdef HAVE_CONFIG_H
     24   #include "config.h"
     25#else
     26#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
     27#endif
     28#include "./Verbosity.h"
     29#include "../../include/macros.h"
     30#include "../Exceptions/exceptions.h"
     31#ifdef _SERIAL_
     32#include <mex.h>
     33#endif
     34/*}}}*/
     35
     36/*Verbosityt levels*/
     37END
     38#}}}
    1039
    1140#get number of lines in temp
     
    1645
    1746        #Get name of the line i
    18         FILENAME=$(cat temp | grep "^[ ]*$i " | awk '{printf("%s",$3);}');
    19         ENUM=$(cat temp | grep "^[ ]*$i " | awk '{printf("%s",$7);}');
     47        FILENAME=$(cat temp | grep "^[ ]*$i " | awk '{printf("%s",$2);}');
     48
     49        let POWER=$i-1
     50        let BINARY=2**$POWER
     51
     52        echo "$FILENAME -> 2^$POWER = $BINARY"
    2053
    2154        #Add Verbosity Matlab file{{{
     
    3164%      bool=$FILENAME()
    3265
    33 bool=logical(bitand(GetVerbosityLevel(),$ENUM));
     66bool=logical(bitand(GetVerbosityLevel(),$BINARY));
     67END
     68        #}}}
     69        #Add case to Verbosity.cpp {{{
     70        cat <<END >> Verbosity.cpp
     71bool $FILENAME(void){return (GetVerbosityLevel() & $BINARY);} /* 2^$POWER*/
     72END
     73        #}}}
     74
     75done
     76
     77#Add footer of Verbosity.cpp{{{1
     78cat <<END >> Verbosity.cpp
     79
     80/*Verbosity Setup*/
     81static int verbositylevel=-1;
     82/*FUNCTION SetVerbosityLevel {{{*/
     83void SetVerbosityLevel(int level){
     84
     85        if(level<0) ISSMERROR("vebosity level should be a positive integer (user provided %i)",level);
     86
     87#ifdef _SERIAL_
     88
     89        mxArray* output=NULL;
     90        mxArray* input=NULL;
     91        input=mxCreateDoubleScalar((double)level);
     92
     93        mexCallMATLAB(0,&output,1,&input,"SetVerbosityLevel");
     94#else
     95
     96        verbositylevel = level;
     97
     98#endif
     99}/*}}}*/
     100/*FUNCTION GetVerbosityLevel {{{*/
     101int  GetVerbosityLevel(void){
     102#ifdef _SERIAL_
     103
     104        mxArray* output=NULL;
     105        mxArray* input=NULL;
     106        double   level;
     107
     108        mexCallMATLAB(1,&output,0,&input,"GetVerbosityLevel");
     109        level=mxGetScalar(output);
     110
     111        verbositylevel = (int)level;
     112
     113#else
     114
     115        ISSMASSERT(verbositylevel>=0);
     116        return verbositylevel;
     117
     118#endif
     119}/*}}}*/
    34120END
    35121#}}}
    36122
    37 done
    38123#clean up{{{
    39124rm temp
  • issm/trunk/src/c/shared/Numerics/Verbosity.cpp

    r6301 r6310  
     1/*
     2* \file Verbosity.cpp:
     3* \brief: Manage verbosity levels
     4*
     5*   WARNING: DO NOT MODIFY THIS FILE
     6*            this file has been automatically generated by Synchronize.sh
     7*            Please read README for more information
     8*/
    19
    210/*include*/
    3 /*{{{1*/
     11/*{{{*/
    412#ifdef HAVE_CONFIG_H
    513   #include "config.h"
     
    1624
    1725/*Verbosityt levels*/
    18 bool VerbModule   (void){return (GetVerbosityLevel() & 1 );}/* 2^0 -> 000000001*/
    19 bool VerbConverge (void){return (GetVerbosityLevel() & 2 );}/* 2^1 -> 000000010*/
    20 bool VerbModProc  (void){return (GetVerbosityLevel() & 4 );}/* 2^2 -> 000000100*/
    21 bool VerbSolver   (void){return (GetVerbosityLevel() & 8 );}/* 2^3 -> 000001000*/
     26bool VerbModule(void){return (GetVerbosityLevel() & 1);} /* 2^0*/
     27bool VerbConverge(void){return (GetVerbosityLevel() & 2);} /* 2^1*/
     28bool VerbModProc(void){return (GetVerbosityLevel() & 4);} /* 2^2*/
     29bool VerbSolver(void){return (GetVerbosityLevel() & 8);} /* 2^3*/
    2230
    2331/*Verbosity Setup*/
    2432static int verbositylevel=-1;
    25 /*FUNCTION SetVerbosityLevel {{{1*/
     33/*FUNCTION SetVerbosityLevel {{{*/
    2634void SetVerbosityLevel(int level){
    2735
     
    4048
    4149#endif
    42 
    4350}/*}}}*/
    44 /*FUNCTION GetVerbosityLevel {{{1*/
     51/*FUNCTION GetVerbosityLevel {{{*/
    4552int  GetVerbosityLevel(void){
    46 
    4753#ifdef _SERIAL_
    4854
  • issm/trunk/src/c/shared/Numerics/Verbosity.h

    r6305 r6310  
    1 /*!\file:  isnan.h
    2  * \brief: only used for intel compiler.
     1/*!\file:Verbosity.h
     2 * \brief: Deal with verbosity levels
    33 */
    44
     
    66#define _VERBOSITY_H_
    77
    8 void SetVerbosityLevel(int level);
    9 int  GetVerbosityLevel(void);
    10 
     8/*List of Verbosity levels (Add your own and Synchronize)*/
    119bool VerbModule(void);
    1210bool VerbConverge(void);
     
    1412bool VerbSolver(void);
    1513
     14/*Setup Verbosity level*/
     15void SetVerbosityLevel(int level);
     16int  GetVerbosityLevel(void);
     17
    1618#endif
Note: See TracChangeset for help on using the changeset viewer.