8.1
general documentation
cs_base_fortran.h
Go to the documentation of this file.
1 #ifndef __CS_BASE_FORTRAN_H__
2 #define __CS_BASE_FORTRAN_H__
3 
4 /*============================================================================
5  * Initializtion and handling of Fortran-related mechanisms
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2023 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------*/
29 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_base.h"
35 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*=============================================================================
41  * Macro definitions
42  *============================================================================*/
43 
44 /*============================================================================
45  * Type definitions
46  *============================================================================*/
47 
48 /*============================================================================
49  * Static global variables
50  *============================================================================*/
51 
52 /*============================================================================
53  * Public function prototypes for Fortran API
54  *============================================================================*/
55 
56 /*----------------------------------------------------------------------------
57  * Call exit routine from Fortran code
58  *
59  * Fortran interface:
60  *
61  * subroutine csexit (status)
62  * *****************
63  *
64  * integer status : <-- : 0 for success, 1+ for error
65  *----------------------------------------------------------------------------*/
66 
67 void CS_PROCF (csexit, CSEXIT)
68 (
69  const int *status
70 );
71 
72 /*----------------------------------------------------------------------------
73  * Elapsed time since execution start
74  *
75  * Fortran interface:
76  *
77  * subroutine dmtmps (tw)
78  * *****************
79  *
80  * double precision tw : <-- : elapsed time
81  *----------------------------------------------------------------------------*/
82 
83 void CS_PROCF (dmtmps, DMTMPS)
84 (
85  cs_real_t *tw
86 );
87 
88 /*----------------------------------------------------------------------------
89  * Get log name file information.
90  *
91  * When log file output is suppressed, it returns the name of the
92  * bit buck file ("/dev/null")
93  *
94  * Fortran interface
95  *
96  * subroutine cslogname (len, name)
97  * ********************
98  *
99  * integer len : <-- : maximum string length
100  * character* name : --> : Fortran string
101  *----------------------------------------------------------------------------*/
102 
103 void CS_PROCF (cslogname, CSLOGNAME)
104 (
105  const int *len,
106  char *dir
107  CS_ARGF_SUPP_CHAINE /* (possible 'length' arguments added
108  by many Fortran compilers) */
109 );
110 
111 /*----------------------------------------------------------------------------
112  * Get package data path information.
113  *
114  * The aim of this function is to aviod issues with Fortran array bounds
115  * checking when compilers such as icc 11 consider a character array from C
116  * as an array of 1-character length strings.
117  *
118  * Fortran interface
119  *
120  * subroutine csdatadir (len, dir)
121  * ********************
122  *
123  * integer len : <-- : maximum string length
124  * character* dir : --> : Fortran string
125  *----------------------------------------------------------------------------*/
126 
127 void CS_PROCF (csdatadir, CSDATADIR)
128 (
129  const int *len,
130  char *dir
131  CS_ARGF_SUPP_CHAINE /* (possible 'length' arguments added
132  by many Fortran compilers) */
133 );
134 
135 /*=============================================================================
136  * Public function prototypes
137  *============================================================================*/
138 
139 /*----------------------------------------------------------------------------
140  * Replace default bft_printf() mechanism with internal mechanism.
141  *
142  * This variant is designed to allow switching from C to Fortran output,
143  * whithout disabling regular C stdout output when switched to Fortran.
144  *
145  * This allows redirecting or suppressing logging for different ranks.
146  *
147  * parameters:
148  * log_name <-- base file name for log, or NULL for stdout
149  * rn_log_flag <-- redirection for ranks > 0 log:
150  * false: to "/dev/null" (suppressed)
151  * true: redirected to <log_name>_n*.log" file;
152  *----------------------------------------------------------------------------*/
153 
154 void
155 cs_base_fortran_bft_printf_set(const char *log_name,
156  bool rn_log_flag);
157 
158 /*----------------------------------------------------------------------------
159  * Switch bft_printf() mechanism to C output.
160  *
161  * This function may only be called after cs_base_fortran_bft_printf_set()
162  *----------------------------------------------------------------------------*/
163 
164 void
166 
167 /*----------------------------------------------------------------------------
168  * Switch bft_printf() mechanism to Fortran output.
169  *
170  * This function may only be called after cs_base_fortran_bft_printf_set()
171  *----------------------------------------------------------------------------*/
172 
173 void
175 
176 /*----------------------------------------------------------------------------
177  * Wrappers for C functions
178  *----------------------------------------------------------------------------*/
179 
180 void
182 
183 void
185 
186 void
188 
189 void
191  cs_real_t *st_exp,
192  cs_real_t *st_imp);
193 
194 void
196 
197 void
199 
200 void
202 
203 void
205 
206 void
208 
209 void
211 
212 void
214 
215 /*----------------------------------------------------------------------------*/
216 
218 
219 #endif /* __CS_BASE_FORTRAN_H__ */
void csdatadir(const int *len, char *dir CS_ARGF_SUPP_CHAINE)
Definition: cs_base_fortran.c:330
void cslogname(const int *len, char *dir CS_ARGF_SUPP_CHAINE)
Definition: cs_base_fortran.c:282
void cs_user_initialization_wrapper(void)
Definition: cs_base_fortran.c:598
void cs_user_boundary_conditions_wrapper(int *itypcl)
Definition: cs_base_fortran.c:564
void cs_user_extra_operations_initialize_wrapper(void)
Definition: cs_base_fortran.c:532
void dmtmps(cs_real_t *tw)
Definition: cs_base_fortran.c:259
void cs_user_boundary_conditions_setup_wrapper(void)
Definition: cs_base_fortran.c:558
void cs_user_finalize_setup_wrapper(void)
Definition: cs_base_fortran.c:610
void cs_base_fortran_bft_printf_to_f(void)
Definition: cs_base_fortran.c:489
void cs_user_physical_properties_wrapper(void)
Definition: cs_base_fortran.c:538
void cs_user_physical_properties_turb_viscosity_wrapper(void)
Definition: cs_base_fortran.c:544
void cs_user_source_terms_wrapper(int f_id, cs_real_t *st_exp, cs_real_t *st_imp)
Definition: cs_base_fortran.c:550
void csexit(const int *status)
Definition: cs_base_fortran.c:240
void cs_base_fortran_bft_printf_to_c(void)
Definition: cs_base_fortran.c:455
void cs_user_extra_operations_wrapper(void)
Definition: cs_base_fortran.c:592
void cs_user_porosity_wrapper(void)
Definition: cs_base_fortran.c:616
void cs_base_fortran_bft_printf_set(const char *log_name, bool rn_log_flag)
Definition: cs_base_fortran.c:373
void cs_user_parameters_wrapper(void)
Definition: cs_base_fortran.c:604
#define BEGIN_C_DECLS
Definition: cs_defs.h:514
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define CS_PROCF(x, y)
Definition: cs_defs.h:528
#define END_C_DECLS
Definition: cs_defs.h:515
#define CS_ARGF_SUPP_CHAINE
Definition: cs_defs.h:540