00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef CGNS_HEADER_H
00022 #define CGNS_HEADER_H
00023
00024 #include <math.h>
00025 #include "cgns_io.h"
00026
00027 typedef char char_33[33];
00028 typedef char const cchar_33[33];
00029 typedef int int_6[6];
00030 typedef int int_3[3];
00031
00032 #define MIN(a,b) (((a)<(b))?(a):(b))
00033 #define MAX(a,b) (((a)>(b))?(a):(b))
00034
00035 #define CGNS_DELETE_SHIFT(nchild, child) { \
00036 for (n=0; n<parent->nchild && strcmp(parent->child[n].name,node_name); n++); \
00037 if (n==parent->nchild) { \
00038 cgi_error("Error in cg_delete: Can't find node '%s'",node_name); \
00039 return 1; \
00040 } \
00041 for (m=n+1; m<parent->nchild; m++) parent->child[m-1] = parent->child[m]; \
00042 parent->nchild --; \
00043 }
00044
00045 #define ADDRESS4MULTIPLE(parent_type, nchild, child, child_type) { \
00046 parent_type *parent = (parent_type *)posit->posit; \
00047 child = 0; \
00048 if (local_mode == CG_MODE_WRITE) { \
00049 for (n=0; n<parent->nchild && strcmp(parent->child[n].name,given_name);n++);\
00050 if (n==parent->nchild) { \
00051 if (parent->nchild==0) parent->child = CGNS_NEW(child_type, 1); \
00052 else parent->child = CGNS_RENEW(child_type,parent->nchild+1, parent->child);\
00053 child = &parent->child[parent->nchild]; \
00054 parent->nchild++; \
00055 } else { \
00056 if (cg->mode == CG_MODE_WRITE) error1=1; \
00057 else { \
00058 parent_id = parent->id; \
00059 child= &(parent->child[n]); \
00060 } \
00061 } \
00062 } else if (local_mode == CG_MODE_READ) { \
00063 if (given_no > parent->nchild || given_no<=0) error2=1; \
00064 else child = &parent->child[given_no-1]; \
00065 } \
00066 }
00067
00068 #define ADDRESS4SINGLE_ALLOC(parent_type, child) { \
00069 parent_type *parent = (parent_type *)posit->posit; \
00070 child = &parent->child; \
00071 parent_id = parent->id; \
00072 }
00073
00074 #define ADDRESS4SINGLE(parent_type, child, child_type, size) { \
00075 parent_type *parent = (parent_type *)posit->posit; \
00076 if (local_mode==CG_MODE_WRITE) { \
00077 if (parent->child==0) parent->child = CGNS_NEW(child_type, size); \
00078 else { \
00079 if (cg->mode == CG_MODE_WRITE) error1=1; \
00080 else parent_id = parent->id; \
00081 } \
00082 } \
00083 child = parent->child; \
00084 }
00085
00086 #define NDESCRIPTOR(parent_type) { \
00087 parent_type *parent = (parent_type *)posit->posit; \
00088 (*ndescriptors)= parent->ndescr; \
00089 }
00090
00091
00092
00093
00094
00095 #define CGNS_NEW(type,size) (type *)cgi_malloc(size,sizeof(type))
00096 #define CGNS_RENEW(type,size,old) (type *)cgi_realloc(old,(unsigned)(size)*sizeof(type))
00097 #define CGNS_FREE(data) free(data);
00098
00099 #define DEBUG_FILE 0
00100 #define DEBUG_BASE 0
00101 #define DEBUG_ZONE 0
00102 #define DEBUG_SORT 0
00103 #define DEBUG_ARRAY 0
00104 #define DEBUG_SOL 0
00105 #define DEBUG_HOLE 0
00106 #define DEBUG_CONN 0
00107 #define DEBUG_1TO1 0
00108 #define DEBUG_BOCO 0
00109 #define DEBUG_GOTO 0
00110 #define DEBUG_FTOC 0
00111 #define DEBUG_VERSION 0
00112 #define DEBUG_LINKS 0
00113
00114 #define SKIP_DATA 0
00115 #define READ_DATA 1
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 typedef struct {
00127 char *filename;
00128 char *name_in_file;
00129 } cgns_link;
00130
00131 typedef struct {
00132 char_33 name;
00133 double id;
00134 cgns_link *link;
00135 int in_link;
00136 char *text;
00137 } cgns_descr;
00138
00139 typedef struct {
00140 char_33 name;
00141 double id;
00142 cgns_link *link;
00143 int in_link;
00144 int nunits;
00145 MassUnits_t mass;
00146 LengthUnits_t length;
00147 TimeUnits_t time;
00148 TemperatureUnits_t temperature;
00149 AngleUnits_t angle;
00150 ElectricCurrentUnits_t current;
00151 SubstanceAmountUnits_t amount;
00152 LuminousIntensityUnits_t intensity;
00153 } cgns_units;
00154
00155 typedef struct {
00156 char_33 name;
00157 double id;
00158 cgns_link *link;
00159 int in_link;
00160 char_33 data_type;
00161 void *data;
00162
00163
00164
00165
00166 int nexps;
00167 } cgns_exponent;
00168
00169 typedef struct {
00170 char_33 name;
00171 double id;
00172 cgns_link *link;
00173 int in_link;
00174 char_33 data_type;
00175 void *data;
00176 } cgns_conversion;
00177
00178 typedef struct {
00179 char_33 name;
00180 double id;
00181 cgns_link *link;
00182 int in_link;
00183 char_33 data_type;
00184 int data_dim;
00185 int dim_vals[12];
00186 void *data;
00187 int ndescr;
00188 cgns_descr *descr;
00189 DataClass_t data_class;
00190 cgns_units *units;
00191 cgns_exponent *exponents;
00192 cgns_conversion *convert;
00193
00194 int range[2];
00195 } cgns_array;
00196
00197 typedef struct {
00198 char_33 name;
00199 double id;
00200 cgns_link *link;
00201 int in_link;
00202 PointSetType_t type;
00203 char_33 data_type;
00204 int npts;
00205 int size_of_patch;
00206 void *data;
00207 } cgns_ptset;
00208
00209 typedef struct cgns_user_data_s
00210 {
00211 char_33 name;
00212 double id;
00213 cgns_link *link;
00214 int in_link;
00215 int ndescr;
00216 cgns_descr *descr;
00217 int narrays;
00218 cgns_array *array;
00219 DataClass_t data_class;
00220 cgns_units *units;
00221
00222 GridLocation_t location;
00223 char_33 family_name;
00224 int ordinal;
00225 cgns_ptset *ptset;
00226 int nuser_data;
00227 struct cgns_user_data_s *user_data;
00228 } cgns_user_data;
00229
00230 typedef struct {
00231 char_33 name;
00232 double id;
00233 cgns_link *link;
00234 int in_link;
00235 int ndescr;
00236 cgns_descr *descr;
00237 int narrays;
00238 cgns_array *array;
00239 DataClass_t data_class;
00240 cgns_units *units;
00241 int nuser_data;
00242 cgns_user_data *user_data;
00243 } cgns_integral;
00244
00245 typedef struct {
00246 char_33 name;
00247 double id;
00248 cgns_link *link;
00249 int in_link;
00250 int ndescr;
00251 cgns_descr *descr;
00252 GridLocation_t location;
00253 int *rind_planes;
00254 int narrays;
00255 cgns_array *array;
00256 DataClass_t data_class;
00257 cgns_units *units;
00258 int nuser_data;
00259 cgns_user_data *user_data;
00260 } cgns_discrete;
00261
00262 typedef struct {
00263 char_33 name;
00264 double id;
00265 cgns_link *link;
00266 int in_link;
00267 int iterations;
00268 int ndescr;
00269 cgns_descr *descr;
00270 cgns_descr *NormDefinitions;
00271 int narrays;
00272 cgns_array *array;
00273 DataClass_t data_class;
00274 cgns_units *units;
00275 int nuser_data;
00276 cgns_user_data *user_data;
00277 } cgns_converg;
00278
00279 typedef struct {
00280 char_33 name;
00281 double id;
00282 cgns_link *link;
00283 int in_link;
00284 int ndescr;
00285 cgns_descr *descr;
00286 cgns_descr *StateDescription;
00287 int narrays;
00288 cgns_array *array;
00289 DataClass_t data_class;
00290 cgns_units *units;
00291 int nuser_data;
00292 cgns_user_data *user_data;
00293 } cgns_state;
00294
00295 typedef struct {
00296 char_33 name;
00297 double id;
00298 cgns_link *link;
00299 int in_link;
00300 int ndescr;
00301 cgns_descr *descr;
00302 int narrays;
00303 cgns_array *vector;
00304 DataClass_t data_class;
00305 cgns_units *units;
00306 int nuser_data;
00307 cgns_user_data *user_data;
00308 } cgns_gravity;
00309
00310 typedef struct {
00311 char_33 name;
00312 double id;
00313 cgns_link *link;
00314 int in_link;
00315 int ndescr;
00316 cgns_descr *descr;
00317 int narrays;
00318 cgns_array *array;
00319 DataClass_t data_class;
00320 cgns_units *units;
00321 int nuser_data;
00322 cgns_user_data *user_data;
00323 } cgns_axisym;
00324
00325 typedef struct {
00326 char_33 name;
00327 double id;
00328 cgns_link *link;
00329 int in_link;
00330 int ndescr;
00331 cgns_descr *descr;
00332 int narrays;
00333 cgns_array *array;
00334 DataClass_t data_class;
00335 cgns_units *units;
00336 int nuser_data;
00337 cgns_user_data *user_data;
00338 } cgns_rotating;
00339
00340 typedef struct {
00341 char_33 name;
00342 double id;
00343 cgns_link *link;
00344 int in_link;
00345 int ndescr;
00346 cgns_descr *descr;
00347 WallFunctionType_t type;
00348 int nuser_data;
00349 cgns_user_data *user_data;
00350 } cgns_bcwall;
00351
00352 typedef struct {
00353 char_33 name;
00354 double id;
00355 cgns_link *link;
00356 int in_link;
00357 int ndescr;
00358 cgns_descr *descr;
00359 AreaType_t type;
00360 int narrays;
00361 cgns_array *array;
00362 int nuser_data;
00363 cgns_user_data *user_data;
00364 } cgns_bcarea;
00365
00366 typedef struct {
00367 char_33 name;
00368 double id;
00369 cgns_link *link;
00370 int in_link;
00371 int ndescr;
00372 cgns_descr *descr;
00373 cgns_bcwall *bcwall;
00374 cgns_bcarea *bcarea;
00375 int nuser_data;
00376 cgns_user_data *user_data;
00377 } cgns_bprop;
00378
00379 typedef struct {
00380 char_33 name;
00381 double id;
00382 cgns_link *link;
00383 int in_link;
00384 int ndescr;
00385 cgns_descr *descr;
00386 int narrays;
00387 cgns_array *array;
00388 DataClass_t data_class;
00389 cgns_units *units;
00390 int nuser_data;
00391 cgns_user_data *user_data;
00392 } cgns_cperio;
00393
00394 typedef struct {
00395 char_33 name;
00396 double id;
00397 cgns_link *link;
00398 int in_link;
00399 int ndescr;
00400 cgns_descr *descr;
00401 AverageInterfaceType_t type;
00402 int nuser_data;
00403 cgns_user_data *user_data;
00404 } cgns_caverage;
00405
00406 typedef struct {
00407 char_33 name;
00408 double id;
00409 cgns_link *link;
00410 int in_link;
00411 int ndescr;
00412 cgns_descr *descr;
00413 cgns_cperio *cperio;
00414 cgns_caverage *caverage;
00415 int nuser_data;
00416 cgns_user_data *user_data;
00417 } cgns_cprop;
00418
00419 typedef struct {
00420 char_33 name;
00421 double id;
00422 cgns_link *link;
00423 int in_link;
00424 ModelType_t type;
00425 int ndescr;
00426 cgns_descr *descr;
00427 int narrays;
00428 cgns_array *array;
00429 DataClass_t data_class;
00430 cgns_units *units;
00431 int *diffusion_model;
00432 int dim_vals;
00433 int nuser_data;
00434 cgns_user_data *user_data;
00435 } cgns_model;
00436
00437 typedef struct {
00438 char_33 name;
00439 double id;
00440 cgns_link *link;
00441 int in_link;
00442 GoverningEquationsType_t type;
00443 int ndescr;
00444 cgns_descr *descr;
00445 int *diffusion_model;
00446 int dim_vals;
00447 int nuser_data;
00448 cgns_user_data *user_data;
00449 } cgns_governing;
00450
00451 typedef struct {
00452 char_33 name;
00453 double id;
00454 cgns_link *link;
00455 int in_link;
00456 int ndescr;
00457 cgns_descr *descr;
00458 int equation_dim;
00459 cgns_governing *governing;
00460 cgns_model *gas;
00461 cgns_model *visc;
00462 cgns_model *conduct;
00463 cgns_model *closure;
00464 cgns_model *turbulence;
00465 cgns_model *relaxation;
00466 cgns_model *chemkin;
00467 DataClass_t data_class;
00468 cgns_units *units;
00469 int nuser_data;
00470 cgns_user_data *user_data;
00471
00472 cgns_model *elecfield;
00473 cgns_model *magnfield;
00474 cgns_model *emconduct;
00475 } cgns_equations;
00476
00477 typedef struct {
00478 char_33 name;
00479 double id;
00480 cgns_link *link;
00481 int in_link;
00482 int ndescr;
00483 cgns_descr *descr;
00484 int narrays;
00485 cgns_array *array;
00486 DataClass_t data_class;
00487 cgns_units *units;
00488 int nuser_data;
00489 cgns_user_data *user_data;
00490 } cgns_bcdata;
00491
00492 typedef struct {
00493 char_33 name;
00494 double id;
00495 cgns_link *link;
00496 int in_link;
00497 int ndescr;
00498 cgns_descr *descr;
00499 BCType_t type;
00500 cgns_bcdata *dirichlet;
00501 cgns_bcdata *neumann;
00502 cgns_state *state;
00503 DataClass_t data_class;
00504 cgns_units *units;
00505 int nuser_data;
00506 cgns_user_data *user_data;
00507
00508 GridLocation_t location;
00509 cgns_ptset *ptset;
00510 } cgns_dataset;
00511
00512 typedef struct {
00513 char_33 name;
00514 double id;
00515 cgns_link *link;
00516 int in_link;
00517 int ndescr;
00518 cgns_descr *descr;
00519 ElementType_t el_type;
00520 int el_bound;
00521 int range[2];
00522 int *rind_planes;
00523 cgns_array *connect;
00524 cgns_array *parent;
00525 int nuser_data;
00526 cgns_user_data *user_data;
00527 } cgns_section;
00528
00529 typedef struct {
00530 char_33 name;
00531 double id;
00532 cgns_link *link;
00533 int in_link;
00534 int ndescr;
00535 cgns_descr *descr;
00536 GridLocation_t location;
00537 BCType_t type;
00538 cgns_ptset *ptset;
00539 char_33 family_name;
00540 int *Nindex;
00541 double index_id;
00542 cgns_array *normal;
00543 int ndataset;
00544 cgns_dataset *dataset;
00545 cgns_bprop *bprop;
00546 cgns_state *state;
00547 DataClass_t data_class;
00548 cgns_units *units;
00549 int ordinal;
00550 int nuser_data;
00551 cgns_user_data *user_data;
00552 } cgns_boco;
00553
00554 typedef struct {
00555 char_33 name;
00556 double id;
00557 cgns_link *link;
00558 int in_link;
00559 int ndescr;
00560 cgns_descr *descr;
00561 int nbocos;
00562 cgns_boco *boco;
00563 cgns_state *state;
00564 DataClass_t data_class;
00565 cgns_units *units;
00566 int nuser_data;
00567 cgns_user_data *user_data;
00568 } cgns_zboco;
00569
00570 typedef struct {
00571 char_33 name;
00572 double id;
00573 cgns_link *link;
00574 int in_link;
00575 int ndescr;
00576 cgns_descr *descr;
00577 GridLocation_t location;
00578 int nptsets;
00579 cgns_ptset *ptset;
00580 int nuser_data;
00581 cgns_user_data *user_data;
00582 } cgns_hole;
00583
00584 typedef struct {
00585 char_33 name;
00586 double id;
00587 cgns_link *link;
00588 int in_link;
00589 int ndescr;
00590 cgns_descr *descr;
00591 GridConnectivityType_t type;
00592 GridLocation_t location;
00593 cgns_ptset ptset;
00594 cgns_ptset dptset;
00595 int narrays;
00596 cgns_array *interpolants;
00597 char_33 donor;
00598 cgns_cprop *cprop;
00599 int ordinal;
00600 int nuser_data;
00601 cgns_user_data *user_data;
00602 } cgns_conn;
00603
00604 typedef struct {
00605 char_33 name;
00606 double id;
00607 cgns_link *link;
00608 int in_link;
00609 int ndescr;
00610 cgns_descr *descr;
00611 int *transform;
00612 cgns_ptset ptset;
00613 cgns_ptset dptset;
00614 char_33 donor;
00615 int ordinal;
00616 int nuser_data;
00617 cgns_user_data *user_data;
00618
00619 cgns_cprop *cprop;
00620
00621 } cgns_1to1;
00622
00623 typedef struct {
00624 char_33 name;
00625 double id;
00626 cgns_link *link;
00627 int in_link;
00628 int ndescr;
00629 cgns_descr *descr;
00630 int n1to1;
00631 cgns_1to1 *one21;
00632 int nconns;
00633 cgns_conn *conn;
00634 int nholes;
00635 cgns_hole *hole;
00636 int nuser_data;
00637 cgns_user_data *user_data;
00638 } cgns_zconn;
00639
00640 typedef struct {
00641 char_33 name;
00642 double id;
00643 cgns_link *link;
00644 int in_link;
00645 int ndescr;
00646 cgns_descr *descr;
00647 GridLocation_t location;
00648 int *rind_planes;
00649 int nfields;
00650 cgns_array *field;
00651 DataClass_t data_class;
00652 cgns_units *units;
00653 int nuser_data;
00654 cgns_user_data *user_data;
00655 } cgns_sol;
00656
00657 typedef struct {
00658 char_33 name;
00659 double id;
00660 cgns_link *link;
00661 int in_link;
00662 int ndescr;
00663 cgns_descr *descr;
00664 int *rind_planes;
00665 int ncoords;
00666 cgns_array *coord;
00667 DataClass_t data_class;
00668 cgns_units *units;
00669 int nuser_data;
00670 cgns_user_data *user_data;
00671 } cgns_zcoor;
00672
00673 typedef struct {
00674 char_33 name;
00675 double id;
00676 cgns_link *link;
00677 int in_link;
00678 int ndescr;
00679 cgns_descr *descr;
00680 RigidGridMotionType_t type;
00681 int narrays;
00682 cgns_array *array;
00683 DataClass_t data_class;
00684 cgns_units *units;
00685 int nuser_data;
00686 cgns_user_data *user_data;
00687 } cgns_rmotion;
00688
00689 typedef struct {
00690 char_33 name;
00691 double id;
00692 cgns_link *link;
00693 int in_link;
00694 int ndescr;
00695 cgns_descr *descr;
00696 ArbitraryGridMotionType_t type;
00697 GridLocation_t location;
00698 int *rind_planes;
00699 int narrays;
00700 cgns_array *array;
00701 DataClass_t data_class;
00702 cgns_units *units;
00703 int nuser_data;
00704 cgns_user_data *user_data;
00705 } cgns_amotion;
00706
00707 typedef struct {
00708 char_33 name;
00709 double id;
00710 cgns_link *link;
00711 int in_link;
00712 int ndescr;
00713 cgns_descr *descr;
00714 int narrays;
00715 cgns_array *array;
00716 DataClass_t data_class;
00717 cgns_units *units;
00718 int nuser_data;
00719 cgns_user_data *user_data;
00720 } cgns_ziter;
00721
00722 typedef struct {
00723 char_33 name;
00724 double id;
00725 cgns_link *link;
00726 int in_link;
00727 int ndescr;
00728 cgns_descr *descr;
00729 int nsteps;
00730 int narrays;
00731 cgns_array *array;
00732 DataClass_t data_class;
00733 cgns_units *units;
00734 int nuser_data;
00735 cgns_user_data *user_data;
00736 } cgns_biter;
00737
00738 typedef struct {
00739 char_33 name;
00740 double id;
00741 cgns_link *link;
00742 int in_link;
00743 ZoneType_t type;
00744 int index_dim;
00745 int *nijk;
00746 int ndescr;
00747 cgns_descr *descr;
00748 int nzcoor;
00749 cgns_zcoor *zcoor;
00750 int nsections;
00751 cgns_section *section;
00752 char_33 family_name;
00753 int nsols;
00754 cgns_sol *sol;
00755 int ndiscrete;
00756 cgns_discrete *discrete;
00757 int nintegrals;
00758 cgns_integral *integral;
00759 cgns_zconn *zconn;
00760 cgns_zboco *zboco;
00761 cgns_state *state;
00762 DataClass_t data_class;
00763 cgns_units *units;
00764 cgns_equations *equations;
00765 cgns_converg *converg;
00766 int ordinal;
00767
00768 int nrmotions;
00769 cgns_rmotion *rmotion;
00770 int namotions;
00771 cgns_amotion *amotion;
00772 cgns_ziter *ziter;
00773 int nuser_data;
00774 cgns_user_data *user_data;
00775 cgns_rotating *rotating;
00776 } cgns_zone;
00777
00778 typedef struct {
00779 char_33 name;
00780 double id;
00781 cgns_link *link;
00782 int in_link;
00783 } cgns_part;
00784
00785 typedef struct {
00786 char_33 name;
00787 double id;
00788 cgns_link *link;
00789 int in_link;
00790 int ndescr;
00791 cgns_descr *descr;
00792 char *file;
00793 char_33 format;
00794 int npart;
00795 cgns_part *part;
00796 int nuser_data;
00797 cgns_user_data *user_data;
00798 } cgns_geo;
00799
00800 typedef struct {
00801 char_33 name;
00802 double id;
00803 cgns_link *link;
00804 int in_link;
00805 BCType_t type;
00806
00807 int ndataset;
00808 cgns_dataset *dataset;
00809
00810 } cgns_fambc;
00811
00812 typedef struct {
00813 char_33 name;
00814 double id;
00815 cgns_link *link;
00816 int in_link;
00817 int ndescr;
00818 cgns_descr *descr;
00819 int nfambc;
00820 cgns_fambc *fambc;
00821 int ngeos;
00822 cgns_geo *geo;
00823 int ordinal;
00824 int nuser_data;
00825 cgns_user_data *user_data;
00826
00827 cgns_rotating *rotating;
00828
00829 } cgns_family;
00830
00831 typedef struct {
00832 char_33 name;
00833 double id;
00834 int cell_dim;
00835 int phys_dim;
00836 int ndescr;
00837 cgns_descr *descr;
00838 int nzones;
00839 cgns_zone *zone;
00840 int nfamilies;
00841 cgns_family *family;
00842 cgns_state *state;
00843 DataClass_t data_class;
00844 cgns_units *units;
00845 cgns_equations *equations;
00846 cgns_converg *converg;
00847 int nintegrals;
00848 cgns_integral *integral;
00849 cgns_biter *biter;
00850 SimulationType_t type;
00851 double type_id;
00852 int nuser_data;
00853 cgns_user_data *user_data;
00854 cgns_gravity *gravity;
00855 cgns_axisym *axisym;
00856 cgns_rotating *rotating;
00857 } cgns_base;
00858
00859 typedef struct {
00860 char *filename;
00861 int version;
00862 int cgio;
00863 double rootid;
00864 int mode;
00865 int file_number;
00866 int deleted;
00867 int added;
00868 char_33 dtb_version;
00869 char_33 creation_date;
00870 char_33 modify_date;
00871 char_33 adf_lib_version;
00872 int nbases;
00873 cgns_base *base;
00874 } cgns_file;
00875
00876 typedef struct {
00877 void *posit;
00878 char label[33];
00879 int index;
00880 double id;
00881 } cgns_posit;
00882
00883
00884
00885 #if defined(_WIN32) && defined(BUILD_DLL)
00886 # define CGNSDLL _declspec(dllexport)
00887 #else
00888 # define CGNSDLL
00889 #endif
00890
00891 #ifdef __cplusplus
00892 extern "C" {
00893 #endif
00894
00895
00896
00897
00898
00899 extern cgns_file *cgns_files;
00900 extern cgns_file *cg;
00901 extern int n_cgns_files;
00902 extern int file_number_offset;
00903 extern int CGNSLibVersion;
00904
00905
00906
00907 extern cgns_posit *posit;
00908 extern int posit_file, posit_base, posit_zone;
00909 extern int posit_depth;
00910 extern cgns_posit posit_stack[CG_MAX_GOTO_DEPTH+1];
00911
00912
00913
00914
00915
00916 void *cgi_malloc(int cnt,int size);
00917 void *cgi_realloc(void *old,unsigned bytes);
00918
00919
00920 CGNSDLL cgns_file *cgi_get_file (int file_number);
00921 cgns_base *cgi_get_base (cgns_file *cg, int B);
00922 cgns_zone *cgi_get_zone (cgns_file *cg, int B, int Z);
00923 cgns_family *cgi_get_family (cgns_file *cg, int B, int F);
00924 cgns_biter *cgi_get_biter (cgns_file *cg, int B);
00925 cgns_gravity *cgi_get_gravity(cgns_file *cg, int B);
00926 cgns_axisym *cgi_get_axisym (cgns_file *cg, int B);
00927 cgns_ziter *cgi_get_ziter (cgns_file *cg, int B, int Z);
00928 cgns_zcoor *cgi_get_zcoor (cgns_file *cg, int B, int Z, int C);
00929 cgns_zcoor *cgi_get_zcoorGC(cgns_file *cg, int B, int Z);
00930 cgns_array *cgi_get_coord (cgns_file *cg, int B, int Z, int C);
00931 cgns_section *cgi_get_section(cgns_file *cg, int B, int Z, int S);
00932 cgns_sol *cgi_get_sol (cgns_file *cg, int B, int Z, int S);
00933 cgns_array *cgi_get_field (cgns_file *cg, int B, int Z, int S, int F);
00934 cgns_zconn *cgi_get_zconn (cgns_file *cg, int B, int Z);
00935 cgns_hole *cgi_get_hole (cgns_file *cg, int B, int Z, int I);
00936 cgns_conn *cgi_get_conn (cgns_file *cg, int B, int Z, int I);
00937 cgns_1to1 *cgi_get_1to1 (cgns_file *cg, int B, int Z, int I);
00938 cgns_zboco *cgi_get_zboco (cgns_file *cg, int B, int Z);
00939 cgns_boco *cgi_get_boco (cgns_file *cg, int B, int Z, int BC);
00940 cgns_dataset *cgi_get_dataset(cgns_file *cg, int B, int Z, int BC, int DSet);
00941 cgns_bcdata *cgi_get_bcdata (cgns_file *cg, int B, int Z, int BC, int Dset,
00942 BCDataType_t type);
00943 cgns_model *cgi_get_model (cgns_file *cg, int B, int Z, char *model);
00944 cgns_state *cgi_get_state (cgns_file *cg, int B, int Z, int ZBC, int BC, int Dset);
00945 cgns_converg *cgi_get_converg(cgns_file *cg, int B, int Z);
00946 cgns_equations *cgi_get_equations(cgns_file *cg, int B, int Z);
00947 cgns_governing *cgi_get_governing(cgns_file *cg, int B, int Z);
00948 cgns_integral *cgi_get_integral (cgns_file *cg, int B, int Z, int N);
00949 cgns_discrete *cgi_get_discrete (cgns_file *cg, int B, int Z, int D);
00950 cgns_rmotion *cgi_get_rmotion (cgns_file *cg, int B, int Z, int R);
00951 cgns_amotion *cgi_get_amotion (cgns_file *cg, int B, int Z, int R);
00952 cgns_rotating *cgi_get_rotating (cgns_file *cg, int B, int Z);
00953 cgns_bprop *cgi_get_bprop (cgns_file *cg, int B, int Z, int BC);
00954 cgns_cprop *cgi_get_cprop (cgns_file *cg, int B, int Z, int I);
00955
00956
00957 CGNSDLL int cgi_update_posit(int cnt, int *index, char **label);
00958 CGNSDLL int cgi_set_posit(int fn, int B, int n, int *index, char **label);
00959 CGNSDLL int cgi_posit_id(double *posit_id);
00960 CGNSDLL cgns_posit *cgi_get_posit();
00961
00962
00963
00964 cgns_descr *cgi_descr_address(int local_mode, int descr_no,
00965 char const *descr_name, int *ier);
00966 DataClass_t *cgi_dataclass_address(int local_mode, int *ier);
00967 cgns_units *cgi_units_address(int local_mode, int *ier);
00968 int *cgi_ordinal_address(int local_mode, int *ier);
00969 int *cgi_rind_address(int local_mode, int *ier);
00970 GridLocation_t *cgi_location_address(int local_mode, int *ier);
00971 cgns_conversion *cgi_conversion_address(int local_mode, int *ier);
00972 cgns_exponent *cgi_exponent_address(int local_mode, int *ier);
00973 cgns_integral *cgi_integral_address(int local_mode, int integral_no,
00974 char const *integral_name, int *ier);
00975 cgns_equations *cgi_equations_address(int local_mode, int *ier);
00976 cgns_state *cgi_state_address(int local_mode, int *ier);
00977 cgns_converg *cgi_converg_address(int local_mode, int *ier);
00978 cgns_governing *cgi_governing_address(int local_mode, int *ier);
00979 int *cgi_diffusion_address(int local_mode, int *ier);
00980 cgns_array *cgi_array_address(int local_mode, int array_no, char const *array_name, int *ier);
00981 cgns_model *cgi_model_address(int local_mode, char const *ModelLabel, int *ier);
00982 char *cgi_famname_address(int local_mode, int *ier);
00983 cgns_user_data *cgi_user_data_address(int local_mode, int given_no, char const *given_name, int *ier);
00984 cgns_rotating *cgi_rotating_address(int local_mode, int *ier);
00985 cgns_ptset *cgi_ptset_address(int local_mode, int *ier);
00986 cgns_dataset * cgi_bcdataset_address(int local_mode, int given_no,
00987 char const *given_name, int *ier);
00988
00989
00990 int cgi_read();
00991 int cgi_read_base(cgns_base *base);
00992 int cgi_read_zone(cgns_zone *zone);
00993 int cgi_read_zonetype(double parent_id, char_33 parent_name, ZoneType_t *type);
00994 int cgi_read_family(cgns_family *family);
00995 int cgi_read_family_name(int in_link, double parent_id, char_33 parent_name,
00996 char_33 family_name);
00997 int cgi_read_array(cgns_array *array, char *parent_label, double parent_id);
00998 int cgi_read_section(int in_link, double parent_id, int *nsections,
00999 cgns_section **section);
01000 int cgi_read_hole(cgns_hole *hole);
01001 int cgi_read_conn(cgns_conn *conn);
01002 int cgi_read_1to1(cgns_1to1 *one21);
01003 int cgi_read_ptset(double parent_id, cgns_ptset *ptset);
01004 int cgi_read_string(double id, char_33 name, char **string_data);
01005 int cgi_read_boco(cgns_boco *boco);
01006 int cgi_read_location(double parent_id, char_33 parent_name, GridLocation_t *location);
01007 int cgi_read_state(int in_link, double parent_id, cgns_state **state);
01008 int cgi_read_converg(int in_link, double parent_id, cgns_converg **converg);
01009 int cgi_read_units(int in_link, double parent_id, cgns_units **units);
01010 int cgi_read_equations(int in_link, double parent_id,
01011 cgns_equations **equations);
01012 int cgi_read_model(int in_link, double parent_id, char *label,
01013 cgns_model **model);
01014 int cgi_read_conversion(int in_link, double parent_id,
01015 cgns_conversion **convert);
01016 int cgi_read_exponents(int in_link, double parent_id,
01017 cgns_exponent **exponents);
01018 int cgi_read_integral(int in_link, double parent_id, int *nintegrals,
01019 cgns_integral **integral);
01020 int cgi_read_discrete(int in_link, double parent_id, int *ndiscrete,
01021 cgns_discrete **discrete);
01022 int cgi_read_sol(int in_link, double parent_id, int *nsols, cgns_sol **sol);
01023 int cgi_read_zcoor(int in_link, double parent_id, int *nzcoor,
01024 cgns_zcoor **zcoor);
01025 int cgi_read_zconn(int in_link, double parent_id, cgns_zconn **zconn);
01026 int cgi_read_zboco(int in_link, double parent_id, cgns_zboco **zboco);
01027 int cgi_read_dataset(int in_link, double parent_id, int *ndataset,
01028 cgns_dataset **dataset);
01029 int cgi_read_bcdata(cgns_bcdata *bcdata);
01030 int cgi_read_rind(double parent_id, int **rind_planes);
01031 int cgi_read_ordinal(double parent_id, int *ordinal);
01032 int cgi_read_DDD(int in_link, double parent_id, int *ndescr, cgns_descr **descr,
01033 DataClass_t *data_class, cgns_units **units);
01034 int cgi_read_rmotion(int in_link, double parent_id, int *nrmotions,
01035 cgns_rmotion **rmotion);
01036 int cgi_read_amotion(int in_link, double parent_id, int *namotions,
01037 cgns_amotion **amotion);
01038 int cgi_read_simulation(double parent_id, SimulationType_t *type, double *type_id);
01039 int cgi_read_biter(int in_link, double parent_id, cgns_biter **biter);
01040 int cgi_read_ziter(int in_link, double parent_id, cgns_ziter **ziter);
01041 int cgi_read_gravity(int in_link, double parent_id, cgns_gravity **gravity);
01042 int cgi_read_axisym(int in_link, double parent_id, cgns_axisym **axisym);
01043 int cgi_read_rotating(int in_link, double parent_id, cgns_rotating **rotating);
01044 int cgi_read_bprop(int in_link, double parent_id, cgns_bprop **bprop);
01045 int cgi_read_cprop(int in_link, double parent_id, cgns_cprop **cprop);
01046 int cgi_read_user_data(int in_link, double parent_id, int *nuser_data,
01047 cgns_user_data **user_data);
01048 cgns_link *cgi_read_link(double node_id);
01049
01050 int cgi_datasize(int Idim, int *CurrentDim, GridLocation_t location,
01051 int *rind_planes, int *DataSize);
01052
01053 int cgi_read_node(double node_id, char_33 name, char_33 data_type,
01054 int *ndim, int *dim_vals, void **data, int data_flag);
01055 CGNSDLL int cgi_get_nodes(double parent_id, char *label, int *nnodes, double **id);
01056
01057
01058 int cgi_write(int file_number);
01059 int cgi_write_zone(double parent_id, cgns_zone *zone);
01060 int cgi_write_family(double parent_id, cgns_family *family);
01061 int cgi_write_zcoor(double parent_id, cgns_zcoor *zcoor);
01062 int cgi_write_section(double parent_id, cgns_section *section);
01063 int cgi_write_sol(double parent_id, cgns_sol *sol);
01064 int cgi_write_zconn(double parent_id, cgns_zconn *zconn);
01065 int cgi_write_1to1(double parent_id, cgns_1to1 *one21);
01066 int cgi_write_conns(double parent_id, cgns_conn *conn);
01067 int cgi_write_holes(double parent_id, cgns_hole *hole);
01068 int cgi_write_zboco(double parent_id, cgns_zboco *zboco);
01069 int cgi_write_boco(double parent_id, cgns_boco *boco);
01070 int cgi_write_dataset(double parent_id, cgns_dataset *dataset);
01071 int cgi_write_bcdata(double bcdata_id, cgns_bcdata *bcdata);
01072 int cgi_write_ptset(double id, char_33 name, cgns_ptset *ptset,
01073 int Ndim, void *ptset_ptr);
01074 int cgi_write_equations(double parent_id, cgns_equations *equations);
01075 int cgi_write_model(double parent_id, cgns_model *model);
01076 int cgi_write_state(double parent_id, cgns_state *state);
01077 int cgi_write_converg(double parent_id, cgns_converg *converg);
01078 int cgi_write_discrete(double parent_id, cgns_discrete *discrete);
01079 int cgi_write_integral(double parent_id, cgns_integral *integral);
01080 CGNSDLL int cgi_write_array(double parent_id, cgns_array *array);
01081 int cgi_write_rind(double parent_id, int *rind_planes, int idim);
01082 int cgi_write_units(double parent_id, cgns_units *units);
01083 int cgi_write_exponents(double parent_id, cgns_exponent *exponents);
01084 CGNSDLL int cgi_write_dataclass(double parent_id, DataClass_t data_class);
01085 int cgi_write_descr(double parent_id, cgns_descr *descr);
01086 CGNSDLL int cgi_write_ordinal(double parent_id, int ordinal);
01087 int cgi_write_rmotion(double parent_id, cgns_rmotion *rmotion);
01088 int cgi_write_amotion(double parent_id, cgns_amotion *amotion);
01089 int cgi_write_biter(double parent_id, cgns_biter *biter);
01090 int cgi_write_ziter(double parent_id, cgns_ziter *ziter);
01091 int cgi_write_gravity(double parent_id, cgns_gravity *gravity);
01092 int cgi_write_axisym(double parent_id, cgns_axisym *axisym);
01093 int cgi_write_rotating(double parent_id, cgns_rotating *rotating);
01094 int cgi_write_bprop(double parent_id, cgns_bprop *bprop);
01095 int cgi_write_cprop(double parent_id, cgns_cprop *cprop);
01096 int cgi_write_user_data(double parent_id, cgns_user_data *user_data);
01097 int cgi_write_link(double parent_id, char *name, cgns_link *link,
01098 double *node_id);
01099
01100 CGNSDLL int cgi_new_node(double parent_id, char const *name, char const *label,
01101 double *node_id, char const *data_type,
01102 int ndim, int const *dim_vals, void const *data);
01103 int cgi_new_node_partial(double parent_id, char const *name, char const *label,
01104 double *node_id, char const *data_type, int ndim,
01105 int const *dim_vals, int const *rmin, int const *rmax,
01106 void const *data);
01107 int cgi_move_node(double old_id, double node_id, double new_id, cchar_33 node_name);
01108 int cgi_delete_node (double parent_id, double node_id);
01109
01110
01111 CGNSDLL void cgi_error(char *format, ...);
01112 CGNSDLL void cgi_warning(char *format, ...);
01113 CGNSDLL void cg_io_error(const char *routine_name);
01114
01115
01116 int cgi_GridLocation(char *GridLocationName, GridLocation_t *type);
01117 int cgi_GridConnectivityType(char *GridConnectivityName,
01118 GridConnectivityType_t *type);
01119 int cgi_PointSetType(char *PointSetName, PointSetType_t *type);
01120 int cgi_BCType(char *BCName, BCType_t *type);
01121 int cgi_DataClass(char *Name, DataClass_t *data_class);
01122 int cgi_MassUnits(char *Name, MassUnits_t *mass_unit);
01123 int cgi_LengthUnits(char *Name, LengthUnits_t *length_unit);
01124 int cgi_TimeUnits(char *Name, TimeUnits_t *time_unit);
01125 int cgi_TemperatureUnits(char *Name, TemperatureUnits_t *temperature_unit);
01126 int cgi_AngleUnits(char *Name, AngleUnits_t *angle_unit);
01127 int cgi_ElectricCurrentUnits(char *Name, ElectricCurrentUnits_t *unit);
01128 int cgi_SubstanceAmountUnits(char *Name, SubstanceAmountUnits_t *unit);
01129 int cgi_LuminousIntensityUnits(char *Name, LuminousIntensityUnits_t *unit);
01130 int cgi_GoverningEquationsType(char *Name, GoverningEquationsType_t *type);
01131 int cgi_ModelType(char *Name, ModelType_t *type);
01132 int cgi_ZoneType(char *Name, ZoneType_t *type);
01133 int cgi_RigidGridMotionType(char *Name, RigidGridMotionType_t *type);
01134 int cgi_ArbitraryGridMotionType(char *Name, ArbitraryGridMotionType_t *type);
01135 int cgi_SimulationType(char *Name, SimulationType_t *type);
01136 int cgi_WallFunctionType(char *Name, WallFunctionType_t *type);
01137 int cgi_AreaType(char *Name, AreaType_t *type);
01138 int cgi_AverageInterfaceType(char *Name, AverageInterfaceType_t *type);
01139
01140 int cgi_zone_no(cgns_base *base, char *zonename, int *zone_no);
01141
01142
01143 int cgi_sort_names(int n, double *ids);
01144 int size_of(char_33 adf_type);
01145 char *type_of(char_33 data_type);
01146 int cgi_check_strlen(char const * string);
01147 int cgi_check_mode(char const * filename, int file_mode, int mode_wanted);
01148 char *cgi_adf_datatype(DataType_t type);
01149 DataType_t cgi_datatype(cchar_33 adf_type);
01150
01151 int cgi_add_czone(char_33 zonename, int_6 range, int_6 donor_range, int idim, int *ndouble,
01152 char_33 **Dzonename, int_6 **Drange, int_6 **Ddonor_range);
01153
01154 void cgi_array_print(char *routine, cgns_array *array);
01155
01156 int cgi_element_data_size(ElementType_t type, int nelems, const int *connect);
01157
01158
01159 void cgi_free_file(cgns_file *cg);
01160 void cgi_free_base(cgns_base *base);
01161 void cgi_free_zone(cgns_zone *zone);
01162 void cgi_free_family(cgns_family *family);
01163 void cgi_free_fambc(cgns_fambc *fambc);
01164 void cgi_free_geo(cgns_geo *geo);
01165 void cgi_free_part(cgns_part *part);
01166 void cgi_free_zcoor(cgns_zcoor *zcoor);
01167 void cgi_free_section(cgns_section *section);
01168 void cgi_free_zboco(cgns_zboco *zboco);
01169 void cgi_free_zconn(cgns_zconn *zconn);
01170 void cgi_free_sol(cgns_sol *sol);
01171 void cgi_free_1to1(cgns_1to1 *one21);
01172 void cgi_free_hole(cgns_hole *hole);
01173 void cgi_free_conn(cgns_conn *conn);
01174 void cgi_free_boco(cgns_boco *boco);
01175 void cgi_free_dataset(cgns_dataset *dataset);
01176 void cgi_free_bcdata(cgns_bcdata *bcdata);
01177 void cgi_free_ptset(cgns_ptset *ptset);
01178 void cgi_free_equations(cgns_equations *equations);
01179 void cgi_free_governing(cgns_governing *governing);
01180 void cgi_free_model(cgns_model *model);
01181 void cgi_free_state(cgns_state *state);
01182 void cgi_free_converg(cgns_converg *converg);
01183 void cgi_free_discrete(cgns_discrete *discrete);
01184 void cgi_free_integral(cgns_integral *integral);
01185 void cgi_free_array(cgns_array *array);
01186 void cgi_free_convert(cgns_conversion *convert);
01187 void cgi_free_exponents(cgns_exponent *exponents);
01188 void cgi_free_units(cgns_units *units);
01189 void cgi_free_descr(cgns_descr *descr);
01190 void cgi_free_rmotion(cgns_rmotion *rmotion);
01191 void cgi_free_amotion(cgns_amotion *amotion);
01192 void cgi_free_biter(cgns_biter *biter);
01193 void cgi_free_ziter(cgns_ziter *ziter);
01194 void cgi_free_gravity(cgns_gravity *gravity);
01195 void cgi_free_axisym(cgns_axisym *axisym);
01196 void cgi_free_rotating(cgns_rotating *rotating);
01197 void cgi_free_bprop(cgns_bprop *bprop);
01198 void cgi_free_bcwall(cgns_bcwall *bcwall);
01199 void cgi_free_bcarea(cgns_bcarea *bcarea);
01200 void cgi_free_cprop(cgns_cprop *cprop);
01201 void cgi_free_cperio(cgns_cperio *cperio);
01202 void cgi_free_caverage(cgns_caverage *caverage);
01203 void cgi_free_link(cgns_link *link);
01204 void cgi_free_user_data(cgns_user_data *user_data);
01205
01206
01207 #ifdef __cplusplus
01208 }
01209 #endif
01210 #endif