Back to index

salome-kernel  6.5.0
calciumf.c
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // This library is free software; you can redistribute it and/or
00004 // modify it under the terms of the GNU Lesser General Public
00005 // License as published by the Free Software Foundation; either
00006 // version 2.1 of the License.
00007 //
00008 // This library is distributed in the hope that it will be useful,
00009 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011 // Lesser General Public License for more details.
00012 //
00013 // You should have received a copy of the GNU Lesser General Public
00014 // License along with this library; if not, write to the Free Software
00015 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00016 //
00017 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00018 //
00019 
00020 #include <string.h>
00021 #include <stdlib.h>
00022 #include "fortoc.h"
00023 #include "calcium.h"
00024 #include "calciumf.h"
00025 #include "CalciumFortranInt.h"
00026 #include <stdio.h>
00027 
00028 #ifdef __cplusplus
00029 extern "C" {
00030 #endif
00031 
00032 
00033 static void fstrtocstr(char *cstr, char *fstr,cal_int fstr_len)
00034 {
00035   cal_int i,iend;
00036   for (iend = fstr_len-1; iend >= 0; iend--)
00037     if (fstr[iend] != ' ') break;
00038   for (i = 0; i <= iend; i++)
00039     cstr[i] = fstr[i];
00040   cstr[i] = '\0';
00041 }
00042 
00043 static void cstrtofstr(char *cstr, char *fstr,cal_int fstr_len)
00044 {
00045   cal_int i, len;
00046   len = strlen(cstr);
00047   if (len > fstr_len) len = fstr_len;
00048   for (i = 0; i < len; i++)
00049     fstr[i] = cstr[i];
00050   while (i < fstr_len)
00051     fstr[i++] = ' ';
00052 }
00053 
00054 static char * fstr1(char *nom,cal_int nnom)
00055 {
00056   char * cnom=(char*)malloc((nnom+1)*sizeof(char));
00057   fstrtocstr(cnom,nom,nnom);
00058   return cnom;
00059 }
00060 
00061 static void free_str1(char *nom)
00062 {
00063   free(nom);
00064 }
00065 
00066 #define FLOAT_OK              0
00067 #define POS_INFINITY          1
00068 #define NEG_INFINITY          2
00069 #define QUIET_NAN             3
00070 #define SIGNALING_NAN         4
00071 
00072 int CheckFloat(float* value)
00073 {
00074    unsigned long L1 = *(unsigned long*)value;
00075    unsigned long L2 = L1 & 0x7fffffff;
00076    if (L2 < 0x7f800000) return (FLOAT_OK); // Short circuit for most values
00077    if (L1 == 0x7f800000) return (POS_INFINITY);
00078    else if (L1 == 0xff800000) return (NEG_INFINITY);
00079    else if (L2 >= 0x7fc00000) return (QUIET_NAN);
00080    else if ((L2 >= 0x7f800001) && (L2 <= 0x7fbfffff)) return (SIGNALING_NAN);
00081    else return (FLOAT_OK);
00082 }
00083 
00084 /**********************************************/
00085 /*  INTERFACES DE D√ČBUT ET DE FIN DE COUPLAGE */
00086 /**********************************************/
00087 
00088 void F_FUNC(cpcd,CPCD)(long *compo,STR_PSTR(nom),cal_int *info STR_PLEN(nom));
00089 void F_FUNC(cpfin,CPFIN)(long *compo,cal_int *dep,cal_int *err);
00090 
00091 void F_FUNC(cpcd,CPCD)(long *compo,STR_PSTR(nom),cal_int *info STR_PLEN(nom))
00092 {
00093   /* nom is OUT argument */
00094   cp_cd((void *)*compo,STR_PTR(nom));
00095   /* replace in place ??? */
00096   cstrtofstr(STR_PTR(nom),STR_PTR(nom),STR_LEN(nom));
00097 }
00098 
00099 void F_FUNC(cpfin,CPFIN)(long *compo,cal_int *dep,cal_int *err)
00100 {
00101   *err=cp_fin((void *)*compo,(int)*dep);
00102 }
00103 
00104 /**************************************/
00105 /* ERASE INTERFACE                    */
00106 /**************************************/
00107 void F_FUNC(cpfini,CPFINI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom));
00108 void F_FUNC(cpfint,CPFINT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom));
00109 void F_FUNC(cpeffi,CPEFFI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom));
00110 void F_FUNC(cpefft,CPEFFT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom));
00111 
00112 void F_FUNC(cpfini,CPFINI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom))
00113 {
00114   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00115   *err=cp_fini((void *)*compo,cnom,*i);
00116   free_str1(cnom);
00117 }
00118 
00119 void F_FUNC(cpfint,CPFINT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom))
00120 {
00121   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00122   *err=cp_fint((void *)*compo,cnom,*t);
00123   free_str1(cnom);
00124 }
00125 
00126 void F_FUNC(cpeffi,CPEFFI)(long *compo,STR_PSTR(nom),cal_int *i, cal_int *err STR_PLEN(nom))
00127 {
00128   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00129   *err=cp_effi((void *)*compo,cnom,*i);
00130   free_str1(cnom);
00131 }
00132 
00133 void F_FUNC(cpefft,CPEFFT)(long *compo,STR_PSTR(nom),float *t, cal_int *err STR_PLEN(nom))
00134 {
00135   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00136   *err=cp_efft((void *)*compo,cnom,*t);
00137   free_str1(cnom);
00138 }
00139 
00140 /**************************************/
00141 /* INTERFACES DE LECTURE              */
00142 /**************************************/
00143 
00144 void F_FUNC(cplin,CPLIN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00145                          cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom));
00146 void F_FUNC(cpllg,CPLLG)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00147             cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom));
00148 void F_FUNC(cplln,CPLLN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00149             cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom));
00150 void F_FUNC(cplen,CPLEN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00151             cal_int *max,cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom));
00152 void F_FUNC(cpllo,CPLLO)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00153             cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom));
00154 void F_FUNC(cpldb,CPLDB)(long *compo,cal_int *dep,double *ti,double *tf,cal_int *iter,STR_PSTR(nom),
00155             cal_int *max,cal_int *n, double *tab,cal_int *err STR_PLEN(nom));
00156 void F_FUNC(cplre,CPLRE)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00157             cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom));
00158 void F_FUNC(cplcp,CPLCP)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00159             cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom));
00160 void F_FUNC(cplch,CPLCH)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00161             cal_int *max,cal_int *n, char *tab,cal_int *err STR_PLEN(nom) STR_PLEN(tab) );
00162 
00163 
00164 void F_FUNC(cplin,CPLIN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00165                          cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom))
00166 {
00167   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00168 
00169 #if   !SIZEOF_INT
00170 #error "The macro SIZEOF_INT must be defined."
00171 #elif SIZEOF_INT == 4
00172   *err=cp_lin_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00173 #else
00174   fprintf(stderr,"End of CPLIN: %s : Can't use fortran INTEGER*4 because int C is not 32bits long on this machine.\n",
00175           cnom);
00176 #endif
00177   free_str1(cnom);
00178 }
00179 
00180 void F_FUNC(cpllg,CPLLG)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00181             cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom))
00182 {
00183   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00184 #if   !SIZEOF_LONG
00185 #error "The macro SIZEOF_LONG must be defined."
00186 #elif SIZEOF_LONG == 8
00187   *err=cp_llg_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00188 #else
00189   fprintf(stderr,"End of CPLLG: %s : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n",
00190           cnom);
00191 #endif
00192   free_str1(cnom);
00193 }
00194 
00195 void F_FUNC(cplln,CPLLN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00196                                     cal_int *max,cal_int *n, long *tab,cal_int *err STR_PLEN(nom))
00197 {
00198  char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00199 #if   !SIZEOF_LONG
00200 #error "The macro SIZEOF_LONG must be defined."
00201 #elif SIZEOF_LONG == 8
00202   *err=cp_lln_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00203 #else
00204   fprintf(stderr,"End of CPLLN: %s : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n",
00205           cnom);
00206 #endif
00207   free_str1(cnom);
00208 }
00209 
00210 
00211 void F_FUNC(cplen,CPLEN)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00212             cal_int *max,cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom))
00213 {
00214   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00215   *err=cp_len_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00216   free_str1(cnom);
00217 }
00218 
00219 
00220 void F_FUNC(cpllo,CPLLO)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00221             cal_int *max,cal_int *n, int *tab,cal_int *err STR_PLEN(nom))
00222 {
00223   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00224   *err=cp_llo_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00225   free_str1(cnom);
00226 }
00227 
00228 void F_FUNC(cpldb,CPLDB)(long *compo,cal_int *dep,double *ti,double *tf,cal_int *iter,STR_PSTR(nom),
00229             cal_int *max,cal_int *n, double *tab,cal_int *err STR_PLEN(nom))
00230 {
00231   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00232   *err=cp_ldb_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00233   free_str1(cnom);
00234 }
00235 
00236 void F_FUNC(cplre,CPLRE)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00237             cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom))
00238 {
00239   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00240   *err=cp_lre_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00241   free_str1(cnom);
00242 }
00243 
00244 void F_FUNC(cplcp,CPLCP)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00245             cal_int *max,cal_int *n, float *tab,cal_int *err STR_PLEN(nom))
00246 {
00247   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00248   *err=cp_lcp_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tab);
00249   free_str1(cnom);
00250 }
00251 
00252 void F_FUNC(cplch,CPLCH)(long *compo,cal_int *dep,float *ti,float *tf,cal_int *iter,STR_PSTR(nom),
00253             cal_int *max,cal_int *n, char *tab,cal_int *err STR_PLEN(nom) STR_PLEN(tab) )
00254 {
00255   char **tabChaine = NULL;
00256   cal_int    index = 0;
00257   char*      cnom = fstr1(STR_PTR(nom),STR_LEN(nom));
00258 
00259   tabChaine = (char **) malloc(sizeof(char *) * (*max));
00260   for (index = 0; index < *max; index++)
00261     tabChaine[index] = (char *) malloc(sizeof(char) * (STR_LEN(tab)+1));
00262 
00263   *err=cp_lch_fort_((void *)*compo,*dep,ti,tf,iter,cnom,*max,n,tabChaine,STR_LEN(tab));
00264 
00265   if (*err == CPOK )
00266     {
00267       for (index = 0; index < *n; index++)
00268         {
00269           strncpy(&tab[index * STR_LEN(tab)], tabChaine[index], strlen(tabChaine[index]));
00270           if(STR_LEN(tab) > strlen(tabChaine[index]))
00271             memset(&tab[index * STR_LEN(tab)+strlen(tabChaine[index])],' ',STR_LEN(tab)-strlen(tabChaine[index]));
00272         }
00273     }
00274 
00275   if (tabChaine != (char **) NULL)
00276     {
00277       for (index = 0; index < *max; index++)
00278         free(tabChaine[index]);
00279       free(tabChaine);
00280     }
00281   free_str1(cnom);
00282 }
00283 
00284 
00285 /***************************/
00286 /*  INTERFACES D'ECRITURE  */
00287 /***************************/
00288 void F_FUNC(cpech,CPECH)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, char *tab,cal_int *err
00289                          STR_PLEN(nom) STR_PLEN(tab));
00290 void F_FUNC(cpedb,CPEDB)(long *compo,cal_int *dep,double *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, double *tab,cal_int *err STR_PLEN(nom));
00291 void F_FUNC(cpere,CPERE)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom));
00292 void F_FUNC(cpecp,CPECP)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom));
00293 void F_FUNC(cpein,CPEIN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom));
00294 void F_FUNC(cpelg,CPELG)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom));
00295 void F_FUNC(cpeln,CPELN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom));
00296 void F_FUNC(cpeen,CPEEN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom));
00297 void F_FUNC(cpelo,CPELO)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom));
00298 
00299 void F_FUNC(cpech,CPECH)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, char *tab,cal_int *err
00300                          STR_PLEN(nom) STR_PLEN(tab))
00301 {
00302   char ** tabChaine=NULL;
00303   cal_int     index=0,index2=0;
00304   char*   cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00305   float tti=0.;
00306   if(*dep == CP_TEMPS)tti=*ti;
00307 
00308   tabChaine = (char **) malloc(sizeof(char *) * *n);
00309   for (index = 0; index < *n; index++)
00310     {
00311       tabChaine[index] = (char *) malloc(sizeof(char) * (STR_LEN(tab) + 1));
00312       strncpy(tabChaine[index],&tab[STR_LEN(tab) * index],STR_LEN(tab));
00313       tabChaine[index][STR_LEN(tab)]='\0';
00314       for (index2 = STR_LEN(tab) - 1; index2 >= 0; index2--)
00315         {
00316           if ( tabChaine[index][index2] == ' ' || tabChaine[index][index2] == '\0' )
00317             tabChaine[index][index2]='\0';
00318         }
00319     }
00320 
00321   *err=cp_ech_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tabChaine,STR_LEN(tab) );
00322 
00323   if (tabChaine != (char **) NULL)
00324     {
00325       for (index = 0; index < *n; index++)
00326         free(tabChaine[index]);
00327       free(tabChaine);
00328     }
00329   free_str1(cnom);
00330 }
00331 
00332 void F_FUNC(cpedb,CPEDB)(long *compo,cal_int *dep,double *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, double *tab,cal_int *err STR_PLEN(nom))
00333 {
00334   double tti=0.;
00335   if(*dep == CP_TEMPS)tti=*ti;
00336   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00337   *err=cp_edb_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00338   free_str1(cnom);
00339 }
00340 
00341 void F_FUNC(cpere,CPERE)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom))
00342 {
00343   float tti=0.;
00344   if(*dep == CP_TEMPS)tti=*ti;
00345   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00346   *err=cp_ere_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00347   free_str1(cnom);
00348 }
00349 
00350 void F_FUNC(cpecp,CPECP)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, float *tab,cal_int *err STR_PLEN(nom))
00351 {
00352   float tti=0.;
00353   if(*dep == CP_TEMPS)tti=*ti;
00354   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00355   *err=cp_ecp_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00356   free_str1(cnom);
00357 }
00358 
00359 
00360 void F_FUNC(cpein,CPEIN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom))
00361 {
00362   float tti=0.;
00363   if(*dep == CP_TEMPS)tti=*ti;
00364   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00365 #if   !SIZEOF_INT
00366 #error "The macro SIZEOF_INT must be defined."
00367 #elif SIZEOF_INT == 4
00368   *err=cp_ein_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00369 #else
00370   fprintf(stderr,"CPEIN: %s %f %d : Can't use fortran INTEGER*4 because int C is not 32bits long on this machine.\n",
00371           cnom, *ti,*iter);
00372 #endif
00373   free_str1(cnom);
00374 }
00375 
00376 void F_FUNC(cpelg,CPELG)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom))
00377 {
00378   float tti=0.;
00379   if(*dep == CP_TEMPS)tti=*ti;
00380   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00381 #if   !SIZEOF_LONG
00382 #error "The macro SIZEOF_LONG must be defined."
00383 #elif SIZEOF_LONG == 8
00384   *err=cp_elg_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00385 #else
00386   fprintf(stderr,"CPELG: %s %f %d : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n",
00387           cnom, *ti,*iter);
00388 #endif
00389   free_str1(cnom);
00390 }
00391 
00392 void F_FUNC(cpeln,CPELN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, long *tab,cal_int *err STR_PLEN(nom))
00393 {
00394   float tti=0.;
00395   if(*dep == CP_TEMPS)tti=*ti;
00396   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00397 #if   !SIZEOF_LONG
00398 #error "The macro SIZEOF_LONG must be defined."
00399 #elif SIZEOF_LONG == 8
00400   *err=cp_eln_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00401 #else
00402   fprintf(stderr,"CPELN: %s %f %d : Can't use fortran INTEGER*8 because long C is not 64bits long on this machine.\n",
00403           cnom, *ti,*iter);
00404 #endif
00405   free_str1(cnom);
00406 }
00407 
00408 
00409 void F_FUNC(cpeen,CPEEN)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, cal_int *tab,cal_int *err STR_PLEN(nom))
00410 {
00411   float tti=0.;
00412   if(*dep == CP_TEMPS)tti=*ti;
00413   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00414   *err=cp_een_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00415   free_str1(cnom);
00416 }
00417 
00418 void F_FUNC(cpelo,CPELO)(long *compo,cal_int *dep,float *ti,cal_int *iter,STR_PSTR(nom),cal_int *n, int *tab,cal_int *err STR_PLEN(nom))
00419 {
00420   float tti=0.;
00421   if(*dep == CP_TEMPS)tti=*ti;
00422   char* cnom=fstr1(STR_PTR(nom),STR_LEN(nom));
00423   *err=cp_elo_fort_((void *)*compo,*dep,tti,*iter,cnom,*n,tab);
00424   free_str1(cnom);
00425 }
00426 
00427 
00428 #ifdef __cplusplus
00429 }
00430 #endif
00431