SURFEX v8.1
General documentation of Surfex
lfi_fort.c
Go to the documentation of this file.
1 /**** *lfi_fort.c* - Definition of lficb_fort
2  *
3  * Author.
4  * -------
5  * Philippe Marguinaud *METEO-FRANCE*
6  * Original : 12-08-2013
7  *
8  */
9 
10 
11 #include <stdlib.h>
12 #include "lfi_fort.h"
13 
15 {
56 };
57 
58 /* Only free the memory allocated for the handle; the underlying LFICOM object
59  * is freed in lfimod.F90
60  */
61 
62 static void lfi_del_fort_hndl (lfi_hndl_t * lfi)
63 {
64  free (lfi);
65 }
66 
67 /* Check the unit is not already open; we use the lfinum routine */
68 
70 {
71  integer64 KRANG;
72  lfi->cb->lfinum (lfi->data, KNUMER, &KRANG);
73  return KRANG > 0 ? 1 : 0;
74 }
75 
76 /* Messages are handled by the Fortran LFI library itself; hence we return false */
77 
79 {
80  return 0;
81 }
82 
83 /* Fatal errors are handled by the Fortran LFI library itself; hence we return false */
84 
86 {
87  return 0;
88 }
89 
90 /* Allocate and initialize a new LFI handle base on a LFICOM structure */
91 
93 {
94  lfi_hndl_t * lfi = (lfi_hndl_t *)malloc (sizeof (lfi_hndl_t));
95  lfi->cb = &lficb_fort;
96  lfi->data = data;
100  lfi->is_fatl = lfi_fat_fort_hndl;
101  lfi->next = NULL;
102  return lfi;
103 }
104 
void lfiosg_fort_(LFIOSG_ARGS_DECL)
void lfiouv_fort_(LFIOUV_ARGS_DECL)
void lfinim_fort_(LFINIM_ARGS_DECL)
int(* is_fatl)(struct lfi_hndl_t *, integer64 *)
Definition: lfi_hndl.h:26
void lfisup_fort_(LFISUP_ARGS_DECL)
void lfipos_fort_(LFIPOS_ARGS_DECL)
void lfinfo_fort_(LFINFO_ARGS_DECL)
void lfioeg_fort_(LFIOEG_ARGS_DECL)
void lfilaf_fort_(LFILAF_ARGS_DECL)
void lfiver_fort_(LFIVER_ARGS_DECL)
void lfiofm_fort_(LFIOFM_ARGS_DECL)
static int lfi_fat_fort_hndl(lfi_hndl_t *lfi, integer64 *KNUMER)
Definition: lfi_fort.c:85
void(* lfinum)(LFINUM_ARGS_DECL)
Definition: lfi_call.h:33
void lfilec_fort_(LFILEC_ARGS_DECL)
void lfiopt_fort_(LFIOPT_ARGS_DECL)
lficb_t lficb_fort
Definition: lfi_fort.c:14
void lfisfm_fort_(LFISFM_ARGS_DECL)
void lfista_fort_(LFISTA_ARGS_DECL)
void lfiomf_fort_(LFIOMF_ARGS_DECL)
int(* is_verb)(struct lfi_hndl_t *, integer64 *)
Definition: lfi_hndl.h:24
void lfiafm_fort_(LFIAFM_ARGS_DECL)
void lfifmd_fort_(LFIFMD_ARGS_DECL)
void(* destroy)(struct lfi_hndl_t *)
Definition: lfi_hndl.h:23
struct lfi_hndl_t * next
Definition: lfi_hndl.h:22
void lfiecr_fort_(LFIECR_ARGS_DECL)
void lfioef_fort_(LFIOEF_ARGS_DECL)
long long int integer64
Definition: lfi_type.h:15
void lfiofd_fort_(LFIOFD_ARGS_DECL)
void lfinaf_fort_(LFINAF_ARGS_DECL)
void lfinsg_fort_(LFINSG_ARGS_DECL)
lfi_hndl_t * lfi_get_fort_hndl(void *data)
Definition: lfi_fort.c:92
void lfinum_fort_(LFINUM_ARGS_DECL)
lficb_t * cb
Definition: lfi_hndl.h:19
static void lfi_del_fort_hndl(lfi_hndl_t *lfi)
Definition: lfi_fort.c:62
void lfinmg_fort_(LFINMG_ARGS_DECL)
void lfilas_fort_(LFILAS_ARGS_DECL)
void lfilap_fort_(LFILAP_ARGS_DECL)
void lfiosf_fort_(LFIOSF_ARGS_DECL)
void * data
Definition: lfi_hndl.h:21
void lficas_fort_(LFICAS_ARGS_DECL)
void lfideb_fort_(LFIDEB_ARGS_DECL)
void lfimst_fort_(LFIMST_ARGS_DECL)
void lfiomg_fort_(LFIOMG_ARGS_DECL)
static int lfi_vrb_fort_hndl(lfi_hndl_t *lfi, integer64 *KNUMER)
Definition: lfi_fort.c:78
void lfierf_fort_(LFIERF_ARGS_DECL)
void lfifer_fort_(LFIFER_ARGS_DECL)
INTERFACE SUBROUTINE FACILO KNUMER
Definition: facilo.h:4
int(* is_open)(struct lfi_hndl_t *, integer64 *)
Definition: lfi_hndl.h:25
void lficfg_fort_(LFICFG_ARGS_DECL)
void lfiini_fort_(LFIINI_ARGS_DECL)
void lfiren_fort_(LFIREN_ARGS_DECL)
static int lfi_opn_fort_hndl(lfi_hndl_t *lfi, integer64 *KNUMER)
Definition: lfi_fort.c:69
void lfipxf_fort_(LFIPXF_ARGS_DECL)
void lficap_fort_(LFICAP_ARGS_DECL)
void lfifra_fort_(LFIFRA_ARGS_DECL)
void lfineg_fort_(LFINEG_ARGS_DECL)