FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
hecmw_io_get_mesh_if.c
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include "hecmw_struct.h"
9 #include "hecmw_util.h"
10 #include "hecmw_dist_free.h"
11 #include "hecmw_io_get_mesh.h"
12 #include "hecmw_dist_copy_c2f.h"
13 
14 static struct hecmwST_local_mesh *mesh;
15 
16 void hecmw_get_mesh_init_if(char *name_ID, int *err, int len) {
17  char cname[HECMW_FILENAME_LEN + 1];
18 
19  if (HECMW_strcpy_f2c_r(name_ID, len, cname, sizeof(cname)) == NULL) {
20  *err = 1;
21  return;
22  }
23 
24  mesh = HECMW_get_mesh(cname);
25  if (mesh == NULL) {
26  *err = 1;
27  return;
28  }
29 
30  if (HECMW_dist_copy_c2f_init(mesh)) {
31  *err = 1;
32  return;
33  }
34 
35  *err = 0;
36 }
37 
38 void hecmw_get_mesh_init_if_(char *name_ID, int *err, int len) {
39  hecmw_get_mesh_init_if(name_ID, err, len);
40 }
41 
42 void hecmw_get_mesh_init_if__(char *name_ID, int *err, int len) {
43  hecmw_get_mesh_init_if(name_ID, err, len);
44 }
45 
46 void HECMW_GET_MESH_INIT_IF(char *name_ID, int *err, int len) {
47  hecmw_get_mesh_init_if(name_ID, err, len);
48 }
49 
50 /*----------------------------------------------------------------------------*/
51 
52 void hecmw_get_mesh_finalize_if(int *ierr) {
54  *ierr = 1;
55  return;
56  }
57  HECMW_dist_free(mesh);
58  mesh = NULL;
59  *ierr = 0;
60 }
61 
62 void hecmw_get_mesh_finalize_if_(int *ierr) {
64 }
65 
68 }
69 
hecmw_get_mesh_init_if
void hecmw_get_mesh_init_if(char *name_ID, int *err, int len)
Definition: hecmw_io_get_mesh_if.c:16
hecmw_get_mesh_init_if_
void hecmw_get_mesh_init_if_(char *name_ID, int *err, int len)
Definition: hecmw_io_get_mesh_if.c:38
HECMW_dist_free
void HECMW_dist_free(struct hecmwST_local_mesh *mesh)
Definition: hecmw_dist_free.c:218
hecmw_get_mesh_finalize_if__
void hecmw_get_mesh_finalize_if__(int *ierr)
Definition: hecmw_io_get_mesh_if.c:66
hecmw_get_mesh_init_if__
void hecmw_get_mesh_init_if__(char *name_ID, int *err, int len)
Definition: hecmw_io_get_mesh_if.c:42
hecmwST_local_mesh
Definition: hecmw_struct.h:139
HECMW_dist_copy_c2f_init
int HECMW_dist_copy_c2f_init(struct hecmwST_local_mesh *local_mesh)
Definition: hecmw_dist_copy_c2f.c:2328
hecmw_dist_free.h
hecmw_struct.h
HECMW_GET_MESH_INIT_IF
void HECMW_GET_MESH_INIT_IF(char *name_ID, int *err, int len)
Definition: hecmw_io_get_mesh_if.c:46
HECMW_dist_copy_c2f_finalize
int HECMW_dist_copy_c2f_finalize(void)
Definition: hecmw_dist_copy_c2f.c:2333
hecmw_get_mesh_finalize_if_
void hecmw_get_mesh_finalize_if_(int *ierr)
Definition: hecmw_io_get_mesh_if.c:62
hecmw_io_get_mesh.h
HECMW_get_mesh
struct hecmwST_local_mesh * HECMW_get_mesh(char *name_ID)
Definition: hecmw_io_get_mesh.c:62
hecmw_get_mesh_finalize_if
void hecmw_get_mesh_finalize_if(int *ierr)
Definition: hecmw_io_get_mesh_if.c:52
HECMW_GET_MESH_FINALIZE_IF
void HECMW_GET_MESH_FINALIZE_IF(int *ierr)
Definition: hecmw_io_get_mesh_if.c:70
HECMW_strcpy_f2c_r
char * HECMW_strcpy_f2c_r(const char *fstr, int flen, char *buf, int bufsize)
Definition: hecmw_lib_fc.c:45
NULL
#define NULL
Definition: hecmw_io_nastran.c:30
hecmw_dist_copy_c2f.h
HECMW_FILENAME_LEN
#define HECMW_FILENAME_LEN
Definition: hecmw_config.h:72
hecmw_util.h