1- ! ! author: Damian Rouson, GSE LLC
2- ! ! category: Morfeus-FD
3- ! ! summary: Abstract base type, `object`
4- ! !
5- ! ! ### Copyright notice
6- ! !
7- ! ! ```
8- ! ! (c) 2019-2020 Guide Star Engineering, LLC
9- ! ! This Software was developed for the US Nuclear Regulatory Commission (US NRC) under contract
10- ! ! "Multi-Dimensional Physics Implementation into Fuel Analysis under Steady-state and Transients (FAST)",
11- ! ! contract # NRC-HQ-60-17-C-0007
12- ! ! ```
13-
1+ ! ### Copyright notice
2+ !
3+ ! ```
4+ ! (c) 2019-2020 Guide Star Engineering, LLC
5+ ! This Software was developed for the US Nuclear Regulatory Commission (US NRC) under contract
6+ ! "Multi-Dimensional Physics Implementation into Fuel Analysis under Steady-state and Transients (FAST)",
7+ ! contract # NRC-HQ-60-17-C-0007
8+ ! ```
149module object_interface
1510 implicit none
1611
@@ -31,6 +26,8 @@ module object_interface
3126 contains
3227 procedure :: mark_as_defined
3328 procedure :: user_defined
29+ procedure (write_interface), deferred :: write_formatted
30+ generic :: write (formatted) = > write_formatted
3431 end type
3532
3633 interface
@@ -50,4 +47,16 @@ pure module function user_defined(this) result(is_defined)
5047
5148 end interface
5249
50+ abstract interface
51+ subroutine write_interface (self , unit , iotype , v_list , iostat , iomsg )
52+ import object
53+ class(object), intent (in ) :: self
54+ integer , intent (in ) :: unit
55+ character (* ), intent (in ) :: iotype
56+ integer , intent (in ) :: v_list(:)
57+ integer , intent (out ) :: iostat
58+ character (* ), intent (inout ) :: iomsg
59+ end subroutine
60+ end interface
61+
5362end module object_interface
0 commit comments