NCEPLIBS-bufr  12.3.0
borts.c
Go to the documentation of this file.
1 
9 #include "bufrlib.h"
10 #include <setjmp.h>
11 
13 jmp_buf context;
14 
20 void
22 {
23  longjmp(context, 1);
24 }
25 
36 void
37 catch_bort_openbf(int lunit, char *cio, int lundx, int cio_str_len)
38 {
39  /* Set the target location to which to return if a bort error is caught. */
40  if ( setjmp(context) == 1 ) return;
41 
42  /* Add a trailing null to cio, for use with get_c_string_length inside of openbf_f. */
43  cio[cio_str_len] = '\0';
44 
45  /* Recursively call the subroutine. */
46  openbf_f(lunit, cio, lundx);
47 }
48 
56 void
58 {
59  /* Set the target location to which to return if a bort error is caught. */
60  if ( setjmp(context) == 1 ) return;
61 
62  /* Recursively call the subroutine. */
63  closbf_f(lunit);
64 }
65 
76 void
77 catch_bort_status(int lunit, int *lun, int *il, int *im)
78 {
79  /* Set the target location to which to return if a bort error is caught. */
80  if ( setjmp(context) == 1 ) return;
81 
82  /* Recursively call the subroutine. */
83  status_f(lunit, lun, il, im);
84 }
85 
99 void
100 catch_bort_readmg(int lunxx, char *subset, int *jdate, int subset_str_len, int *iret)
101 {
102  /* Set the target location to which to return if a bort error is caught. */
103  if ( setjmp(context) == 1 ) return;
104 
105  /* Recursively call the subroutine. */
106  readmg_f(lunxx, subset, jdate, subset_str_len, iret);
107 }
108 
119 void
120 catch_bort_openmb(int lunit, char *subset, int subset_str_len, int jdate)
121 {
122  /* Set the target location to which to return if a bort error is caught. */
123  if ( setjmp(context) == 1 ) return;
124 
125  /* Add a trailing null to subset, for use with get_c_string_length inside of openmb_f. */
126  subset[subset_str_len] = '\0';
127 
128  /* Recursively call the subroutine. */
129  openmb_f(lunit, subset, jdate);
130 }
131 
142 void
143 catch_bort_openmg(int lunit, char *subset, int subset_str_len, int jdate)
144 {
145  /* Set the target location to which to return if a bort error is caught. */
146  if ( setjmp(context) == 1 ) return;
147 
148  /* Add a trailing null to subset, for use with get_c_string_length inside of openmg_f. */
149  subset[subset_str_len] = '\0';
150 
151  /* Recursively call the subroutine. */
152  openmg_f(lunit, subset, jdate);
153 }
154 
162 void
164 {
165  /* Set the target location to which to return if a bort error is caught. */
166  if ( setjmp(context) == 1 ) return;
167 
168  /* Recursively call the subroutine. */
169  closmg_f(lunit);
170 }
171 
185 void
186 catch_bort_readns(int lunit, char *subset, int *jdate, int subset_str_len, int *iret)
187 {
188  /* Set the target location to which to return if a bort error is caught. */
189  if ( setjmp(context) == 1 ) return;
190 
191  /* Recursively call the subroutine. */
192  readns_f(lunit, subset, jdate, subset_str_len, iret);
193 }
194 
205 void
206 catch_bort_readsb(int lunit, int *iret)
207 {
208  /* Set the target location to which to return if a bort error is caught. */
209  if ( setjmp(context) == 1 ) return;
210 
211  /* Recursively call the subroutine. */
212  readsb_f(lunit, iret);
213 }
214 
222 void
224 {
225  /* Set the target location to which to return if a bort error is caught. */
226  if ( setjmp(context) == 1 ) return;
227 
228  /* Recursively call the subroutine. */
229  writsb_f(lunit);
230 }
231 
242 void
243 catch_bort_writsa(int lunxx, int bufr_len, int *bufr, int *nbufr)
244 {
245  /* Set the target location to which to return if a bort error is caught. */
246  if ( setjmp(context) == 1 ) return;
247 
248  /* Recursively call the subroutine. */
249  writsa_f(lunxx, bufr_len, bufr, nbufr);
250 }
251 
265 void
266 catch_bort_ufbint(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
267 {
268  /* Set the target location to which to return if a bort error is caught. */
269  if ( setjmp(context) == 1 ) return;
270 
271  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbint_f. */
272  cstr[cstr_len] = '\0';
273 
274  /* Recursively call the subroutine. */
275  ufbint_f(lunin, (void**) &usr, i1, i2, iret, cstr);
276 }
277 
291 void
292 catch_bort_ufbrep(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
293 {
294  /* Set the target location to which to return if a bort error is caught. */
295  if ( setjmp(context) == 1 ) return;
296 
297  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbrep_f. */
298  cstr[cstr_len] = '\0';
299 
300  /* Recursively call the subroutine. */
301  ufbrep_f(lunin, (void**) &usr, i1, i2, iret, cstr);
302 }
303 
317 void
318 catch_bort_ufbstp(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
319 {
320  /* Set the target location to which to return if a bort error is caught. */
321  if ( setjmp(context) == 1 ) return;
322 
323  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbstp_f. */
324  cstr[cstr_len] = '\0';
325 
326  /* Recursively call the subroutine. */
327  ufbstp_f(lunin, (void**) &usr, i1, i2, iret, cstr);
328 }
329 
344 void
345 catch_bort_ufbevn(int lunit, double *usr, int i1, int i2, int i3, int *iret, char *cstr, int cstr_len)
346 {
347  /* Set the target location to which to return if a bort error is caught. */
348  if ( setjmp(context) == 1 ) return;
349 
350  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbevn_f. */
351  cstr[cstr_len] = '\0';
352 
353  /* Recursively call the subroutine. */
354  ufbevn_f(lunit, (void**) &usr, i1, i2, i3, iret, cstr);
355 }
356 
368 void
369 catch_bort_drfini(int lunit, int *mdrf, int ndrf, char *drftag, int drftag_len)
370 {
371  /* Set the target location to which to return if a bort error is caught. */
372  if ( setjmp(context) == 1 ) return;
373 
374  /* Add a trailing null to drftag, for use with get_c_string_length inside of drfini_f. */
375  drftag[drftag_len] = '\0';
376 
377  /* Recursively call the subroutine. */
378  drfini_f(lunit, mdrf, ndrf, drftag);
379 }
380 
394 void
395 catch_bort_ufbseq(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
396 {
397  /* Set the target location to which to return if a bort error is caught. */
398  if ( setjmp(context) == 1 ) return;
399 
400  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbseq_f. */
401  cstr[cstr_len] = '\0';
402 
403  /* Recursively call the subroutine. */
404  ufbseq_f(lunin, (void**) &usr, i1, i2, iret, cstr);
405 }
406 
419 void
420 catch_bort_readlc(int lunit, char *cstr, int cstr_len, char *chr, int chr_len, int *nchr)
421 {
422  /* Set the target location to which to return if a bort error is caught. */
423  if ( setjmp(context) == 1 ) {
424  *nchr = 1;
425  return;
426  }
427 
428  /* Add a trailing null to cstr, for use with get_c_string_length inside of readlc_f. */
429  cstr[cstr_len] = '\0';
430 
431  /* Recursively call the subroutine. */
432  readlc_f(lunit, cstr, chr, chr_len);
433 
434  *nchr = (int) strlen(chr);
435 }
436 
448 void
449 catch_bort_writlc(int lunit, char *cstr, int cstr_len, char *cchr, int cchr_len)
450 {
451  /* Set the target location to which to return if a bort error is caught. */
452  if ( setjmp(context) == 1 ) return;
453 
454  /* Add a trailing null to cstr, for use with get_c_string_length inside of writlc_f. */
455  cstr[cstr_len] = '\0';
456 
457  /* Add a trailing null to cchr, for use with get_c_string_length inside of writlc_f. */
458  cchr[cchr_len] = '\0';
459 
460  /* Recursively call the subroutine. */
461  writlc_f(lunit, cstr, cchr);
462 }
463 
473 void
474 catch_bort_ufbcnt(int lunit, int *kmsg, int *ksub)
475 {
476  /* Set the target location to which to return if a bort error is caught. */
477  if (setjmp(context) == 1) return;
478 
479  /* Recursively call the subroutine. */
480  ufbcnt_f(lunit, kmsg, ksub);
481 }
482 
493 void
494 catch_bort_ufbqcd(int lunit, char *cnemo, int *iqcd, int cnemo_len)
495 {
496  /* Set the target location to which to return if a bort error is caught. */
497  if (setjmp(context) == 1) return;
498 
499  /* Add a trailing null to cnemo, for use with get_c_string_length inside of ufbqcd_f. */
500  cnemo[cnemo_len] = '\0';
501 
502  /* Recursively call the subroutine. */
503  ufbqcd_f(lunit, cnemo, iqcd);
504 }
505 
517 void
518 catch_bort_ufbqcp(int lunit, int iqcp, char *cnemo, int cnemo_len, int *ncn)
519 {
520  /* Set the target location to which to return if a bort error is caught. */
521  if ( setjmp(context) == 1 ) {
522  *ncn = 1;
523  return;
524  }
525 
526  /* Recursively call the subroutine. */
527  ufbqcp_f(lunit, iqcp, cnemo, cnemo_len);
528 
529  *ncn = (int) strlen(cnemo);
530 }
531 
549 void
550 catch_bort_getcfmng(int lunit, char *cnemoi, int lcni, int ivali, char *cnemod, int lcnd, int ivald,
551  char *cmeang_c, int lcmgc, int *lnmng, int *iret)
552 {
553  /* Set the target location to which to return if a bort error is caught. */
554  if ( setjmp(context) == 1 ) {
555  *lnmng = 1;
556  return;
557  }
558 
559  /* Add trailing nulls to input strings, for use with get_c_string_length inside of getcfmng_f. */
560  cnemoi[lcni] = '\0';
561  cnemod[lcnd] = '\0';
562 
563  /* Recursively call the subroutine. */
564  getcfmng_f(lunit, cnemoi, ivali, cnemod, ivald, cmeang_c, lcmgc, iret);
565 
566  *lnmng = (int) strlen(cmeang_c);
567 }
568 
582 void
583 catch_bort_upftbv(int lunit, char *cnemo, int lcn, double val, int *ibit, int mxib, int *nib)
584 {
585  /* Set the target location to which to return if a bort error is caught. */
586  if (setjmp(context) == 1) return;
587 
588  /* Add a trailing null to cnemo, for use with get_c_string_length inside of upftbv_f. */
589  cnemo[lcn] = '\0';
590 
591  /* Recursively call the subroutine. */
592  upftbv_f(lunit, cnemo, val, ibit, mxib, nib);
593 }
594 
603 void
604 catch_bort_cobfl(const char *bfl, char io)
605 {
606 
607  /* Set the target location to which to return if a bort error is caught. */
608  if (setjmp(context) == 1) return;
609 
610  /* Recursively call the function. */
611  cobfl(bfl, io);
612 }
613 
624 void
625 catch_bort_crbmg(char *bmg, int mxmb, int *nmb, int *iret)
626 {
627 
628  /* Set the target location to which to return if a bort error is caught. */
629  if (setjmp(context) == 1) return;
630 
631  /* Recursively call the function. */
632  crbmg(bmg, mxmb, nmb, iret);
633 }
634 
644 void
645 catch_bort_cwbmg(const char *bmg, int nmb, int *iret)
646 {
647 
648  /* Set the target location to which to return if a bort error is caught. */
649  if (setjmp(context) == 1) return;
650 
651  /* Recursively call the function. */
652  cwbmg(bmg, nmb, iret);
653 }
654 
668 void
669 catch_bort_ufbtab(int lunin, double *tab, int i1, int i2, int *iret, char *cstr, int cstr_len)
670 {
671  /* Set the target location to which to return if a bort error is caught. */
672  if ( setjmp(context) == 1 ) return;
673 
674  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbtab_f. */
675  cstr[cstr_len] = '\0';
676 
677  /* Recursively call the subroutine. */
678  ufbtab_f(lunin, (void**) &tab, i1, i2, iret, cstr);
679 }
680 
693 void
694 catch_bort_ufbpos(int lunit, int irec, int isub, char *subset, int *jdate, int subset_str_len)
695 {
696  /* Set the target location to which to return if a bort error is caught. */
697  if ( setjmp(context) == 1 ) return;
698 
699  /* Recursively call the subroutine. */
700  ufbpos_f(lunit, irec, isub, subset, jdate, subset_str_len);
701 }
702 
711 void
713 {
714  /* Set the target location to which to return if a bort error is caught. */
715  if ( setjmp(context) == 1 ) return;
716 
717  /* Recursively call the subroutine. */
718  datelen_f(len);
719 }
720 
731 void
732 catch_bort_iupvs01(int lunit, char *s01mnem, int s01mnem_str_len, int *iret)
733 {
734  /* Set the target location to which to return if a bort error is caught. */
735  if ( setjmp(context) == 1 ) return;
736 
737  /* Add a trailing null to s01mnem, for use with get_c_string_length inside of iupvs01_f. */
738  s01mnem[s01mnem_str_len] = '\0';
739 
740  /* Recursively call the function. */
741  *iret = iupvs01_f(lunit, s01mnem);
742 }
743 
752 void
753 catch_bort_nmsub(int lunit, int *iret)
754 {
755  /* Set the target location to which to return if a bort error is caught. */
756  if ( setjmp(context) == 1 ) return;
757 
758  /* Recursively call the function. */
759  *iret = nmsub_f(lunit);
760 }
761 
771 void
772 catch_bort_pkvs01(char *s01mnem, int s01mnem_str_len, int ival)
773 {
774  /* Set the target location to which to return if a bort error is caught. */
775  if ( setjmp(context) == 1 ) return;
776 
777  /* Add a trailing null to s01mnem, for use with get_c_string_length inside of pkvs01_f. */
778  s01mnem[s01mnem_str_len] = '\0';
779 
780  /* Recursively call the subroutine. */
781  pkvs01_f(s01mnem, ival);
782 }
783 
796 void
797 catch_bort_datebf(int lunit, int *mear, int *mmon, int *mday, int *mour, int *idate)
798 {
799  /* Set the target location to which to return if a bort error is caught. */
800  if ( setjmp(context) == 1 ) return;
801 
802  /* Recursively call the subroutine. */
803  datebf_f(lunit, mear, mmon, mday, mour, idate);
804 }
805 
815 void
816 catch_bort_dumpbf(int lunit, int *jdate, int *jdump)
817 {
818  /* Set the target location to which to return if a bort error is caught. */
819  if ( setjmp(context) == 1 ) return;
820 
821  /* Recursively call the subroutine. */
822  dumpbf_f(lunit, jdate, jdump);
823 }
824 
833 void
834 catch_bort_minimg(int lunit, int mini)
835 {
836  /* Set the target location to which to return if a bort error is caught. */
837  if ( setjmp(context) == 1 ) return;
838 
839  /* Recursively call the subroutine. */
840  minimg_f(lunit, mini);
841 }
842 
853 void
854 catch_bort_upds3(int *mbay, int lcds3, char (*ccds3)[6], int *nds3)
855 {
856  /* Set the target location to which to return if a bort error is caught. */
857  if ( setjmp(context) == 1 ) return;
858 
859  /* Recursively call the subroutine. */
860  upds3_f(mbay, lcds3, ccds3, nds3);
861 }
862 
873 void
874 catch_bort_pkbs1(int ival, int *mbay, char *s1mnem, int s1mnem_str_len)
875 {
876  /* Set the target location to which to return if a bort error is caught. */
877  if ( setjmp(context) == 1 ) return;
878 
879  /* Add a trailing null to s1mnem, for use with get_c_string_length inside of pkbs1_f. */
880  s1mnem[s1mnem_str_len] = '\0';
881 
882  /* Recursively call the subroutine. */
883  pkbs1_f(ival, mbay, s1mnem);
884 }
885 
898 void
899 catch_bort_strcpt(char *cf, int iyr, int imo, int idy, int ihr, int imi)
900 {
901  /* Set the target location to which to return if a bort error is caught. */
902  if ( setjmp(context) == 1 ) return;
903 
904  /* Recursively call the subroutine. */
905  strcpt_f(cf, iyr, imo, idy, ihr, imi);
906 }
907 
921 void
922 catch_bort_rtrcpt(int lunit, int *iyr, int *imo, int *idy, int *ihr, int *imi, int *iret)
923 {
924  /* Set the target location to which to return if a bort error is caught. */
925  if ( setjmp(context) == 1 ) return;
926 
927  /* Recursively call the subroutine. */
928  rtrcpt_f(lunit, iyr, imo, idy, ihr, imi, iret);
929 }
930 
940 void
941 catch_bort_atrcpt(int *msgin, int lmsgot, int *msgot)
942 {
943  /* Set the target location to which to return if a bort error is caught. */
944  if ( setjmp(context) == 1 ) return;
945 
946  /* Recursively call the subroutine. */
947  atrcpt_f(msgin, lmsgot, msgot);
948 }
949 
958 void
959 catch_bort_dxdump(int lunit, int luprt)
960 {
961  /* Set the target location to which to return if a bort error is caught. */
962  if ( setjmp(context) == 1 ) return;
963 
964  /* Recursively call the subroutine. */
965  dxdump_f(lunit, luprt);
966 }
967 
976 void
977 catch_bort_ufbdmp(int lunit, int luprt)
978 {
979  /* Set the target location to which to return if a bort error is caught. */
980  if ( setjmp(context) == 1 ) return;
981 
982  /* Recursively call the subroutine. */
983  ufbdmp_f(lunit, luprt);
984 }
985 
994 void
995 catch_bort_ufdump(int lunit, int luprt)
996 {
997  /* Set the target location to which to return if a bort error is caught. */
998  if ( setjmp(context) == 1 ) return;
999 
1000  /* Recursively call the subroutine. */
1001  ufdump_f(lunit, luprt);
1002 }
1003 
1012 void
1013 catch_bort_copybf(int lunin, int lunot)
1014 {
1015  /* Set the target location to which to return if a bort error is caught. */
1016  if ( setjmp(context) == 1 ) return;
1017 
1018  /* Recursively call the subroutine. */
1019  copybf_f(lunin, lunot);
1020 }
1021 
1030 void
1031 catch_bort_copymg(int lunin, int lunot)
1032 {
1033  /* Set the target location to which to return if a bort error is caught. */
1034  if ( setjmp(context) == 1 ) return;
1035 
1036  /* Recursively call the subroutine. */
1037  copymg_f(lunin, lunot);
1038 }
1039 
1049 void
1050 catch_bort_copysb(int lunin, int lunot, int *iret)
1051 {
1052  /* Set the target location to which to return if a bort error is caught. */
1053  if ( setjmp(context) == 1 ) return;
1054 
1055  /* Recursively call the subroutine. */
1056  copysb_f(lunin, lunot, iret);
1057 }
1058 
1067 void
1068 catch_bort_ufbcpy(int lunin, int lunot)
1069 {
1070  /* Set the target location to which to return if a bort error is caught. */
1071  if ( setjmp(context) == 1 ) return;
1072 
1073  /* Recursively call the subroutine. */
1074  ufbcpy_f(lunin, lunot);
1075 }
1076 
1091 void
1092 catch_bort_nemdefs(int lunit, char *cnemo, int lcn, char *ccelem, int ccelem_str_len,
1093  char *ccunit, int ccunit_str_len, int *iret)
1094 {
1095  /* Set the target location to which to return if a bort error is caught. */
1096  if ( setjmp(context) == 1 ) return;
1097 
1098  /* Add a trailing null to cnemo, for use with get_c_string_length inside of nemdefs_f. */
1099  cnemo[lcn] = '\0';
1100 
1101  /* Recursively call the subroutine. */
1102  nemdefs_f(lunit, cnemo, ccunit, ccunit_str_len, ccelem, ccelem_str_len, iret);
1103 }
1104 
1119 void
1120 catch_bort_nemspecs(int lunit, char *cnemo, int lcn, int nnemo, int *nscl, int *nref, int *nbts, int *iret)
1121 {
1122  /* Set the target location to which to return if a bort error is caught. */
1123  if ( setjmp(context) == 1 ) return;
1124 
1125  /* Add a trailing null to cnemo, for use with get_c_string_length inside of nemspecs_f. */
1126  cnemo[lcn] = '\0';
1127 
1128  /* Recursively call the subroutine. */
1129  nemspecs_f(lunit, cnemo, nnemo, nscl, nref, nbts, iret);
1130 }
1131 
1144 void
1145 catch_bort_readerme(int *mesg, int lunit, char *subset, int *jdate, int subset_str_len, int *iret)
1146 {
1147  /* Set the target location to which to return if a bort error is caught. */
1148  if ( setjmp(context) == 1 ) return;
1149 
1150  /* Recursively call the subroutine. */
1151  readerme_f(mesg, lunit, subset, jdate, subset_str_len, iret);
1152 }
1153 
1163 void
1164 catch_bort_rdmgsb(int lunit, int imsg, int isub)
1165 {
1166  /* Set the target location to which to return if a bort error is caught. */
1167  if ( setjmp(context) == 1 ) return;
1168 
1169  /* Recursively call the subroutine. */
1170  rdmgsb_f(lunit, imsg, isub);
1171 }
1172 
1183 void
1184 catch_bort_ufbmem(int lunit, int inew, int *iret, int *iunit)
1185 {
1186  /* Set the target location to which to return if a bort error is caught. */
1187  if ( setjmp(context) == 1 ) return;
1188 
1189  /* Recursively call the subroutine. */
1190  ufbmem_f(lunit, inew, iret, iunit);
1191 }
1192 
1204 void
1205 catch_bort_ufbmex(int lunit, int lundx, int inew, int *iret, int *mesg)
1206 {
1207  /* Set the target location to which to return if a bort error is caught. */
1208  if ( setjmp(context) == 1 ) return;
1209 
1210  /* Recursively call the subroutine. */
1211  ufbmex_f(lunit, lundx, inew, iret, mesg);
1212 }
1213 
1225 void
1226 catch_bort_ufbmms(int imsg, int isub, char *subset, int *jdate, int subset_str_len)
1227 {
1228  /* Set the target location to which to return if a bort error is caught. */
1229  if ( setjmp(context) == 1 ) return;
1230 
1231  /* Recursively call the subroutine. */
1232  ufbmms_f(imsg, isub, subset, jdate, subset_str_len);
1233 }
1234 
1245 void
1246 catch_bort_ufbmns(int irep, char *subset, int *idate, int subset_str_len)
1247 {
1248  /* Set the target location to which to return if a bort error is caught. */
1249  if ( setjmp(context) == 1 ) return;
1250 
1251  /* Recursively call the subroutine. */
1252  ufbmns_f(irep, subset, idate, subset_str_len);
1253 }
1254 
1266 void
1267 catch_bort_rdmemm(int imsg, char *subset, int *jdate, int subset_str_len, int *iret)
1268 {
1269  /* Set the target location to which to return if a bort error is caught. */
1270  if ( setjmp(context) == 1 ) return;
1271 
1272  /* Recursively call the subroutine. */
1273  rdmemm_f(imsg, subset, jdate, subset_str_len, iret);
1274 }
1275 
1284 void
1285 catch_bort_rdmems(int isub, int *iret)
1286 {
1287  /* Set the target location to which to return if a bort error is caught. */
1288  if ( setjmp(context) == 1 ) return;
1289 
1290  /* Recursively call the subroutine. */
1291  rdmems_f(isub, iret);
1292 }
1293 
1308 void
1309 catch_bort_ufbrms(int imsg, int isub, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
1310 {
1311  /* Set the target location to which to return if a bort error is caught. */
1312  if ( setjmp(context) == 1 ) return;
1313 
1314  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbrms_f. */
1315  cstr[cstr_len] = '\0';
1316 
1317  /* Recursively call the subroutine. */
1318  ufbrms_f(imsg, isub, (void**) &usr, i1, i2, iret, cstr);
1319 }
1320 
1333 void
1334 catch_bort_ufbtam(double *tab, int i1, int i2, int *iret, char *cstr, int cstr_len)
1335 {
1336  /* Set the target location to which to return if a bort error is caught. */
1337  if ( setjmp(context) == 1 ) return;
1338 
1339  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbtam_f. */
1340  cstr[cstr_len] = '\0';
1341 
1342  /* Recursively call the subroutine. */
1343  ufbtam_f((void**) &tab, i1, i2, iret, cstr);
1344 }
1345 
1353 void
1355 {
1356  /* Set the target location to which to return if a bort error is caught. */
1357  if ( setjmp(context) == 1 ) return;
1358 
1359  /* Recursively call the subroutine. */
1360  cpymem_f(lunot);
1361 }
1362 
1371 void
1372 catch_bort_ufbcup(int lunin, int lunot)
1373 {
1374  /* Set the target location to which to return if a bort error is caught. */
1375  if ( setjmp(context) == 1 ) return;
1376 
1377  /* Recursively call the subroutine. */
1378  ufbcup_f(lunin, lunot);
1379 }
1380 
1388 void
1390 {
1391  /* Set the target location to which to return if a bort error is caught. */
1392  if ( setjmp(context) == 1 ) return;
1393 
1394  /* Recursively call the subroutine. */
1395  stdmsg_f(cf);
1396 }
1397 
1408 void
1409 catch_bort_stndrd(int lunit, int *msgin, int lmsgot, int *msgot)
1410 {
1411  /* Set the target location to which to return if a bort error is caught. */
1412  if ( setjmp(context) == 1 ) return;
1413 
1414  /* Recursively call the subroutine. */
1415  stndrd_f(lunit, msgin, lmsgot, msgot);
1416 }
1417 
1425 void
1427 {
1428  /* Set the target location to which to return if a bort error is caught. */
1429  if ( setjmp(context) == 1 ) return;
1430 
1431  /* Recursively call the subroutine. */
1432  cmpmsg_f(cf);
1433 }
1434 
1443 void
1445 {
1446  /* Set the target location to which to return if a bort error is caught. */
1447  if ( setjmp(context) == 1 ) return;
1448 
1449  /* Recursively call the subroutine. */
1450  codflg_f(cf);
1451 }
1452 
1461 void
1462 catch_bort_bvers(char *verstr, int verstr_len)
1463 {
1464  /* Set the target location to which to return if a bort error is caught. */
1465  if ( setjmp(context) == 1 ) return;
1466 
1467  /* Recursively call the subroutine. */
1468  bvers_f(verstr, verstr_len);
1469 }
1470 
1485 void
1486 catch_bort_gettagpr(int lunit, char *tagch, int tagch_len, int ntagch,
1487  char *tagpr, int tagpr_len, int *ntpchr, int *iret)
1488 {
1489  /* Set the target location to which to return if a bort error is caught. */
1490  if ( setjmp(context) == 1 ) {
1491  *ntpchr = 1;
1492  return;
1493  }
1494 
1495  /* Add a trailing null to tagch, for use with get_c_string_length inside of gettagpr_f. */
1496  tagch[tagch_len] = '\0';
1497 
1498  /* Recursively call the subroutine. */
1499  gettagpr_f(lunit, tagch, ntagch, tagpr, tagpr_len, iret);
1500 
1501  *ntpchr = (int) strlen(tagpr);
1502 }
1503 
1519 void
1520 catch_bort_gettagre(int lunit, char *tagi, int tagi_len, int ntagi,
1521  char *tagre, int tagre_len, int *ntagre, int *ntrchr, int *iret)
1522 {
1523  /* Set the target location to which to return if a bort error is caught. */
1524  if ( setjmp(context) == 1 ) {
1525  *ntrchr = 1;
1526  return;
1527  }
1528 
1529  /* Add a trailing null to tagi, for use with get_c_string_length inside of gettagre_f. */
1530  tagi[tagi_len] = '\0';
1531 
1532  /* Recursively call the subroutine. */
1533  gettagre_f(lunit, tagi, ntagi, tagre, tagre_len, ntagre, iret);
1534 
1535  *ntrchr = (int) strlen(tagre);
1536 }
1537 
1547 void
1548 catch_bort_cnved4(int *msgin, int lmsgot, int *msgot)
1549 {
1550  /* Set the target location to which to return if a bort error is caught. */
1551  if ( setjmp(context) == 1 ) return;
1552 
1553  /* Recursively call the subroutine. */
1554  cnved4_f(msgin, lmsgot, msgot);
1555 }
1556 
1567 void
1568 catch_bort_lcmgdf(int lunit, char *subset, int subset_str_len, int *iret)
1569 {
1570  /* Set the target location to which to return if a bort error is caught. */
1571  if ( setjmp(context) == 1 ) return;
1572 
1573  /* Add a trailing null to subset, for use with get_c_string_length inside of lcmgdf_f. */
1574  subset[subset_str_len] = '\0';
1575 
1576  /* Recursively call the function. */
1577  *iret = lcmgdf_f(lunit, subset);
1578 }
1579 
1595 void
1596 catch_bort_setvalnb(int lunit, char *tagpv, int tagpv_len, int ntagpv,
1597  char *tagnb, int tagnb_len, int ntagnb, double r8val, int *iret)
1598 {
1599  /* Set the target location to which to return if a bort error is caught. */
1600  if ( setjmp(context) == 1 ) return;
1601 
1602  /* Add trailing nulls to input strings, for use with get_c_string_length inside of setvalnb_f. */
1603  tagpv[tagpv_len] = '\0';
1604  tagnb[tagnb_len] = '\0';
1605 
1606  /* Recursively call the subroutine. */
1607  setvalnb_f(lunit, tagpv, ntagpv, tagnb, ntagnb, r8val, iret);
1608 }
1609 
1624 void
1625 catch_bort_getvalnb(int lunit, char *tagpv, int tagpv_len, int ntagpv,
1626  char *tagnb, int tagnb_len, int ntagnb, double *r8val)
1627 {
1628  /* Set the target location to which to return if a bort error is caught. */
1629  if ( setjmp(context) == 1 ) return;
1630 
1631  /* Add trailing nulls to input strings, for use with get_c_string_length inside of getvalnb_f. */
1632  tagpv[tagpv_len] = '\0';
1633  tagnb[tagnb_len] = '\0';
1634 
1635  /* Recursively call the function. */
1636  *r8val = getvalnb_f(lunit, tagpv, ntagpv, tagnb, ntagnb);
1637 }
1638 
1649 void
1650 catch_bort_getabdb(int lunit, int itab, char (*ctabdb)[128], int *jtab)
1651 {
1652  /* Set the target location to which to return if a bort error is caught. */
1653  if ( setjmp(context) == 1 ) return;
1654 
1655  /* Recursively call the subroutine. */
1656  getabdb_f(lunit, itab, ctabdb, jtab);
1657 }
1658 
1671 void
1672 catch_bort_ufbget(int lunit, double *tab, int i1, int *iret, char *cstr, int cstr_len)
1673 {
1674  /* Set the target location to which to return if a bort error is caught. */
1675  if ( setjmp(context) == 1 ) return;
1676 
1677  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbget_f. */
1678  cstr[cstr_len] = '\0';
1679 
1680  /* Recursively call the subroutine. */
1681  ufbget_f(lunit, tab, i1, iret, cstr);
1682 }
1683 
1699 void
1700 catch_bort_ufbinx(int lunit, int imsg, int isub, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
1701 {
1702  /* Set the target location to which to return if a bort error is caught. */
1703  if ( setjmp(context) == 1 ) return;
1704 
1705  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbinx_f. */
1706  cstr[cstr_len] = '\0';
1707 
1708  /* Recursively call the subroutine. */
1709  ufbinx_f(lunit, imsg, isub, (void**) &usr, i1, i2, iret, cstr);
1710 }
1711 
1725 void
1726 catch_bort_ufbovr(int lunit, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
1727 {
1728  /* Set the target location to which to return if a bort error is caught. */
1729  if ( setjmp(context) == 1 ) return;
1730 
1731  /* Add a trailing null to cstr, for use with get_c_string_length inside of ufbovr_f. */
1732  cstr[cstr_len] = '\0';
1733 
1734  /* Recursively call the subroutine. */
1735  ufbovr_f(lunit, (void**) &usr, i1, i2, iret, cstr);
1736 }
1737 
1746 void
1747 catch_bort_ifbget(int lunit, int *iret)
1748 {
1749  /* Set the target location to which to return if a bort error is caught. */
1750  if ( setjmp(context) == 1 ) return;
1751 
1752  /* Recursively call the function. */
1753  *iret = ifbget_f(lunit);
1754 }
1755 
1764 void
1765 catch_bort_igetsc(int lunit, int *iret)
1766 {
1767  /* Set the target location to which to return if a bort error is caught. */
1768  if ( setjmp(context) == 1 ) return;
1769 
1770  /* Recursively call the function. */
1771  *iret = igetsc_f(lunit);
1772 }
1773 
1782 void
1783 catch_bort_wrdxtb(int lundx, int lunot)
1784 {
1785  /* Set the target location to which to return if a bort error is caught. */
1786  if ( setjmp(context) == 1 ) return;
1787 
1788  /* Recursively call the subroutine. */
1789  wrdxtb_f(lundx, lunot);
1790 }
1791 
1800 void
1801 catch_bort_mesgbf(int lunit, int *mesgtyp)
1802 {
1803  /* Set the target location to which to return if a bort error is caught. */
1804  if ( setjmp(context) == 1 ) return;
1805 
1806  /* Recursively call the subroutine. */
1807  mesgbf_f(lunit, mesgtyp);
1808 }
1809 
1819 void
1820 catch_bort_mesgbc(int lunin, int *mesgtyp, int *icomp)
1821 {
1822  /* Set the target location to which to return if a bort error is caught. */
1823  if ( setjmp(context) == 1 ) return;
1824 
1825  /* Recursively call the subroutine. */
1826  mesgbc_f(lunin, mesgtyp, icomp);
1827 }
1828 
1837 void
1838 catch_bort_invmrg(int lubfi, int lubfj)
1839 {
1840  /* Set the target location to which to return if a bort error is caught. */
1841  if ( setjmp(context) == 1 ) return;
1842 
1843  /* Recursively call the subroutine. */
1844  invmrg_f(lubfi, lubfj);
1845 }
1846 
1857 void
1858 catch_bort_iupm(char *cbay, int nbits, int *iret, int lcbay)
1859 {
1860 
1861  /* Set the target location to which to return if a bort error is caught. */
1862  if (setjmp(context) == 1) return;
1863 
1864  /* Recursively call the function. */
1865  *iret = iupm_f(cbay, nbits, lcbay);
1866 }
1867 
1878 void
1879 catch_bort_ipkm(char *cbay, int nbyt, int ival, int cbay_len)
1880 {
1881 
1882  /* Set the target location to which to return if a bort error is caught. */
1883  if (setjmp(context) == 1) return;
1884 
1885  /* Recursively call the subroutine. */
1886  ipkm_f(cbay, nbyt, ival, cbay_len);
1887 }
void catch_bort_ufbmms(int imsg, int isub, char *subset, int *jdate, int subset_str_len)
Catch any bort error inside of subroutine ufbmms().
Definition: borts.c:1226
void catch_bort_ufbtam(double *tab, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbtam().
Definition: borts.c:1334
void catch_bort_lcmgdf(int lunit, char *subset, int subset_str_len, int *iret)
Catch any bort error inside of function lcmgdf().
Definition: borts.c:1568
void catch_bort_ufbint(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbint().
Definition: borts.c:266
void catch_bort_drfini(int lunit, int *mdrf, int ndrf, char *drftag, int drftag_len)
Catch any bort error inside of subroutine drfini().
Definition: borts.c:369
void catch_bort_wrdxtb(int lundx, int lunot)
Catch any bort error inside of subroutine wrdxtb().
Definition: borts.c:1783
void catch_bort_ufbpos(int lunit, int irec, int isub, char *subset, int *jdate, int subset_str_len)
Catch any bort error inside of subroutine ufbpos().
Definition: borts.c:694
void catch_bort_status(int lunit, int *lun, int *il, int *im)
Catch any bort error inside of subroutine status().
Definition: borts.c:77
void catch_bort_ufbqcp(int lunit, int iqcp, char *cnemo, int cnemo_len, int *ncn)
Catch any bort error inside of subroutine ufbqcp().
Definition: borts.c:518
void catch_bort_atrcpt(int *msgin, int lmsgot, int *msgot)
Catch any bort error inside of subroutine atrcpt().
Definition: borts.c:941
void catch_bort_openbf(int lunit, char *cio, int lundx, int cio_str_len)
Catch any bort error inside of subroutine openbf().
Definition: borts.c:37
void catch_bort_dxdump(int lunit, int luprt)
Catch any bort error inside of subroutine dxdump().
Definition: borts.c:959
void catch_bort_igetsc(int lunit, int *iret)
Catch any bort error inside of function igetsc().
Definition: borts.c:1765
void catch_bort_iupm(char *cbay, int nbits, int *iret, int lcbay)
Catch any bort error inside of function iupm().
Definition: borts.c:1858
void catch_bort_openmg(int lunit, char *subset, int subset_str_len, int jdate)
Catch any bort error inside of subroutine openmg().
Definition: borts.c:143
void catch_bort_writlc(int lunit, char *cstr, int cstr_len, char *cchr, int cchr_len)
Catch any bort error inside of subroutine writlc().
Definition: borts.c:449
void catch_bort_dumpbf(int lunit, int *jdate, int *jdump)
Catch any bort error inside of subroutine dumpbf().
Definition: borts.c:816
void catch_bort_crbmg(char *bmg, int mxmb, int *nmb, int *iret)
Catch any bort error inside of function crbmg().
Definition: borts.c:625
void catch_bort_pkbs1(int ival, int *mbay, char *s1mnem, int s1mnem_str_len)
Catch any bort error inside of subroutine pkbs1().
Definition: borts.c:874
void catch_bort_setvalnb(int lunit, char *tagpv, int tagpv_len, int ntagpv, char *tagnb, int tagnb_len, int ntagnb, double r8val, int *iret)
Catch any bort error inside of subroutine setvalnb().
Definition: borts.c:1596
void catch_bort_getcfmng(int lunit, char *cnemoi, int lcni, int ivali, char *cnemod, int lcnd, int ivald, char *cmeang_c, int lcmgc, int *lnmng, int *iret)
Catch any bort error inside of subroutine getcfmng().
Definition: borts.c:550
void catch_bort_ufbdmp(int lunit, int luprt)
Catch any bort error inside of subroutine ufbdmp().
Definition: borts.c:977
void catch_bort_ufbqcd(int lunit, char *cnemo, int *iqcd, int cnemo_len)
Catch any bort error inside of subroutine ufbqcd().
Definition: borts.c:494
void catch_bort_cmpmsg(char *cf)
Catch any bort error inside of subroutine cmpmsg().
Definition: borts.c:1426
void catch_bort_bvers(char *verstr, int verstr_len)
Catch any bort error inside of subroutine bvers().
Definition: borts.c:1462
void catch_bort_ufbinx(int lunit, int imsg, int isub, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbinx().
Definition: borts.c:1700
void catch_bort_closbf(int lunit)
Catch any bort error inside of subroutine closbf().
Definition: borts.c:57
void catch_bort_ufbtab(int lunin, double *tab, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbtab().
Definition: borts.c:669
void catch_bort_ufbcnt(int lunit, int *kmsg, int *ksub)
Catch any bort error inside of subroutine ufbcnt().
Definition: borts.c:474
void catch_bort_ufbmem(int lunit, int inew, int *iret, int *iunit)
Catch any bort error inside of subroutine ufbmem().
Definition: borts.c:1184
void catch_bort_ifbget(int lunit, int *iret)
Catch any bort error inside of function ifbget().
Definition: borts.c:1747
void catch_bort_nemspecs(int lunit, char *cnemo, int lcn, int nnemo, int *nscl, int *nref, int *nbts, int *iret)
Catch any bort error inside of subroutine nemspecs().
Definition: borts.c:1120
void catch_bort_copysb(int lunin, int lunot, int *iret)
Catch any bort error inside of subroutine copysb().
Definition: borts.c:1050
void catch_bort_rdmemm(int imsg, char *subset, int *jdate, int subset_str_len, int *iret)
Catch any bort error inside of subroutine rdmemm().
Definition: borts.c:1267
void catch_bort_mesgbc(int lunin, int *mesgtyp, int *icomp)
Catch any bort error inside of subroutine mesgbc().
Definition: borts.c:1820
void catch_bort_rtrcpt(int lunit, int *iyr, int *imo, int *idy, int *ihr, int *imi, int *iret)
Catch any bort error inside of subroutine rtrcpt().
Definition: borts.c:922
void catch_bort_codflg(char *cf)
Catch any bort error inside of subroutine codflg().
Definition: borts.c:1444
void catch_bort_ufbovr(int lunit, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbovr().
Definition: borts.c:1726
void catch_bort_datelen(int len)
Catch any bort error inside of subroutine datelen().
Definition: borts.c:712
void catch_bort_readerme(int *mesg, int lunit, char *subset, int *jdate, int subset_str_len, int *iret)
Catch any bort error inside of subroutine readerme().
Definition: borts.c:1145
void catch_bort_ufbmex(int lunit, int lundx, int inew, int *iret, int *mesg)
Catch any bort error inside of subroutine ufbmex().
Definition: borts.c:1205
void catch_bort_ufbcpy(int lunin, int lunot)
Catch any bort error inside of subroutine ufbcpy().
Definition: borts.c:1068
void catch_bort_upftbv(int lunit, char *cnemo, int lcn, double val, int *ibit, int mxib, int *nib)
Catch any bort error inside of subroutine upftbv().
Definition: borts.c:583
void catch_bort_readsb(int lunit, int *iret)
Catch any bort error inside of subroutine readsb().
Definition: borts.c:206
void catch_bort_rdmems(int isub, int *iret)
Catch any bort error inside of subroutine rdmems().
Definition: borts.c:1285
void catch_bort_stndrd(int lunit, int *msgin, int lmsgot, int *msgot)
Catch any bort error inside of subroutine stndrd().
Definition: borts.c:1409
void catch_bort_cnved4(int *msgin, int lmsgot, int *msgot)
Catch any bort error inside of subroutine cnved4().
Definition: borts.c:1548
void catch_bort_getabdb(int lunit, int itab, char(*ctabdb)[128], int *jtab)
Catch any bort error inside of subroutine getabdb().
Definition: borts.c:1650
void catch_bort_readns(int lunit, char *subset, int *jdate, int subset_str_len, int *iret)
Catch any bort error inside of subroutine readns().
Definition: borts.c:186
void catch_bort_stdmsg(char *cf)
Catch any bort error inside of subroutine stdmsg().
Definition: borts.c:1389
void catch_bort_ipkm(char *cbay, int nbyt, int ival, int cbay_len)
Catch any bort error inside of subroutine ipkm().
Definition: borts.c:1879
void catch_bort_nemdefs(int lunit, char *cnemo, int lcn, char *ccelem, int ccelem_str_len, char *ccunit, int ccunit_str_len, int *iret)
Catch any bort error inside of subroutine nemdefs().
Definition: borts.c:1092
void catch_bort_copymg(int lunin, int lunot)
Catch any bort error inside of subroutine copymg().
Definition: borts.c:1031
void catch_bort_ufbevn(int lunit, double *usr, int i1, int i2, int i3, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbevn().
Definition: borts.c:345
void catch_bort_rdmgsb(int lunit, int imsg, int isub)
Catch any bort error inside of subroutine rdmgsb().
Definition: borts.c:1164
void catch_bort_getvalnb(int lunit, char *tagpv, int tagpv_len, int ntagpv, char *tagnb, int tagnb_len, int ntagnb, double *r8val)
Catch any bort error inside of function getvalnb().
Definition: borts.c:1625
void catch_bort_datebf(int lunit, int *mear, int *mmon, int *mday, int *mour, int *idate)
Catch any bort error inside of subroutine datebf().
Definition: borts.c:797
void catch_bort_writsb(int lunit)
Catch any bort error inside of subroutine writsb().
Definition: borts.c:223
void catch_bort_writsa(int lunxx, int bufr_len, int *bufr, int *nbufr)
Catch any bort error inside of subroutine writsa().
Definition: borts.c:243
void catch_bort_gettagpr(int lunit, char *tagch, int tagch_len, int ntagch, char *tagpr, int tagpr_len, int *ntpchr, int *iret)
Catch any bort error inside of subroutine gettagpr().
Definition: borts.c:1486
void catch_bort_readlc(int lunit, char *cstr, int cstr_len, char *chr, int chr_len, int *nchr)
Catch any bort error inside of subroutine readlc().
Definition: borts.c:420
void catch_bort_mesgbf(int lunit, int *mesgtyp)
Catch any bort error inside of subroutine mesgbf().
Definition: borts.c:1801
void catch_bort_ufbrep(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbrep().
Definition: borts.c:292
void catch_bort_pkvs01(char *s01mnem, int s01mnem_str_len, int ival)
Catch any bort error inside of subroutine pkvs01().
Definition: borts.c:772
void catch_bort_invmrg(int lubfi, int lubfj)
Catch any bort error inside of subroutine invmrg().
Definition: borts.c:1838
void catch_bort_ufbcup(int lunin, int lunot)
Catch any bort error inside of subroutine ufbcup().
Definition: borts.c:1372
void catch_bort_closmg(int lunit)
Catch any bort error inside of subroutine closmg().
Definition: borts.c:163
void catch_bort_openmb(int lunit, char *subset, int subset_str_len, int jdate)
Catch any bort error inside of subroutine openmb().
Definition: borts.c:120
void catch_bort_copybf(int lunin, int lunot)
Catch any bort error inside of subroutine copybf().
Definition: borts.c:1013
void catch_bort_readmg(int lunxx, char *subset, int *jdate, int subset_str_len, int *iret)
Catch any bort error inside of subroutine readmg().
Definition: borts.c:100
void catch_bort_cwbmg(const char *bmg, int nmb, int *iret)
Catch any bort error inside of function cwbmg().
Definition: borts.c:645
void catch_bort_strcpt(char *cf, int iyr, int imo, int idy, int ihr, int imi)
Catch any bort error inside of subroutine strcpt().
Definition: borts.c:899
void catch_bort_cpymem(int lunot)
Catch any bort error inside of subroutine cpymem().
Definition: borts.c:1354
void catch_bort_gettagre(int lunit, char *tagi, int tagi_len, int ntagi, char *tagre, int tagre_len, int *ntagre, int *ntrchr, int *iret)
Catch any bort error inside of subroutine gettagre().
Definition: borts.c:1520
void catch_bort_minimg(int lunit, int mini)
Catch any bort error inside of subroutine minimg().
Definition: borts.c:834
void catch_bort_cobfl(const char *bfl, char io)
Catch any bort error inside of function cobfl().
Definition: borts.c:604
void catch_bort_ufbseq(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbseq().
Definition: borts.c:395
void catch_bort_nmsub(int lunit, int *iret)
Catch any bort error inside of function nmsub().
Definition: borts.c:753
void catch_bort_ufdump(int lunit, int luprt)
Catch any bort error inside of subroutine ufdump().
Definition: borts.c:995
void bort_goto_target(void)
Return to the previously-set target location after a bort error.
Definition: borts.c:21
void catch_bort_ufbrms(int imsg, int isub, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbrms().
Definition: borts.c:1309
void catch_bort_ufbmns(int irep, char *subset, int *idate, int subset_str_len)
Catch any bort error inside of subroutine ufbmns().
Definition: borts.c:1246
void catch_bort_iupvs01(int lunit, char *s01mnem, int s01mnem_str_len, int *iret)
Catch any bort error inside of function iupvs01().
Definition: borts.c:732
void catch_bort_ufbget(int lunit, double *tab, int i1, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbget().
Definition: borts.c:1672
void catch_bort_upds3(int *mbay, int lcds3, char(*ccds3)[6], int *nds3)
Catch any bort error inside of subroutine upds3().
Definition: borts.c:854
void catch_bort_ufbstp(int lunin, double *usr, int i1, int i2, int *iret, char *cstr, int cstr_len)
Catch any bort error inside of subroutine ufbstp().
Definition: borts.c:318
jmp_buf context
Context information for returning to an application program.
Definition: borts.c:13
void closbf_f(int bufr_unit)
Close a previously opened file and disconnect it from the library.
void ufbtab_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from every data subset in a BUFR file.
void gettagre_f(int lunit, const char *tagi, int ntagi, char *tagre, int tagre_len, int *ntagre, int *iret)
Get the parent for a specified occurrence of a Table B or Table D mnemonic.
void getabdb_f(int lunit, int itab, char(*ctabdb)[128], int *jtab)
Get Table B and Table D information from the internal DX tables.
void rdmgsb_f(int lunit, int imsg, int isub)
Read a specified data subset from a BUFR file.
int iupm_f(const char *cbay, int nbits, int lcbay)
Decode an integer from a character string.
int nmsub_f(int bufr_unit)
Get the total number of data subsets available within a BUFR message.
void ufbrep_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read/write one or more data values from/to a data subset.
void copysb_f(int lunin, int lunot, int *iret)
Copy a BUFR data subset from one Fortran logical unit to another.
void openmg_f(int bufr_unit, const char *c_subset, int iddate)
Open a new message for output in a BUFR file that was previously opened for writing.
void copymg_f(int lunin, int lunot)
Copy a BUFR message from one Fortran logical unit to another.
void cpymem_f(int lunot)
Copy a message from internal arrays to a file.
void ufbevn_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int dim_3, int *iret, const char *table_b_mnemonic)
Read one or more data values from a data subset.
void drfini_f(int bufr_unit, int *mdrf, int ndrf, const char *table_d_mnemonic)
Explicitly initialize delayed replication factors for writing to a data subset.
void dumpbf_f(int bufr_unit, int *jdate, int *jdump)
Get the Section 1 date-time from the first two "dummy" messages of an NCEP dump file.
void ufbmem_f(int lunit, int inew, int *iret, int *iunit)
Read an entire BUFR file into internal arrays.
void ufbmms_f(int imsg, int isub, char *subset, int *jdate, int subset_len)
Read a specified data subset from internal arrays.
void rdmems_f(int isub, int *iret)
Read a specified data subset from internal arrays.
void copybf_f(int lunin, int lunot)
Copy an entire BUFR file from one Fortran logical unit to another.
void writsa_f(int bufr_unit, int bufr_len, int *bufr, int *nbufr)
Write the next data subset to a BUFR message, and return a copy of any completed message.
void rdmemm_f(int imsg, char *subset, int *jdate, int subset_len, int *iret)
Read a specified message from internal arrays.
void ipkm_f(char *cbay, int nbyt, int ival, int cbay_len)
Encode an integer into a character string.
void minimg_f(int bufr_unit, int mini)
Write a minutes value into Section 1 of a BUFR message.
void stndrd_f(int lunit, int *msgin, int lmsgot, int *msgot)
Standardize a copy of a BUFR message.
void ufbovr_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Overwrite one or more data values within a data subset.
void mesgbc_f(int lunin, int *mesgtyp, int *icomp)
Get information from the first data message in a BUFR file.
void ufbmex_f(int lunit, int lundx, int inew, int *iret, int *mesg)
Read an entire BUFR file into internal arrays.
void cobfl(const char *bfl, char io)
Open a new file for reading or writing BUFR messages via a C language interface.
Definition: crwbmg.c:119
void datebf_f(int bufr_unit, int *mear, int *mmon, int *mday, int *mour, int *idate)
Get the Section 1 date-time from the first data message of a BUFR file.
void cnved4_f(int *msgin, int lmsgot, int *msgot)
Convert a BUFR message to edition 4.
void mesgbf_f(int lunit, int *mesgtyp)
Get information from the first data message in a BUFR file.
void cwbmg(const char *bmg, int nmb, int *iret)
Write a BUFR message to the file that was opened via the most recent call to function cobfl() with io...
Definition: crwbmg.c:280
void ufbseq_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_d_mnemonic)
Read/write an entire sequence of data values from/to a data subset.
void ufdump_f(int lunit, int luprt)
Print a verbose listing of the contents of a data subset.
void strcpt_f(const char *cf, int iyr, int imo, int idy, int ihr, int imi)
Specify a tank receipt time to be written into Section 1 of all future BUFR messages.
void gettagpr_f(int lunit, const char *tagch, int ntagch, char *tagpr, int tagpr_len, int *iret)
Get the parent for a specified occurrence of a Table B or Table D mnemonic.
void openbf_f(int bufr_unit, const char *cio, int table_file_id)
Connect a new file to the library, or initialize the library, or change verbosity associated with alr...
void readerme_f(int *mesg, int bufr_unit, char *subset, int *iddate, int subset_len, int *ires)
Read a BUFR message from a memory array.
int ifbget_f(int bufr_unit)
Check if there are any more data subsets available within a BUFR message.
void ufbcup_f(int lunin, int lunot)
Copy unique elements of a data subset from one file to another.
void ufbqcd_f(int lunit, const char *cnemo, int *iqcd)
Return a prepbufr program code corresponding to a mnemonic.
void nemspecs_f(int file_unit, const char *mnemonic, int mnemonic_idx, int *scale, int *reference, int *bits, int *iret)
Get the scale factor, reference value and bit width associated with a specified occurrence of a Table...
void status_f(int file_unit, int *lun, int *il, int *im)
Check whether a file is connected to the library.
double getvalnb_f(int lunit, const char *tagpv, int ntagpv, const char *tagnb, int ntagnb)
Read a data value corresponding to a specific occurrence of a mnemonic.
void setvalnb_f(int lunit, const char *tagpv, int ntagpv, const char *tagnb, int ntagnb, double r8val, int *iret)
Write a data value corresponding to a specific occurrence of a mnemonic.
void codflg_f(const char *cf)
Specify whether to read code and flag table information from master BUFR tables.
void crbmg(char *bmg, int mxmb, int *nmb, int *iret)
Read the next BUFR message from the file that was opened via the most recent call to function cobfl()...
Definition: crwbmg.c:203
void ufbrms_f(int imsg, int isub, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from internal arrays.
void readsb_f(int bufr_unit, int *ires)
Read the next data subset from a BUFR message.
void stdmsg_f(const char *cf)
Specify whether to standardize future output BUFR messages.
void pkbs1_f(int ival, int *mbay, const char *c_s1m)
Specify a value to be written into Section 1 of a BUFR message.
void ufbpos_f(int bufr_unit, int irec, int isub, char *subset, int *iddate, int subset_len)
Jump forwards or backwards to a specified data subset within a BUFR file.
void nemdefs_f(int file_unit, const char *mnemonic, char *unit_c, int unit_str_len, char *desc_c, int desc_str_len, int *iret)
Get the element name and units associated with a Table B mnemonic.
void ufbget_f(int bufr_unit, double *tab, int i1, int *iret, const char *table_b_mnemonic)
Read one or more data values from a data subset without advancing the subset pointer.
void ufbinx_f(int bufr_unit, int imsg, int isub, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from a specified data subset.
void readmg_f(int bufr_unit, char *subset, int *iddate, int subset_len, int *ires)
Read the next message from a BUFR file.
int iupvs01_f(int bufr_unit, const char *c_s01m)
Read a specified value from within Section 0 or 1 of a BUFR message.
void upftbv_f(int lunit, const char *cnemo, double val, int *ibit, int mxib, int *nib)
Get the bit settings equivalent to a given numerical value for a flag table mnemonic.
void ufbint_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read/write one or more data values from/to a data subset.
void rtrcpt_f(int lunit, int *iyr, int *imo, int *idy, int *ihr, int *imi, int *iret)
Get the tank receipt time from Section 1 of a BUFR message.
void wrdxtb_f(int lundx, int lunot)
Generate DX BUFR table messages and write them to a output file.
void readlc_f(int lunit, const char *str_id, char *output_str, int output_str_len)
Read a long string from the BUFR file.
void upds3_f(int *mbay, int lcds3, char(*ccds3)[6], int *nds3)
Get the sequence of data descriptors contained within Section 3 of a BUFR message.
void dxdump_f(int lunit, int luprt)
Print a copy of the DX BUFR table associated with a specified Fortran logical unit.
void ufbdmp_f(int lunit, int luprt)
Print a verbose listing of the contents of a data subset.
void datelen_f(int len)
Specify the format of Section 1 date-time values that will be output by future calls to message-readi...
void getcfmng_f(int lunit, const char *cnemoi, int ivali, const char *cnemod, int ivald, char *cmeang_c, int lcmgc, int *iret)
Get the meaning of a numerical value from a code or flag table.
void closmg_f(int bufr_unit)
Close a BUFR message.
void openmb_f(int bufr_unit, const char *c_subset, int iddate)
Open a new message for output in a BUFR file that was previously opened for writing.
int igetsc_f(int bufr_unit)
Check for an abnormal status code associated with the processing of a file.
void ufbtam_f(void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read one or more data values from every data subset in internal arrays.
void bvers_f(char *cverstr, int cverstr_len)
Get the version number of the NCEPLIBS-bufr software.
void atrcpt_f(int *msgin, int lmsgot, int *msgot)
Read a BUFR message and output an equivalent message with a tank receipt time added to Section 1.
void ufbcpy_f(int lunin, int lunot)
Copy a BUFR data subset from one Fortran logical unit to another.
void readns_f(int bufr_unit, char *subset, int *iddate, int subset_len, int *ires)
Read the next data subset from a BUFR file.
void ufbmns_f(int irep, char *subset, int *idate, int subset_len)
Read a specified data subset from internal arrays.
void invmrg_f(int lubfi, int lubfj)
Merge parts of data subsets.
void ufbcnt_f(int lunit, int *kmsg, int *ksub)
Get the current location of the file pointer within a BUFR file.
void cmpmsg_f(const char *cf)
Specify the use of compression when writing BUFR messages.
void ufbstp_f(int bufr_unit, void **c_data, int dim_1, int dim_2, int *iret, const char *table_b_mnemonic)
Read/write one or more data values from/to a data subset.
void writsb_f(int bufr_unit)
Write the next data subset to a BUFR message.
void ufbqcp_f(int lunit, int iqcp, char *cnemo, int cnemo_len)
Return a mnemonic corresponding to a prepbufr program code.
void writlc_f(int lunit, const char *str, const char *chr)
Write a long string to the BUFR file.
int lcmgdf_f(int bufr_unit, const char *c_subset)
Check if a subset definition contains any long character strings.
void pkvs01_f(const char *c_s01m, int ival)
Specify a value to be written into Section 0 or 1 of all future BUFR messages.
Enable a number of NCEPLIBS-bufr subprograms to be called from within the C part of the library.
integer ibit
Bit pointer within ibay.
integer, dimension(:,:), allocatable mbay
Current BUFR message for each file ID.
character *(:), dimension(:), allocatable cstr
Character data value, if corresponding ityp value is set to 3.
integer *8, dimension(:), allocatable ival
BUFR data subset values.
integer, dimension(:), allocatable idate
Section 1 date-time of message.
real *8, dimension(:,:), allocatable, target val
Data values.