- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - OpenVMS
- >
- Re: using fortran and profor with upgraded VMS and...
Categories
Company
Local Language
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Discussions
Discussions
Forums
Forums
Discussions
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Community
Resources
Forums
Blogs
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-28-2010 11:47 PM
тАО07-28-2010 11:47 PM
Re: using fortran and profor with upgraded VMS and Oracle
how do i check what the value is set to?
a wrapper? explain to me what this is please thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 12:00 AM
тАО07-29-2010 12:00 AM
Re: using fortran and profor with upgraded VMS and Oracle
Enter one or all of
sh sym cxx
sh sym cc
sh sym for
and look for what the '/float' qualifier is set to.
When we moved to Itanium, we were unaware that support for non-IEEE FP types had been removed from Oracle10g. Indeed, Oracle themselves seemed to be unaware of it and we spent some time going round the buoy with Oracle support.
The problem we then had was that data originally running on VAX and then Alpha (but still relying on the D_FLOAT FP type) would not work on 10g.
It was decided that since
a) We handled considerable volumes of data across many sites
b) All our DB access was done through a wrapper layer
we would update our DB wrapper code to use the
CVT$CONVERT_FLOAT
function to perform the necessary floating-point conversion on the way in and out of the database.
I'm just flagging up that if your Oracle9i setup is using a non-IEEE format you wont be able to restore any of that data into an Oracle10g database. You would have to write something to perform the CVT$CONVERT_FLOAT operation onto your data as you write it into your new database.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 12:49 AM
тАО07-29-2010 12:49 AM
Re: using fortran and profor with upgraded VMS and Oracle
sounds like we might be in for a long upgrade process!!
would the problem expalin this compile error?
$@forcomp
parameter (min_real_16 = -0.841Q-4932)
................................^
%F90-E-ERROR, The value was either too large or too small when converting to a R
EAL(KIND=16) number, and overflow/underflow occurred. [0.841Q-4932]
at line number 74 in file DAVE$DKB1:[LIBRARY7]MACH_CONSTS.DEF;10
MACH_CONSTS.DEF is in the library7 directory that we use for all our fortran programs. The programmers that wrote the code have long left the company so not sure why that particular number .841 to the power -4932 is used
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 02:43 AM
тАО07-29-2010 02:43 AM
Re: using fortran and profor with upgraded VMS and Oracle
The range for an H_float (REA*L16) number is:
0.84*10**--4932 through 0.59*10**4932
Dan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 02:45 AM
тАО07-29-2010 02:45 AM
Re: using fortran and profor with upgraded VMS and Oracle
understood
it has been defined as real*16
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 03:13 AM
тАО07-29-2010 03:13 AM
Re: using fortran and profor with upgraded VMS and Oracle
Dan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 03:30 AM
тАО07-29-2010 03:30 AM
Re: using fortran and profor with upgraded VMS and Oracle
so I would have to change my *.DEF file which currently shows
c reals
real*4 max_real_4
parameter (max_real_4 = 1.7E38)
real*4 min_real_4
parameter (min_real_4 = -0.30E38)
real*8 max_real_8
parameter (max_real_8 = 1.7D38)
real*8 min_real_8
parameter (min_real_8 = -0.30D38)
real*16 max_real_16
parameter (max_real_16 = 0.59Q4932)
real*16 min_real_16
parameter (min_real_16 = -0.841Q-4932)
Update this with the correct IEEE floating point values?
Not sure where to find these but I will have a look
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 03:40 AM
тАО07-29-2010 03:40 AM
Re: using fortran and profor with upgraded VMS and Oracle
I'm not sure why the program would care specifically without seeing the code stream, but it appears that the limits are used somewhere in the code.
An examination of the code around the failure point might give us a clue:
CREATE_RIGHTS_ARRAY+1820
Can you post the code around the above point?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 05:33 AM
тАО07-29-2010 05:33 AM
Re: using fortran and profor with upgraded VMS and Oracle
subroutine create_rights_array (v_mnem, start_date, end_date, rights, s├в ┬ж
include 'valuation.def'
character*7 v_mnem
integer*4 num
real*8 v_tshares(500),call_price (500)
real*8 stock_price
real*8 value, cost_value
real*8 cap_value
integer*4 seconds
character*3 valuation_curr
character*9 prev_date, or_time
character*16 add_time, jc_time
character*9 cap_date (500), start_date, end_date
character*7 s_mnem (500)
character*3 c_mnem (500)
c character*3 v_curr (10)
real*8 exchange_rate_2
integer*2 status,
> date_count,
> count
record / rights_record / rights
├в
seconds = -1 * seconds_in_day
value = 0.0
cost_value = 0.0
call get_v_folio_rights (v_mnem,
> start_date,
> end_date,
> s_mnem,
> v_tshares,
> call_price,
> cap_date,
> c_mnem,
> num,
> status)
if (status) then
if (num .ge. 1) then
date_count = 1
count = 1
rights.cap_date(date_count) = cap_date (count)
rights.value(date_count) = 0.0
rights.cap_value(date_count) = 0.0
do while (count .le. num)
if (cap_date(count) .ne.
> rights.cap_date(date_count)) then
date_count = date_count + 1
rights.cap_date(date_count) = cap_date(count)
rights.value(date_count) = 0.0
endif
prev_date = or_time (add_time
> (jc_time(cap_date(count)), seconds))
value = call_price(count) * v_tshares(count) *
> exchange_rate_2 (valuation_curr(v_mnem, prev_date),
> c_mnem(count),
> prev_date)
cost_value = call_price(count) * v_tshares(count) *
> exchange_rate_2 (valuation_curr(v_mnem, cap_date(count)),
> c_mnem(count),
> cap_date(count))
cap_value = stock_price(s_mnem(count), cap_date(count)) *
> v_tshares(count) *
> exchange_rate_2 (valuation_curr(v_mnem, cap_date(count)),
> c_mnem(count),
> cap_date(count) )
rights.value(date_count) = rights.value(date_count) +
> value
rights.cap_value(date_count) =
> rights.cap_value(date_count) +
> cap_value
rights.cost_value(date_count) =
> rights.cost_value(date_count) +
> cost_value
count = count + 1
enddo
rights.number = date_count
endif
endif
return
end
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
тАО07-29-2010 05:44 AM
тАО07-29-2010 05:44 AM
Re: using fortran and profor with upgraded VMS and Oracle
The model does not assume a twos-complement implementation so the negative values are not provided.
Example:
HUGE and TINY for a REAL*16 KIND on Alpha with /FLOAT=IEEE_FLOAT returns
HUGE 1.189731495357231765085759326628007E+4932
TINY 3.362103143112093506262677817321753E-4932
(* - along with DIGITS, EPSILON, MAXEXPONENT, MINEXPONENT, PRECISION, RADIX, and RANGE for all numeric KINDS as well as EXPONENT, FRACTION, NEAREST, RESPACING, SCALE, SET_EXPONENT, and SPACING for REAL KINDS - see HELP FORTRAN INTRINSICS)