From owner-sc22wg5@dkuug.dk  Tue Mar 18 16:51:00 2003
Received: (from majordom@localhost)
	by dkuug.dk (8.12.8/8.9.2) id h2IFp0ae066955
	for sc22wg5-domo; Tue, 18 Mar 2003 16:51:00 +0100 (CET)
	(envelope-from owner-sc22wg5@dkuug.dk)
X-Authentication-Warning: ptah.dkuug.dk: majordom set sender to owner-sc22wg5@dkuug.dk using -f
Received: (from keld@localhost)
	by dkuug.dk (8.12.8/8.9.2) id h2IForpU066948
	for sc22wg5@dkuug.dk; Tue, 18 Mar 2003 16:50:53 +0100 (CET)
	(envelope-from keld)
Received: (from majordom@localhost)
	by dkuug.dk (8.12.8/8.9.2) id h2DCxaqX035465
	for sc22wg5-domo; Thu, 13 Mar 2003 13:59:36 +0100 (CET)
	(envelope-from owner-sc22wg5@dkuug.dk)
X-Authentication-Warning: ptah.dkuug.dk: majordom set sender to owner-sc22wg5@dkuug.dk using -f
Received: from mailhub3.liv.ac.uk (mailhub3.liv.ac.uk [138.253.100.83])
	by dkuug.dk (8.12.8/8.9.2) with ESMTP id h2DCxTQV035460
	for <SC22WG5@dkuug.dk>; Thu, 13 Mar 2003 13:59:29 +0100 (CET)
	(envelope-from j.l.schonfelder@liverpool.ac.uk)
Received: from mtpc.liv.ac.uk ([138.253.102.148])
	by mailhub3.liv.ac.uk with esmtp (Exim 3.36 #1)
	id 18tSJH-0007UE-00; Thu, 13 Mar 2003 12:59:48 +0000
Date: Thu, 13 Mar 2003 12:59:58 -0000
From: "J.L.Schonfelder" <J.L.Schonfelder@liverpool.ac.uk>
To: j3@j3-fortran.org, "SC22/WG5 members" <SC22WG5@dkuug.dk>
Subject: Re: (j3.2003-290) Current papers posted on the server
Message-ID: <6876738.1047560398@mtpc.liv.ac.uk>
In-Reply-To: <000001c2e8d6$4911bda0$6501a8c0@ms.rosehulman.edu>
References:  <000001c2e8d6$4911bda0$6501a8c0@ms.rosehulman.edu>
X-Mailer: Mulberry/2.2.1 (Win32)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==========06894047=========="
Sender: owner-sc22wg5@dkuug.dk
Precedence: bulk

--==========06894047==========
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

The attached is a paper on the proposed module enhancement TR. Mallory I 
would like it added to the list for the meeting.

--
Lawrie Schonfelder
Honorary Senior Fellow
University of Liverpool
1 Marine Park, West Kirby,
Wirral, UK, CH48 5HN
Phone: +44 (151) 625 6986 
--==========06894047==========
Content-Type: application/pdf; name="Comment on Module TR draft 03-123.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="Comment on Module TR draft 03-123.pdf"; size=13973

JVBERi0xLjINJeLjz9MNCjEwIDAgb2JqDTw8IA0vTGluZWFyaXplZCAxIA0vTyAxMiANL0ggWyA5
ODQgMjE3IF0gDS9MIDEzOTczIA0vRSA3ODkxIA0vTiAzIA0vVCAxMzY1NSANPj4gDWVuZG9iag0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4cmVmDTEwIDI2IA0wMDAwMDAwMDE2IDAwMDAwIG4NCjAwMDAwMDA4NjYgMDAwMDAgbg0KMDAw
MDAwMTIwMSAwMDAwMCBuDQowMDAwMDAxNDA3IDAwMDAwIG4NCjAwMDAwMDE1NDIgMDAwMDAgbg0K
MDAwMDAwMTczMyAwMDAwMCBuDQowMDAwMDAyMjk5IDAwMDAwIG4NCjAwMDAwMDI0NzkgMDAwMDAg
bg0KMDAwMDAwMjUwMCAwMDAwMCBuDQowMDAwMDAzMTY3IDAwMDAwIG4NCjAwMDAwMDMxODggMDAw
MDAgbg0KMDAwMDAwMzgxMiAwMDAwMCBuDQowMDAwMDAzODMzIDAwMDAwIG4NCjAwMDAwMDQ0OTQg
MDAwMDAgbg0KMDAwMDAwNDUxNSAwMDAwMCBuDQowMDAwMDA1MTMyIDAwMDAwIG4NCjAwMDAwMDUx
NTMgMDAwMDAgbg0KMDAwMDAwNTc5NiAwMDAwMCBuDQowMDAwMDA1ODE3IDAwMDAwIG4NCjAwMDAw
MDY1NjMgMDAwMDAgbg0KMDAwMDAwNjU4NCAwMDAwMCBuDQowMDAwMDA3MjMzIDAwMDAwIG4NCjAw
MDAwMDcyNTQgMDAwMDAgbg0KMDAwMDAwNzY2MyAwMDAwMCBuDQowMDAwMDAwOTg0IDAwMDAwIG4N
CjAwMDAwMDExODAgMDAwMDAgbg0KdHJhaWxlcg08PA0vU2l6ZSAzNg0vSW5mbyA4IDAgUiANL1Jv
b3QgMTEgMCBSIA0vUHJldiAxMzY0NSANL0lEWzw3YTg1NGI1NjJhMTFhZjFhYTkzMzI4ZTRmYzAx
ZWQ1Zj48N2E4NTRiNTYyYTExYWYxYWE5MzMyOGU0ZmMwMWVkNWY+XQ0+Pg1zdGFydHhyZWYNMA0l
JUVPRg0gICAgIA0xMSAwIG9iag08PCANL1R5cGUgL0NhdGFsb2cgDS9QYWdlcyA5IDAgUiANL09w
ZW5BY3Rpb24gWyAxMiAwIFIgL1hZWiBudWxsIDg0NiAxIF0gDS9QYWdlTW9kZSAvVXNlT3V0bGlu
ZXMgDT4+IA1lbmRvYmoNMzQgMCBvYmoNPDwgL1MgNjYgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xl
bmd0aCAzNSAwIFIgPj4gDXN0cmVhbQ0KSIliYGBgBqIbDKwMDJxnGHgYEIAHKMPKwMLAMYPhD+N3
BoZpDQwMjB3TVqwxCmHgYGBqYOAACwMBOwOD0WcgLQbE4mARUQYuPXelVYrqB7gkGKYd4GJgmMrA
uYNhqwPnBYZE5okOQCUAAQYAQJUUog1lbmRzdHJlYW0NZW5kb2JqDTM1IDAgb2JqDTExMiANZW5k
b2JqDTEyIDAgb2JqDTw8IA0vVHlwZSAvUGFnZSANL1BhcmVudCA5IDAgUiANL1Jlc291cmNlcyAx
MyAwIFIgDS9Db250ZW50cyBbIDE4IDAgUiAyMCAwIFIgMjIgMCBSIDI0IDAgUiAyNiAwIFIgMjgg
MCBSIDMwIDAgUiAzMiAwIFIgXSANL01lZGlhQm94IFsgMCAwIDU5NSA4NDIgXSANL0Nyb3BCb3gg
WyAwIDAgNTk1IDg0MiBdIA0vUm90YXRlIDAgDT4+IA1lbmRvYmoNMTMgMCBvYmoNPDwgDS9Qcm9j
U2V0IFsgL1BERiAvVGV4dCBdIA0vRm9udCA8PCAvVFQyIDE1IDAgUiA+PiANL0V4dEdTdGF0ZSA8
PCAvR1MxIDMzIDAgUiA+PiANL0NvbG9yU3BhY2UgPDwgL0NzNSAxNiAwIFIgPj4gDT4+IA1lbmRv
YmoNMTQgMCBvYmoNPDwgDS9UeXBlIC9Gb250RGVzY3JpcHRvciANL0FzY2VudCA4OTEgDS9DYXBI
ZWlnaHQgMCANL0Rlc2NlbnQgLTIxNiANL0ZsYWdzIDM0IA0vRm9udEJCb3ggWyAtNTY4IC0zMDcg
MjAyOCAxMDA3IF0gDS9Gb250TmFtZSAvVGltZXNOZXdSb21hblBTTVQgDS9JdGFsaWNBbmdsZSAw
IA0vU3RlbVYgMCANPj4gDWVuZG9iag0xNSAwIG9iag08PCANL1R5cGUgL0ZvbnQgDS9TdWJ0eXBl
IC9UcnVlVHlwZSANL0ZpcnN0Q2hhciAzMiANL0xhc3RDaGFyIDE0OCANL1dpZHRocyBbIDI1MCAw
IDAgMCAwIDAgMCAwIDMzMyAzMzMgMCAwIDI1MCAzMzMgMjUwIDI3OCA1MDAgNTAwIDUwMCA1MDAg
NTAwIA01MDAgMCAwIDUwMCA1MDAgMjc4IDAgNTY0IDAgNTY0IDAgMCA3MjIgNjY3IDY2NyA3MjIg
NjExIDU1NiA3MjIgDTcyMiAzMzMgMzg5IDcyMiA2MTEgODg5IDcyMiA3MjIgNTU2IDAgNjY3IDU1
NiA2MTEgNzIyIDcyMiA5NDQgNzIyIA0wIDYxMSAwIDAgMCAwIDUwMCAwIDQ0NCA1MDAgNDQ0IDUw
MCA0NDQgMzMzIDUwMCA1MDAgMjc4IDI3OCA1MDAgDTI3OCA3NzggNTAwIDUwMCA1MDAgNTAwIDMz
MyAzODkgMjc4IDUwMCA1MDAgNzIyIDUwMCA1MDAgNDQ0IDAgMCANMCAwIDAgMCAwIDAgMCAwIDEw
MDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCA0NDQgNDQ0IF0gDS9FbmNvZGluZyAvV2luQW5z
aUVuY29kaW5nIA0vQmFzZUZvbnQgL1RpbWVzTmV3Um9tYW5QU01UIA0vRm9udERlc2NyaXB0b3Ig
MTQgMCBSIA0+PiANZW5kb2JqDTE2IDAgb2JqDVsgDS9DYWxSR0IgPDwgL1doaXRlUG9pbnQgWyAw
Ljk1MDUgMSAxLjA4OSBdIC9HYW1tYSBbIDIuMjIyMjEgMi4yMjIyMSAyLjIyMjIxIF0gDS9NYXRy
aXggWyAwLjQxMjQgMC4yMTI2IDAuMDE5MyAwLjM1NzYgMC43MTUxOSAwLjExOTIgMC4xODA1IDAu
MDcyMiAwLjk1MDUgXSA+PiANDV0NZW5kb2JqDTE3IDAgb2JqDTU4OSANZW5kb2JqDTE4IDAgb2Jq
DTw8IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlIC9MZW5ndGggMTcgMCBSID4+IA1zdHJlYW0NCkiJdFNN
c5swEL3zK/YoHYwlAf66pUmbaaa5NMzk0OlBAWFIMHIlUbf/visJbKedjsf2suy+fe+t9KFMlmUp
gEPZJJynLAeGnxgVq3S1gfVapDmUh2R5awuobChgYKtkef/EYW8TljLGt1BWyWIOT8k3UtLFKt0Q
TXm6JTt4vi+WD3SB0JxkIQf0e/mQMFjwNBcZdt1FqOICVUSoT0YfKN+kBeJ8kSfTKXiqWj00qq+V
ucbh2RlGXGBEhHkaX16RQZ7mRFVuB7cRVZDpT1EsX5HBWdAD1EY2DlDFGud+pQUW+PSjrsdewceh
lUOl5k7fE9VtgjpBlixbUL4lXGT/E7q+MFx7huROOrWDR2lAMIZt5es/soIqlnKxyaOozzgEhwIO
Z2jqiQbTx76eM333RrnAQM0Zp+fIqH1819GFwD7rvJ3xnVWm06OdH+vOyuPR6J+xQfagG3Ctgroz
6GaH1mACQ/QCKjRnQlaUoRsWugGrOwsIcdRW9incBKq9a/U41bZXTvFCiLPoi+pplc04hJmy739T
nuGZAlmrHyMa6EkZBRK/B++NIBIp5GSYCxsl3WiUnQXMjPBButAnUZR1HY4AiuI36JMzeh/7DQ6a
0mjXcQqbcET9tCnhka/U/L1Cv3YupqvyzqpBGeQyud5o42HP60XK8xLb8z5rZbsJYqCCXCpQzhSr
XyhInc8Enmxc9M3s+4hd1vlDJ1II93ZNWswpqEZj/ELPPMKvDETf3i/YE/LXK8MrpF+uzJ2GGBl6
w0/siTf3jwADAPg1Jj8NZW5kc3RyZWFtDWVuZG9iag0xOSAwIG9iag01NDYgDWVuZG9iag0yMCAw
IG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDE5IDAgUiA+PiANc3RyZWFtDQpI
iWxUwZLaMAy98xU6xp3BjbPAwr2X7Tm3zh4cWymepnZqO6X795WSGFiGGQZkKVLee3pm037Z1LKu
1RFaw9G+2UN72fyofgt1lMdqEoq+zRnEVtXyVNJhTkcsaRPWwjgXBmd0Rluq2l/D8FeoRr5WGIeP
JYKSEXUVu5AQ7ISQAzwiiGgnb7XPkNZWn/U/Ca3YHmjyeX7OJaCPDR7h4vI5TBl0gl5H/nkT6iQP
FYj39vumhq2Sat800H6bNeDIbLYlZBGM9pAQGcpJNpUWtdxVv4R6kapyYtvQMP9zOcLgegTtP9Yj
6uQwQh8i5DOCW0eMA64R+kx1T3XnAb3uBneddRszhpRc5waXSyb00GHm3hEjjS/YvEF5x2ynXgqx
sly1r3cLr0+SrUskjQPNGHM50osYeZq6snQ7DUzRgssJRh2JAqudAu2F9aXM3GKxd95lF3xiuAwt
ZSLKrRaTwWWNz9egbmtQzZ0Xm+X9Xwue9ZwkwHPaT/Y5894T74YXUDzZu5hyOTjfI9n3pnfJpxJd
xGtF1ipHJnxXWTzy2OyBa8t7HXmZmzAlEtDpAf5MmtzDd4YkWxQjU9CKe20QumDLOALhA0+aHU7M
30RTV3lxIlfvJL1XQq0GONSnRQiPtJKkIw++oqQ7d8Vr5xt846ivAukSpBENo741PSAmlGgGMkX6
TIjvhF7ulFpNNcZg6HqTfy5idib/D4j3/wIMANaqQeQNZW5kc3RyZWFtDWVuZG9iag0yMSAwIG9i
ag01ODMgDWVuZG9iag0yMiAwIG9iag08PCAvRmlsdGVyIC9GbGF0ZURlY29kZSAvTGVuZ3RoIDIx
IDAgUiA+PiANc3RyZWFtDQpIiXSUy5bbIAyG93kKLXFP4xrn5uy7abf1rmcWBPCYMy5kMDTt21fc
7ORMurIQIOnTL9x/3zSwpTU9tC30XzdN3TT0DD0PFj130N82P4n6VdGuPpPrJLMltWNOGQ3Vlja4
VnOxnCnWRRZrMF6L5agGBkLOXGrBtAMzgBslcG8tRoWcwAg/yS+zv9yva+ir7bHuyFhR9DGHkd4q
2qJHVk1Nyd+0uFXH+kSMFYDVKC0UZw6LeekL7Z7uCm2bYGnXZlg3rjDvnk1qCNefsmophRRP/MZh
Wnj3cg4Xc9knLLslEnectAPjEi5GxIrPJGCficf92QE2Tii8qV/TZnCrecRMgzXxIBgtsWvYgDuo
OwnbSLVFs92dE5aQfGJW5ho7EnqezbWg7BiMBaZB/kG/ZhNcreFSeCvhVkWKGjmsjLqtl4XB6Al9
lFbh180gmGMg9e+K7lAfVW3b+kis0QEjREHFMxSunksUrTiGbql+NLP7XBZscae2cbeArKGjrJzN
zxhWvpUm3/PxYBIlJAU2z4YrnCeRZT2UYCHMJb6QmDCkUW5MTP2npMs+P62mO5RpW7peXkBhsWxY
FupONxY6C+x6nRQ2PHI9zmnQAAf/UZ00a7t6R+Dil30sEmsdzfRwdDL8LZ2tEW1P/jdldKHJbyc2
5BgbQu9qXi1h/GUKdZDi8RqnzXmNHa2L74fn4yJuMSKje7ir0rxN5jV443CdCGdTzsCCIldp8yX8
0eBQf8SMkJTAtyAc/sBSGMDgHwNUL/8EGACkD3H1DWVuZHN0cmVhbQ1lbmRvYmoNMjMgMCBvYmoN
NTM5IA1lbmRvYmoNMjQgMCBvYmoNPDwgL0ZpbHRlciAvRmxhdGVEZWNvZGUgL0xlbmd0aCAyMyAw
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
MSAwIFIgPj4gDXN0cmVhbQ0KSIlMUT1zwyAM3f0rNEKvzhmStPXeDs3M1utAsBL76hofkOby7ysZ
nMuEeAi9D5lDZZ6qZtM0WoFxXLX7VzDX6kt8StVuWnGStdq8CUg9wiViANd7HzFC8hCwQzfagMvr
MCUMJ+sQbFqA2RMEUjX0359KMfzyXCXmEUuFU7Jp8NNz6bjKF+Ltpaa3wfUFLXLKzXkim7p15lQK
O92k2q5NpOzMVwT5bQ5VA+RE7bUG805Odav22anzHbXUy58O/6TSRISSWsToZ1bJGtcOlkeUqV+B
iLMNNj0EULNWnhWHc542SS3AkuDF/mr+bh3i5bgAvruMlG3mCBx9S1RkFY63PAnudA+mdmqbTdEi
NS+yXkv2NwfPOVCcwS6Za1EONrkTIcIQl40V2FP2WsQE4/CTP+J4ywX4Oe+K28krb5rWncV8mOpf
gAEAvFKgCw1lbmRzdHJlYW0NZW5kb2JqDTMzIDAgb2JqDTw8IA0vVHlwZSAvRXh0R1N0YXRlIA0v
U0EgZmFsc2UgDS9TTSAwLjAyIA0vVFIgL0lkZW50aXR5IA0+PiANZW5kb2JqDTEgMCBvYmoNPDwg
DS9UeXBlIC9QYWdlIA0vUGFyZW50IDkgMCBSIA0vUmVzb3VyY2VzIDIgMCBSIA0vQ29udGVudHMg
MyAwIFIgDS9NZWRpYUJveCBbIDAgMCA1OTUgODQyIF0gDS9Dcm9wQm94IFsgMCAwIDU5NSA4NDIg
XSANL1JvdGF0ZSAwIA0+PiANZW5kb2JqDTIgMCBvYmoNPDwgDS9Qcm9jU2V0IFsgL1BERiAvVGV4
dCBdIA0vRm9udCA8PCAvRjEgNyAwIFIgL1RUMiAxNSAwIFIgPj4gDS9FeHRHU3RhdGUgPDwgL0dT
MSAzMyAwIFIgPj4gDS9Db2xvclNwYWNlIDw8IC9DczUgMTYgMCBSID4+IA0+PiANZW5kb2JqDTMg
MCBvYmoNPDwgL0xlbmd0aCAyNjQzIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+IA1zdHJlYW0NCkiJ
xFfbctvIEX3XV8zLVg0cCcaFJEBXkipdKK9SEqVIVGxnlXINgaGINQxwZ0DL+o7dD05PTw8AiqSc
fUqpihrMtS+nT3efzA7ezmYRC9lscRCGfjBgAfzZ0XDkj1KWJEN/EASw4+vB21M9ZJnGPQHT2cHb
93che9QHgR8EwYjNsoMjN3w6+IWf309PZ95R6of8wgtTf8Cvp+yvlfjqhYk/4vLvrFbs7v7k9vp+
c9vUg0f5ZHOvWK2kUExo1iwl88LAH/OlFLlU9FEvaNCtr1SdyXyt3HdB161K6S6uGtEUdUUb5nX+
7IH+Q868/8z+cRCwo9APh1HEZmeoZuS0DKOx1bKAs0d4WLhBLnUmq1xUDSs00+vFosgKeIk1Ncvq
qpJZg0oUVSPVQmSS5TIrhbKSiCrH1U54K1UENzOjwZjkH7fS+wwMOPITvvQiLvuiD8K4FR1lD/xo
kKRWdCV/WxcKr/LhnBeA1UFKMOR+yZTcmHn0whgcp2R7C1xAk2svggnYCpdJ4zZh1W6evITXTCjU
cSVV+WwP7LF5GFrBg8ghS2hdZ4VoZO47m4MBjD+XHpw1JrCzCKgxv4JPfnM5uZpMad8xQKw9RLta
dBooAuLmSmRfwO5cNkX1aAZM5LlmVd0s3cR83RiTrK23v+FuD/CRcDUvxGPvG60nKia/N0rsc1Hc
BpEZGlVXtdbFvCiLBo0ET4J7pFK18lnvlkEUj1t7jcleySCyl1wY3yS8AuMAhsg24N7Gjau6BXGe
F8a1onQzGrGXAjLEdzcHsCbw5IS9FE0PkGTn956B4hR/T8HOKacdJMZ1b721+LjlA5w/wXO3+Gv3
2/nNm+wdk81LQDZRlhZuMN5jacJUGCZDa6NKArKNNkupEZjgzJgXuUTMKrmQSlYQEHMERWz9+Yh7
vKMIxMD9JohiXtkz61K2lATC2OFmAHnOnERYUmEchbxoAN00+wCAp2FZV/gmfbbzRWMVnb0h+Fil
gG0WBV7JtYEhxJiRTH4vNGHaACJbgjgZRLyZzfSDh7AGmLdOhg+2WCs4q5gmLkI89IBgvAfMVygx
L6W/D5tDsns8TnvYjBGbwxabT+DYGBE15KJF6aIuy9ouoTYj3otzc4n7XAoTicBmGHswj+gY8jov
FoXMyQaCZoFNGbhiheHaHdIsPrLXDkzMBe4rjGKfuQe3XsqWtZaVYfq1ttDRK1mWZOwB34PHMO0S
S0Lp0+B+hDGQ8A9eAJzlvlN+huNDMFDaat1lomWNqqXcqpRAVIJAVwKSCcj2M56t8ewCYN2wJ5xZ
1kyJQpN9fj9HfUfcLtYq/8N4mP2+qJWdEiCTynuhUWi9ln+wbvXZvk4xg8M9FD9siS8ctnk1HKep
34r9VK/LnM0hNksprJSYUACCJo3UGigL4so5sXwmg+u6dD7SLrHOMYEa59tbNCbmTKoK7gWQE3zf
noe2OBpjyTOmomgUjf3heJyYoihAPBuRQbfZr6RaHKNn+dX12f3lhN1cX0xndww3QIRyxmafbibs
3Tu70l9g7HZyfGmWPh6yT/2VyfTMHrNnugX4mtyeH59ONu85v779cHx7xrAMu4Dkhuc+n13czdgD
Z8eH7IRBqG+csYI9cNz64B3i3TDiF1PYCkLhqRdHnMC9+/sbjNy7ZHih2gstLHOMRgna0WzYZ8vO
6ggnDhUlbQUtaTcIb0efj9kON51eT2fHF9MND/3AbH0N/7TNfmCx3vTf2N0/b+EuePr4p49HJz99
fPDevInYX3DiE0x8shObnnzV5tum7UzWWqm7y4x+1CbEaeIPR7ZNwCAeEM0HCdUxWGpZSodAZJSw
iTcdLW7FWxgM/dHAXj/cCjgr7OvyhXFq/m0JmLQCWvlMBkC2Xs9RMqhQc5O/NVTYkmZMbQtMjlQ2
silowHeecoQHGQqIt9eQQNFbuUpg4wTl88rlfGCkXjdjjGPsNxqPELiJy6jhMCC+rLNsrSwPQ7Yy
p8jGibVxuNfGI2B5FieDXZzWYed1M0eQFO0lo6CzcuRgMHDZ3pkZisQEitkp/p5iSsfSLoZUHkGP
AkVft946YWwAs6urcqWVy0QvG0ElS2nqM7gf8hK4paJ66SgcQg1IVt1RHwaYpIzklPbAR5DzdvdH
hdWNnEyFHLqXimTTn0S2PwGx0rYWpEov5S8qMZp1qIAaXNCtts5sNyh3Y1fwtZvyfTk37XIueWfu
ErYteXu6bdRzvbJl3N0xtnccQ1dYggYVnPtmOweJbaspz1eUd7vW1YBVgDeLxpSNbSCNrd0ObX5v
3HnJnopmWdumq2f5jGqDw1fzdgzIirdpZEdCeD2HnLCtpLOZQTYv25lLHvjL3Pv/Z/2TzaT6I9KP
ogTUt9GOlStxahAl45b0I1O9LqEuRRrCopQBcyI+BU18bVcq3Lg17w4c4vI+HouhMCapQsM3fz5X
jFI/2tTLIDsYtCA3Q4MYjEhz15YQKfSlo1eF+F/YdBC3t/QEiVo5iJOYluqb7cawwrddq/l0fWsl
M6m1UNSzdcW6ph7PcBoYXpQl7u+IjegRGG8wTPr0+MsWSxn6acQX05dayqnYQtVEQi+undf5Mzaw
+4nT0izFeVlnUNdv0JrANywr7W4zh1Hcay6BNj1IIsAyhkaAhOCrdA0gchJk9S+tGZFwQBroFVtb
GQ1xcwGINhfW0CL8XD9JZ33P5Cx1aDTBfTW8AWeyuvfi97Y9Me/YbZj7szqn1mRncziKyd0SBMoa
zazPXDsEttHgbmX4k/JMgu+zoizXugEbWyzYYwJFdXgAee00JCZeZEvyFqRLElRQQfEyo8rvxvkV
7XLljevD7Kdl5V3ZJxo4ing0YFAQ10Yj63nXxeJjdrioy5JW0QMJr/CgWweX0Ui4gXNf4ya+dfhU
2qCO5qla6qdr2xTCpQI62hfJFMJMZCaoAFBlMVcYWyBJ//zhbkcGKSn9r8mpN4SnyVnX6IFbnPp8
jB+X7/HfoRUy5SgQjcHhjSgq7b6FG+iVzAqoitw3uCOT+drgEOIbigz37mfPlFbmgf7TV1Zt2Jut
SwCNCwOovgwI5rKxUJGysvpBpoDaLo2oeqDluvUfgWwlH17T+MEz3u/c3sbIGqTEKLHRVTWdkw39
0rDUdTcNQY2lR9m5BuFpFXN2E2zLMv/2wiG/82KQanJjt++pmiJKcgPHMT17tc6Sbthaj76NEdF+
tPOpdsPT66uby8lH72jQ2gJ4Zo2FTwTnlMbghjYGm6jIUohZs5CF3GJsBW7ltA3U4QbEQPLA+7+t
C1NnAnwzJQ0liD0gDbt0Fw7aII382PVqFRB/1jOhlo0z4xkSbsTvqN07np5OnPGJrsRqVRZWEJt0
lIRJRU+ssT/c7A1Nif9sl1dS+7spf1cp+gFyCGI4iI+MXAkPwWktSSHTG8wmlktdjQkwAoHNOVe/
eqZ9smCCXFlKoRs6CMwFvOmIEALWs1B+pQodJ34Qb5UGO+rGjeKsX+fd301MKM+ubz8fX77vLcw+
3UzYu3f2iD0xmR38dwB9dSa8CmVuZHN0cmVhbQ1lbmRvYmoNNCAwIG9iag08PCANL1R5cGUgL1Bh
Z2UgDS9QYXJlbnQgOSAwIFIgDS9SZXNvdXJjZXMgNSAwIFIgDS9Db250ZW50cyA2IDAgUiANL01l
ZGlhQm94IFsgMCAwIDU5NSA4NDIgXSANL0Nyb3BCb3ggWyAwIDAgNTk1IDg0MiBdIA0vUm90YXRl
IDAgDT4+IA1lbmRvYmoNNSAwIG9iag08PCANL1Byb2NTZXQgWyAvUERGIC9UZXh0IF0gDS9Gb250
IDw8IC9GMSA3IDAgUiAvVFQyIDE1IDAgUiA+PiANL0V4dEdTdGF0ZSA8PCAvR1MxIDMzIDAgUiA+
PiANL0NvbG9yU3BhY2UgPDwgL0NzNSAxNiAwIFIgPj4gDT4+IA1lbmRvYmoNNiAwIG9iag08PCAv
TGVuZ3RoIDIxNDAgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4gDXN0cmVhbQ0KSInUV9ty28gRfddX
zCOQIiFcCJDUGy3RjrZsySXB8W6ilGsIDkWssQAXA4jr/Mbmg9Pd04OLRHlTlcrDWi5hNJeevp3T
PW/Ss/O3gQhEujtbCh9+liJOvGQh5vO5N18u5yL95ez8Usci07TuC52dnb+7D8SjPvNFmuGv45kj
4N/devVeXFyIHyfiJyHc9GdYmwZeEEWRSK9wz/rmSqQ/fVyLj7fXNyltSf+CC29v7z6v7q4EzK7v
3q4u1+Lq+j5d3cBgsAv2fbq5TK9vb4yAL7hJPDhiNRFvxIM73ivoqgeHtj64ExIOI+f6BraCnnTq
2RFrw0D+cAMacEqHwSbc8n0zTqwO7/hwe/XpPbjo7vZyffXpbo3q/G19+eXm9u7DaWf8/X798cFZ
Td6AXWNzLm8/fHy//nEyNP3iAnaeMPviAuW8bi6t/peGUuBnSTKnwONOaxX67H4gBgfnaRqaJAwC
z59RmpmRScZ4GXm+7weYjD6MwpASz/OTCJPvH87nvNkLdxr43tJp9soOf21lke/yTDZ5VdrJjcrL
RzeIvMCxUwdZN3Zc7U4IystG1TuZdRObavuNZeyV3Kpa1BL216LZy1Lgyf7Ipqiyr+PNzT7XAv67
/0x/YJDMAgIJmbdE86Z2iAbq/Bc3WKKqbgi/0Sq1FU1lJLyC4XgOIuYGw0OovkTma8ERn+7XmHvp
7d2X1ft3gwVCscXJEOwhQ/1/ooM/QIhliz8BG/z54fx/wHOUxCM8B0vGc+TPTb6n7jTxFs7eDSDb
Vd0DUdtRWR3dxJt3GK7KAhAZwiFRlSfgRytbtctLgj/9iTjlsXJ9wGep6jwTWjXiioRfI+jmzj2r
s6LJG/p96cYws/YgWc0mkVVwZ7ntwA2IXaBiZAOYkFU8c6AZmTWv4d/Sm79gd0gQK0VWKFkDe6jf
DrXSGjkN2AqNAEPzIm+YkkAnIkRprlx6IdFG6BTqN3GQlowks6BCKSwhV1oc3Tk4Hvej45HVlJAY
AvKz5G8h6+68mSlbvmwDOg4si8OQLYvDwNgDFx7qKlPbFgxBzmzoBhZYQ0jBoVV7AI6DQFaCBUsI
0swpLfPa+82sDZ02AUCdFs423+1A/zJTPIHG5UXBf21U5yEjheefhpJre59Z0znfW5KPqL6Ujcer
/Ll2Q5832GNttj8Z7yA2PjkRGE72BTrdDCDHdA4VRG4KZef66rXoqteir17gBPVMZ7ugdrsKzoK3
alXIxlQUpRuQnut9XyZH9UzjJpyp1a9tXsOhk7H2w8hkceAnM2MhiTOejofxGmWDJwhsM0rBCJKr
gX1fzclv5iPIYtB6hyqosinsQmdpSJZGDtsQvrDBpKyueEAp6PZl31DKEytcF5Xc2jMEhdO47cu2
MTir6lpljSGmpSPaUmK2ORsX8ubRTLZVCzb3AgfyggXzwCxgHlgJ4C9ZiEMFpkxGdDZ3OCgFdTsQ
voPYqOaoVAlEoNsNkQ9kyLaF1EFCycH14EnwH/oSSRMC8fu+0gBGrassJ0H/FrnuoX860mGnJ/dj
jKncnYZe4kBCcWYrz6ae/f4V8FhRUo6vFXtpmMhgEBBLxkK2QcapDNjHbKvBGj0RDFi+8F8uVJvI
8Uyy5zswV4CZHUGajDdiiGLMhqyo9Didh8FN2MjYBkNn1QFyirwnRalAW2SQ/qLYYT/DZSWAVlOE
yMGjTXn5ZEakPngiB3QDiadcSEyYG1XYA2XVCHMbgiRxJGOY8QigFq/GKmBURktOUpMaS3ALpYZn
C6r9vgVptk+2KB0gafIsIENFgCiAsHZ5zReQ/dketmZwPNdNnmlbwsgtr7g+6vKLde6rOzq4Vjty
bnXKv6FDJTrE8r4zhYUCLqzdkYUEZ/lWNnY4lMJTHRj6/Jl0xNEtsuCWOEhbZtlYYuFuHugJBBTj
Czhw0EuR6bOuFYgtp3QOnVFBTJxm0AnIBvhy0zZq7NjeksgkJQtADWeoIfmQ6uTJM9aHofFh4nQZ
Hzpj4eCDrFZYTCZ/RBddOyD1y/4ut51LgS+dTffaekZPhgBMyc+qttiKTLZaEaDrGlI3HzzHoG1q
zCnCZXeDsj1AyctYRk+moqHkqR2a3uwb8y9UnwyBDoTaIwW71MQBtQegOc+ZjM3VOOqu3qoDytgC
ITOhdzxl/YyXediY90UjjJadipaoIvbutQl1404pzY7kJchFujmBFMB4QnMC1aLBt2nFVGvyaeBq
W05sMUlOFxPZ1YtygKNamTIY20SH9OER8BXL+15hxU7JFla8kZXEi00OyAzq7ZbLITSoSKYLh2sv
1AJ4GLrYxRdgZQkWPZkVZcvzxOU2YWhzZr1lyw+bZm38HZPNzg2KJiO+bcZwjruHDgcHIRQRjcfU
bkuqdBxw5PEsw1Yf2z0Kf94D27q7VgbNMdHBHNo9Uw5npp5Epp4gTz+aabOt3oLTSBirzzd1D4lZ
R0kdp7wKacvQwXLWR4iRfNwPHnDN/uRrTtrBppDl12Gf2NgVDLJ5KowKzsTUdybRCTGueM6/A9KM
nOc8iaqeKEovU3FqTT2eOYMA2LhA5Ux//g4eQ38MSMgq4LYnAwrlTn3bpg7wQKEGNwGfHCoNnZ9u
H82Bx9E5jc273FRW2oSsOu5zwDUcH19SWyBSw4OAP6Jb93LbPYtUycNa8bM1cfjDQoijXoEr9xh+
YilINoP422EhdTf9+V18/gOPI4ha0LUf3Doo1Zhe3nmZPLylpXP4yuKrKsTtgSobdyOUPlAR/GiK
Z5ZOEEaeuDbjBtEypwrGBTpwDiSzAFpEf0JfA/j8RlpA1mEbZlsn2mdfBoz2oH8Q2MblUB2hBLQF
alI+U8coQwLW6dl/BgCPOT4OCmVuZHN0cmVhbQ1lbmRvYmoNNyAwIG9iag08PCANL1R5cGUgL0Zv
bnQgDS9TdWJ0eXBlIC9UeXBlMSANL0VuY29kaW5nIC9XaW5BbnNpRW5jb2RpbmcgDS9CYXNlRm9u
dCAvQ291cmllciANPj4gDWVuZG9iag04IDAgb2JqDTw8IA0vUHJvZHVjZXIgKEFjcm9iYXQgRGlz
dGlsbGVyIDQuMCBmb3IgV2luZG93cykNL0NyZWF0b3IgKE1pY3Jvc29mdCBXb3JkIDkuMCkNL01v
ZERhdGUgKEQ6MjAwMzAzMTIxMjEyMzFaKQ0vQXV0aG9yIChMYXdyaWUgU2Nob25mZWxkZXIpDS9U
aXRsZSAoVG86IFdHNSkNL0NyZWF0aW9uRGF0ZSAoRDoyMDAzMDMxMjEyMTA1NikNPj4gDWVuZG9i
ag05IDAgb2JqDTw8IA0vVHlwZSAvUGFnZXMgDS9LaWRzIFsgMTIgMCBSIDEgMCBSIDQgMCBSIF0g
DS9Db3VudCAzIA0+PiANZW5kb2JqDXhyZWYNMCAxMCANMDAwMDAwMDAwMCA2NTUzNSBmDQowMDAw
MDA3NzQxIDAwMDAwIG4NCjAwMDAwMDc4OTEgMDAwMDAgbg0KMDAwMDAwODAzNSAwMDAwMCBuDQow
MDAwMDEwNzUyIDAwMDAwIG4NCjAwMDAwMTA5MDIgMDAwMDAgbg0KMDAwMDAxMTA0NiAwMDAwMCBu
DQowMDAwMDEzMjYwIDAwMDAwIG4NCjAwMDAwMTMzNjEgMDAwMDAgbg0KMDAwMDAxMzU2OCAwMDAw
MCBuDQp0cmFpbGVyDTw8DS9TaXplIDEwDS9JRFs8N2E4NTRiNTYyYTExYWYxYWE5MzMyOGU0ZmMw
MWVkNWY+PDdhODU0YjU2MmExMWFmMWFhOTMzMjhlNGZjMDFlZDVmPl0NPj4Nc3RhcnR4cmVmDTE3
Mw0lJUVPRg0=

--==========06894047==========
Content-Type: text/plain; charset=us-ascii; name="comment on module TR 1.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="comment on module TR 1.txt";
 size=10457

To: WG5/J3
From: Lawrie Schonfelder
Subject: Comments on draft TR on Module Enhancements J3/03-123
Date: Mar 2003
I would like to register serious disapproval of the direction of recent 
changes in this proposal. Although functionally adequate there are many 
features of the proposal that are a distinct retrograde step from the 
general form of the design that existed after August 2002. The current 
form makes the job of the programmer much more complicated and overly 
verbose due to much redundant syntax. This is done without as far as I 
can see making life any easier for the implementer nor in enabling any 
possibility of better performance.
The concept of the submodule and its parent is sound as are the 
definitions of ancestor and descendant module/submodules.  
The first infelicity is with the way in which the essential qualification 
of an interface body is now done.  It is necessary to indicate that a 
specific interface body declares an interface for a module procedure 
whose implementation is to be found in a descendant of the current 
module/submodule. That a keyword to indicate this qualification is needed 
is not in question. The interface body must be distinguished from one 
that declares the interface for an external procedure where the interface 
does not inherit its data environment from its host, as distinct from 
this case where the procedure interface must be host associated. The 
problem with the current draft is that it applies this qualification not 
to the interface body but to the whole interface block. This is doubly 
unfortunate. Such a quality is not logically a property of an interface 
block. It is a property of a specific procedure, its interface body and 
its implementation body. By qualifying a whole interface block the 
construction generic procedure sets is complicated and the language made 
much more, unnecessarily, verbose and potentially opaque.  The likelihood 
is that to construct generic interface sets where some of the members are 
submodule defined and some are not, each specific procedure will have to 
be declared in two different interface blocks, one to indicate that it is 
a descendant defined procedure and another to add it to the relevant 
generic set. 
Both these problems are removed if the qualifying keyword is added to the 
FUNCTION/SUBROUTINE statement that introduces the specific interface body 
declaration. No change is needed to the interface block. It still 
brackets a set of specific procedures and where necessary links the set 
to a generic name. The spelling of the qualifying keyword is not critical 
but it would be desirable if it was indicative of the meaning. The 
existing related keywords that qualify procedure declarations seem to 
indicate where, in what context, the procedure is defined, e.g. EXTERNAL, 
INTRINSIC, MODULE. The following are spellings that spring to mind for 
this additional use:
MODULE (note, at present this only occurs associated with the keyword 
PROCEDURE and this use would be distinguished by being linked with 
FUNCTION or SUBPROGRAM),
SUBMODULE
FORWARD
SEPARATE
DESCENDANT
BLOGGS
Of these I have a mild preference for MODULE but FORWARD or DESCENDANT 
would be OK. I am not over fond of SEPARATE or SUBMODULE and BLOGGS would 
be silly, even though it could be technically adequate. 
The key issue is that the keyword should be prefixed to the FUNCTION or 
SUBROUTINE statement of the interface body declaration and not as a 
qualifier for the whole interface block.
The proposal that the specific procedure definition be wrapped in an 
IMPLEMENTATION <name>
.
ENDIMPLEMENTATION <name>
block is simply gratuitous redundant syntax.
If the user chooses to redeclare the interface at the point of 
implementation, which I contend in any large code development with 
separate interface-design and implementation submodules written by 
separate programmers is the most likely option, the fact that 
FUNCTION <name> or SUBROUTINE <name> appear as the header of the 
procedure implementation body in a descendant is sufficient to connect 
the interface declaration and the procedure body implementation. The 
requirement of interface declaration and redeclaration agreement 
guarantees that the two are properly associated. The IMPLEMENTATION 
<name> bracketing adds nothing but redundant verbiage and an extra 
possibility of error. 
In fact no additional syntax is required. The FUNCTION <name> or 
SUBROUTINE <name> is all that is needed. These provide the reference back 
and given the rule that redeclaration is permitted (as long as it 
confirms the existing characteristics) but not required no further syntax 
is required or desirable.
In what follows I have modified the example on pages 3-4 of 03-123. I 
have chosen to use the spelling FORWARD, in homage to Maureen Hoffert who 
raised the "F-word" or  "forward reference issue" way back in 1988. 
Maureen would be pleased that this proposal largely solves the problem 
that so concerned her.

MODULE POINTS 
  TYPE :: POINT 
    REAL :: X, Y 
  END TYPE POINT
  INTERFACE 
    FORWARD FUNCTION POINT_DIST ( A, B ) 
      TYPE(POINT), INTENT(IN) :: A, B 
      REAL :: POINT_DIST
    END FUNCTION POINT_DIST 
  END INTERFACE 
END MODULE POINTS 

SUBMODULE ( POINTS ) POINTS_A 
CONTAINS 
  FUNCTION POINT_DIST ( A, B )
    TYPE(POINT), INTENT(IN) :: A, B 
    REAL :: POINT_DIST
    POINT_DIST = SQRT( (A%X-B%X)**2 + (A%Y-B%Y)**2 ) 
  END FUNCTION POINT_DIST 
END SUBMODULE POINTS_A
 
The name POINTS on the submodule statement links the submodule back to 
the parent module and so the occurrence of the name POINT_DIST on the 
FUNCTION statement is sufficient to reference the relevant forward 
interface declaration in the parent module. The redeclared 
characteristics and names are confirmed by the redeclaration.
An alternative implementation of a suitable submodule, this time without 
redeclaration could be,

SUBMODULE ( POINTS ) POINTS_B 
CONTAINS 
  FUNCTION POINT_DIST() 
    POINT_DIST = SQRT( (A%X-B%X)**2 + (A%Y-B%Y)**2 ) 
  END FUNCTION POINT_DIST 
END SUBMODULE POINTS_B

The same names, POINTS and POINT_DIST serve to provide the necessary 
references but now all the interface characteristics are taken from the 
interface body declaration in the parent without local confirmation. 
In a simple example like this the differences are minor. However, in more 
complex large module codes the effects would be considerable. To 
illustrate the way in which the inelegance of the existing proposal could 
grow the following is a different version of the module that is assumed 
to access a library module, VECTOR_ALG, that contains a specific 
procedure called VEC_NORM that calculates the distance between two 
type(VECTOR) arguments and also an external library that contains a 
procedure called ZSEP that calculates the distance between two COMPLEX 
numbers. The module POINTS is now required to create a generic procedure 
set called DISTANCE that could be applied to all three argument types.
With the 03-123 proposal this would mean at the very least writing,

MODULE POINTS 
  USE VECTOR_ALG
  TYPE :: POINT 
    REAL :: X, Y 
  END TYPE POINT
  FORWARD INTERFACE DISTANCE 
    FUNCTION POINT_DIST ( A, B ) 
      TYPE(POINT), INTENT(IN) :: A, B 
      REAL :: POINT_DIST
    END FUNCTION POINT_DIST 
  END INTERFACE DISTANCE 
  INTERFACE DISTANCE
    MODULE PROCEDURE :: VEC_NORM
    FUNCTION ZSEP(A,B)
      COMPLEX,INTENT(IN)::A,B
      REAL::ZSEP
    END FUNCTION ZSEP 
  END INTERFACE DISTANCE 
END MODULE POINTS 

With the qualification being part of the interface body header rather 
than the interface block header this is simplified to

MODULE POINTS 
  USE VECTOR_ALG
  TYPE :: POINT 
    REAL :: X, Y 
  END TYPE POINT
  INTERFACE DISTANCE
    FORWARD FUNCTION POINT_DIST ( A, B ) 
      TYPE(POINT), INTENT(IN) :: A, B 
      REAL :: POINT_DIST
    END FUNCTION POINT_DIST 
    MODULE PROCEDURE :: VEC_NORM
    FUNCTION ZSEP(A,B)
      COMPLEX,INTENT(IN)::A,B
      REAL::ZSEP
    END FUNCTION ZSEP 
  END INTERFACE DISTANCE  
END MODULE POINTS 

There is now only one interface block defining the generic set DISTANCE.  
I contend this is more compact and a clearer expression of the facility.  
With a complex package of facilities where there are a large number of 
procedures that are grouped into many generic sets this difference will 
become very significant.  In such packages a considerable part of the 
design effort is related to establishing the interfaces to the required 
generic sets of procedures. The tricky part is frequently designing the 
interfaces so that the overloads are correctly unambiguous.
A final point, defining the relationship between a submodule and its 
parent is one of "host association" is a mistake.  Host association has 
well defined redeclaration rules, viz. if an entity is redeclared in an 
enclosed scope it is a new entity and it renders the host entity 
invisible.  This is definitely not what is required for a submodule.  For 
procedure interfaces, redeclaration is required to confirm the 
characteristics of the host interface and refers to the host entity.  If 
in a submodule a data entity is redeclared, this must be similarly a 
confirmation of the attributes of the host entity and must reference the 
host entity.  If a new entity is created, as is implied by host 
association rules this could cause an error in the interpretation and 
implementation of any descendent procedure whose interface/implementation 
depended on the redeclared entity.  
It would be much better to define the association between submodule and 
its parent as an entirely new form and define its rules accordingly. 
Alternatively, the association could be defined as "use association" but 
where all declared or accessible entities of the parent are made visible, 
regardless of accessibility attributes, and where there is a blanket rule 
that redeclaration, if any, must confirm the attributes and 
characteristics of the parent entities.
I believe the form of this proposal suggested above, and which is very 
close to what had been recommended at the last WG5/J3 meeting is much to 
be preferred to that in 03-123. It is simpler and equally if not more 
powerful than that in 03-123.

--==========06894047==========--
