Download presentation
Presentation is loading. Please wait.
Published byKerry Todd Modified over 8 years ago
1
RELAP5-3D in Fortran 90 Dr. George L Mesina RELAP5 International Users Seminar Nov 18-20, 2008 Idaho Falls, ID
2
Overview High-level description of conversion Database & executable code conversion Effect of conversion on users and development Current status Alpha version tentative release schedule Summary
3
F90 Project High-Level Description Like working on the Winchester House
4
The Winchester House Sarah Winchester, heir to Winchester Gun Fortune, built the Winchester Mansion until 1922. –Believed she couldn’t die while house under construction. –Builders worked 24 hours/day, every day, for 38 years. –Room elevations vary within a story, stairs cross stories or lead nowhere, doors open into walls, etc. Registered as California Historical Landmark with the National Park Service as "a large, odd dwelling with an unknown number of rooms.“ –First count: 140 rooms, later counts: up to 160.
5
Winchester House Floor plan developed daily as needed. No overarching plan. So convoluted, people got lost. Like a 3D maze. Despite construction and labyrinth, Sarah entertained visitors and gave tours.
6
RELAP5-Winchester F90 Analogy RELAP5-3D had a maze-like floor plan (database) has a huge number of rooms (subroutines) with ongoing construction (by code developers) and visitors and tours (users, code usage) Riemke Repairs Davis Doors Weaver Windows Excavator Ed Fisher Fascia Judd Additions Nestle Nooks
7
The Winchester Fortran 90 Analogy Fortran 90 Project is analogous to: –Replace ALL plumbing & wiring (convert to F90) –Without affecting the work crews (developers) –Or impacting the owner (users)
8
Fortran 90 Other Objectives Decomplexify the 3D labyrinth into a clear floor plan. Translation – Make an elegantly simple database. Fix long-standing problems left by previous builders Translation – Solve some User Trouble Reports. Don’t slow down anyone else’s work Translation – Don’t impact code runtime When done, every room left exactly as before Translation – ALL test problems must work with no changes to the calculations Sound like a job you’d want?
9
Why Convert to Fortran 90? Numerous advantages to users –Listed later in presentation Easier to read and develop –Better for V&V –Reduced maintenance costs Increase code longevity
10
Decomplexifying the Database Eliminate all equivalence statements –These create multiple names for a single memory location –Accidental data destruction –Real equivalent-to integer created severe complications Derived type arrays organize the data w/in a group Control Volumesvlmvlm(2)%p = pressure of vol 2 TripsTripv, tripltripv(3)%name, tripl(4)%id ComponentsCmp, cmvCmp(7)%num, cmv(k)%pump
11
Decomplexifying the Database Example: original component database –Number of components –Data common to all components –Index array of component start indices –Variable length component data stored contiguously OR a “referral” index Problems: correct indexing, overruns Derived types and sub-derived types simplify data grouping and accessing valves: motor, check, trip, etc. cmv%(k)%valvecmv%(k)%valve(1)%trip trip valve datacmv%(k)%valve(1) %trip cmv%(k)%valve(1)%trip%triptime
12
Decomplexifying the Database Convert comdecks to modules with: 1.Derived type and other data 2.Data dictionary and other documentation within file 3.Service subroutines process module’s data Constructors and Destructors Restart Read and Write Some have other auxiliary routines
13
Converting Source Code Major aspects of conversion - Declarations –Modules replace COMDECKS for data access. –Introduction of derived types to organize data into efficient and logical data groupings. –Declarations with “universal” numeric types to reduce numeric precision problems. –Elimination of real-to-integer equivalences.
14
Converting Source Code Major aspects – Executable Code –Internal subroutines used to simplify code –Restart controlled by subroutines dedicated to a group of data rather than entire database. –Fortran 90 pointers introduced –Case and multi-else if-statements introduced –Array processing replaces loops in places Complete rewrites of some subroutines.
15
Converting Source Code Fortran conversion - Statements –Obsolescent coding eliminated or replaced. –Machine dependent coding replaced by Fortran 90 intrinsic functions and subroutines. –IF-THEN and IF-THEN-ELSE constructs replace most “GO TO” statements. –ENDDO and ENDIF replace most CONTINUE statements –USE statements replace INCLUDE statements
16
Converting Source Code Derived type references replace FA- equivalent arrays. Ordinal indexing replace fa-indices, simplifies loops. Fortran 90 pointers replace fa-index based pointers, greatly simplifies pointers.
17
User Advantages Machine independent plot file –Can write a plot file on a Windows or Linux platform with any chip –After binary transfer, can use file to make plots on any other such platform Self-sizing memory –No longer will your code run out of memory before your machine does. –Memory is allocated according to the size requirements of your input
18
User Advantages Some previously unrecognized problems corrected –For example, time-step lower limit enforced. –PVM multiple-RHS limit with BPLU solver fixed. Source Code Users –Can now read and understand code better –Simpler to add new data to database and program data services –Simpler to add new code that uses new or old data –Documentation easier to find and read
19
User Advantages Longevity –Obsolete and machine-specific coding removed –Adjusting code to new machine chips and operating systems simpler in F90 –Easier to train new team members (even if they only know C++ or Java but not Fortran) –The code will last
20
Features not currently available RGUI – RELAP5-3D Graphical User Interface –Used to show transient calculations in 3D and color, to make movies of the screen display, etc. –Conversion postponed The following will not be converted –Severe Core Damage Model coding (SCDAP) –IAEA Graphical User Interface –Nuclear Plant Analyzer
21
Status of Current Version 2.8.3 An INL internal version created Nov 1, 2008 Converted => do not reference Fortran77 database. –81% of all 643 “relap” files –100% of 135 “envrl” files Transient semi-implicit solution fully converted V2.8.3 Runs all previous test cases and new ones. –Answers same as earlier version except where modified for code physics developments or bug fixes
22
Status of Current Version 2.8.3 - INL internal version, Nov 1, 2008 –Code speed affected by remaining transfers Slowdown = Time(v2.8.3) / Time(v2.4.1.2) – 1 –tank.i = 0%, typp12002.i = 36% –worst case: pb_ss_air.i – 133% Most transfers are in syssol.F. –Plan to eliminate all transfers and regain virtually all speed.
23
Tentative Development/Release Schedule Version 2.8.3 - INL internal version, 11/08 –Transient semi-implicit solution free of FA array Version 2.8.4 - INL planned internal version, 12/08 –Transient free of FA array Version 2.8.5 - INL planned internal version, 1/09 –Fortran 90 conversion complete Version 2.9.0 – tentative external release, 2/09 –ALPHA version –Will run all previous test cases and new ones.
24
Thanks to F90 Project Contributors Dr George Mesina: PI Dr. Richard Riemke Nolan Anderson Hope Forsman Richard Moore Dr. Paul Murray Consultants: Richard Wagner, Dr. Walt Weaver Summer students: Joshua Hykes, Riley Cumberland
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.