FUNCTION dstmwrp_exp, axis, index, number ;+ ; NAME: ; dstmwrp_exp ; ; PURPOSE: ; Returns formatted string for exponents in graphical output ; ; CATEGORY: ; DustEMWrap, Distributed, LowLevel, Plotting ; ; CALLING SEQUENCE: ; dstmwrp_exp, axis, index, number ; ; INPUTS: ; axis : deprecated but kept for backwards compatibility ; index : deprecated but kept for backwards compatibility ; number : value to be converted to exponential as formatted string ; ; OPTIONAL INPUT PARAMETERS: ; None ; ; OUTPUTS: ; exponential as formatted string ; ; OPTIONAL OUTPUT PARAMETERS: ; ; ACCEPTED KEY-WORDS: ; ; COMMON BLOCKS: ; None ; ; SIDE EFFECTS: ; ; RESTRICTIONS: ; The DustEMWrap IDL code must be installed ; ; PROCEDURES AND SUBROUTINES USED: ; ; EXAMPLES ; expstr=dstmwrp_exp(axis, index, 15000.) ; ; MODIFICATION HISTORY: ; Written by IC ; Evolution details on the DustEMWrap gitlab. ; See http://dustemwrap.irap.omp.eu/ for FAQ and help. ;- ;A special case. IF number EQ 0 THEN RETURN, '0' ; Assuming multiples of 10 with format. ex = String(number, Format='(e8.0)') pt = StrPos(ex, '.') first = StrMid(ex, 0, pt) sign = StrMid(ex, pt+2, 1) thisExponent = StrMid(ex, pt+3) ; Shave off leading zero in exponent WHILE StrMid(thisExponent, 0, 1) EQ '0' DO thisExponent = StrMid(thisExponent, 1) ; Fix for sign and missing zero problem. IF (Long(thisExponent) EQ 0) THEN BEGIN sign = '' thisExponent = '0' ENDIF frmt = '10!U' IF !dustem_mlog then frmt='-'+frmt ; Make the exponent a superscript. IF sign EQ '-' THEN BEGIN IF first EQ 1 then RETURN, frmt + sign + thisExponent + '!N' ELSE RETURN, first + 'x' + frmt + sign + thisExponent + '!N' ENDIF ELSE BEGIN IF first EQ 1 then RETURN, frmt + thisExponent + '!N' ELSE RETURN, first + 'x' + frmt + thisExponent + '!N' ENDELSE the_end: END