30 #ifndef __CCP4_FORTRAN
31 #define __CCP4_FORTRAN
36 #ifdef CALL_LIKE_STARDENT
39 DefineStructure(SStrPar)
47 #define _LVTOB(l) ((long) ((l) == 0 ? 0 : 1))
48 #define _BTOLV(l) ((int) ((l) == 0 ? 0 : 1))
49 #if defined (__OSF1__) || defined (__osf__)
51 #define _BTOLV(l) ((int) ((l) == 0 ? 0 : -1))
174 #if defined(CALL_LIKE_SUN)
179 #define FTN_LEN(s) s##_len
181 #define char_struct(s) \
184 #define fill_char_struct(s,str) \
186 s##_len = strlen(str);
187 #define init_char_struct(s,str,size) \
191 #define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
193 #define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
195 #define FORTRAN_FUN(val,NAME,name,p_sun,p_stardent,p_mvs) \
197 #elif defined(CALL_LIKE_HPUX)
201 # define FTN_STR(s) s
202 # define FTN_LEN(s) s##_len
204 # define char_struct(s) \
207 # define fill_char_struct(s,str) \
209 s##_len = strlen(str);
210 # define init_char_struct(s,str,size) \
214 # define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
216 # define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
218 # define FORTRAN_FUN(val,NAME,name,p_sun,p_stardent,p_mvs) \
220 #elif defined(CALL_LIKE_STARDENT)
222 typedef PStrPar
fpstr;
224 # define FTN_STR(s) s->Str_pointer
225 # define FTN_LEN(s) s->Str_length
227 # define char_struct(s) \
229 # define fill_char_struct(s,str) \
231 s.len = strlen(FName); \
233 # define init_char_struct(s,str,size) \
238 # define FORTRAN_SUBR(NAME,name,p_send,p_sstruct,p_sflw) \
240 # define FORTRAN_CALL(NAME,name,p_send,p_sstruct,p_sflw) \
242 # define FORTRAN_FUN(val,NAME,name,p_send,p_sstruct,p_sflw) \
245 #elif defined(CALL_LIKE_VMS)
247 typedef dsc$descriptor_s *
fpstr;
249 # define FTN_STR(s) s->dsc$a_pointer;
250 # define FTN_LEN(s) s->dsc$w_length;
252 # define char_struct(s) \
254 # define fill_char_struct(s,str) \
255 s.dsc$a_pointer = str; \
256 s.dsc$w_length = strlen(str); \
257 s.dsc$b_dtype = DSC$K_DTYPE_T; \
258 s.dsc$b_class = DSC$K_CLASS_S;
259 # define init_char_struct(s,str,size) \
260 s.dsc$a_pointer = str; \
261 s.dsc$w_length = size; \
262 s.dsc$b_dtype = DSC$K_DTYPE_T; \
263 s.dsc$b_class = DSC$K_CLASS_S;
265 # define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
267 # define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
269 # define FORTRAN_FUN(val,NAME,name,p_sun,p_stardent,p_mvs) \
272 #elif defined(CALL_LIKE_MVS)
274 #if (CALL_LIKE_MVS == 2)
279 #define FTN_LEN(s) s##_len
281 #define char_struct(s) \
284 #define fill_char_struct(s,str) \
286 s##_len = strlen(str);
287 #define init_char_struct(s,str,size) \
291 #define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
293 #define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
295 #define FORTRAN_FUN(val,NAME,name,p_sun,p_stardent,p_mvs) \
302 # define FTN_STR(s) s
303 # define FTN_LEN(s) s##_len
305 # define char_struct(s) \
308 # define fill_char_struct(s,str) \
310 s##_len = strlen(str);
311 # define init_char_struct(s,str,size) \
315 # define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
316 void __stdcall NAME p_mvs
317 # define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
319 # define FORTRAN_FUN(val,NAME,name,p_sun,p_stardent,p_mvs) \
320 val __stdcall NAME p_mvs
326 # error Unknown machine!!!
330 # define FTN_STR(s) s
331 # define FTN_LEN(s) s##_len
333 # define char_struct(s) \
336 # define fill_char_struct(s,str) \
338 s##_len = strlen(str);
339 # define init_char_struct(s,str,size) \
351 # define FORTRAN_SUBR(NAME,name,p_sun,p_stardent,p_mvs) \
361 # define FORTRAN_CALL(NAME,name,p_sun,p_stardent,p_mvs) \
373 # define FORTRAN_FUN(val,NAME,name,p_sun,p_stardent,p_mvs) \
379 typedef unsigned int ftn_logical;
380 #if defined (KNOWN_MACHINE)
381 # define FORTRAN_LOGICAL_TRUE 1
382 # define FORTRAN_LOGICAL_FALSE 0
384 #if defined (__OSF1__) || defined (__osf__)
385 # undef FORTRAN_LOGICAL_TRUE
386 # define FORTRAN_LOGICAL_TRUE -1
Header file containing various commonly used type definitions and some useful macros.
pstr fpstr
Definition: ccp4_fortran.h:328
void ccp4_CtoFString(fpstr str1, int str1_len, const char *cstring)
Definition: library_f.c:71
char * ccp4_FtoCString(fpstr str1, int str1_len)
Definition: library_f.c:50