45 COMMON /hrdwrd/ nbytw,nbitw,iord(8)
46 COMMON /charac/ iascii,iatoe(0:255),ietoa(0:255)
49 CHARACTER*128 bort_str,errstr
50 CHARACTER*8 cint,dint,cvstr
51 CHARACTER*6 cndian,clang
87 10
IF(i.GE.65) goto 900
88 IF(mod(i,8).NE.0) goto 901
106 int = ishft(1,(nbytw-i)*8)
108 IF(cint(j:j).NE.dint(j:j)) goto 20
111 20
IF(j.GT.nbytw) goto 902
122 ELSEIF(ia.EQ.193)
THEN
423 errstr =
'=============== ' //
424 .
'WELCOME TO THE BUFR ARCHIVE LIBRARY' //
' =============='
426 WRITE ( unit=errstr, fmt=
'(A,I2)' )
427 .
' MACHINE CHARACTERISTICS: NUMBER OF BYTES PER WORD =', nbytw
429 WRITE ( unit=errstr, fmt=
'(A,I3)' )
430 .
' NUMBER OF BITS PER WORD =', nbitw
432 errstr =
' BYTE ORDER IS ' // cndian //
435 errstr =
' ' // clang //
436 .
' IS THE NATIVE LANGUAGE'
438 errstr =
'====================== VERSION: ' // cvstr //
439 .
'=========================='
448 900
WRITE(bort_str,
'("BUFRLIB: WRDLEN - MACHINE WORD LENGTH IS '//
449 .
'LIMITED TO 64 BITS (THIS MACHINE APPARENTLY HAS",I4," BIT '//
452 901
WRITE(bort_str,
'("BUFRLIB: WRDLEN - MACHINE WORD LENGTH (",I4,"'//
453 .
') IS NOT A MULTIPLE OF 8 (THIS MACHINE HAS WORDS NOT ON WHOLE'//
454 .
' BYTE BOUNDARIES!)")') i
456 902
WRITE(bort_str,
'("BUFRLIB: WRDLEN - BYTE ORDER CHECKING MISTAKE'//
457 . .GT.
', LOOP INDEX J (HERE =",I3,") IS NO. OF BYTES PER WORD '//
458 .
'ON THIS MACHINE (",I3,")")') j,nbytw
460 903
WRITE(bort_str,
'("BUFRLIB: WRDLEN - CAN''T DETERMINE MACHINE '//
461 .
'NATIVE LANGUAGE (CHAR. A UNPACKS TO INT.",I4," NEITHER ASCII '//
462 .
' (65) NOR EBCDIC (193)")') ia
function iupm(CBAY, NBITS)
THIS FUNCTION UNPACKS AND RETURNS A BINARY INTEGER WORD CONTAINED WITHIN NBITS BITS OF A CHARACTER ST...
subroutine wrdlen
This subroutine figures out some important information about the local machine on which the BUFRLIB s...
subroutine errwrt(STR)
This subroutine allows the user to specify a custom location for the logging of error and diagnostic ...
subroutine bort(STR)
This subroutine calls subroutine errwrt() to log an error message, then calls subroutine bort_exit() ...