100% found this document useful (3 votes)
24 views

Fortran 2018 with Parallel Programming 1st Edition Subrata Ray (Author) instant download

The document is a promotional description for the book 'Fortran 2018 with Parallel Programming' by Subrata Ray, which is available for download. It includes links to other related Fortran programming books and provides information about the book's content and structure. The book is published by CRC Press and covers various aspects of Fortran programming, including data types, operators, and parallel programming concepts.

Uploaded by

abaircrill3v
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
24 views

Fortran 2018 with Parallel Programming 1st Edition Subrata Ray (Author) instant download

The document is a promotional description for the book 'Fortran 2018 with Parallel Programming' by Subrata Ray, which is available for download. It includes links to other related Fortran programming books and provides information about the book's content and structure. The book is published by CRC Press and covers various aspects of Fortran programming, including data types, operators, and parallel programming concepts.

Uploaded by

abaircrill3v
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 69

Fortran 2018 with Parallel Programming 1st

Edition Subrata Ray (Author) download

https://textbookfull.com/product/fortran-2018-with-parallel-
programming-1st-edition-subrata-ray-author/

Download more ebook from https://textbookfull.com


We believe these products will be a great fit for you. Click
the link to download now, or visit textbookfull.com
to discover even more!

Introduction to Programming with Fortran Chivers

https://textbookfull.com/product/introduction-to-programming-
with-fortran-chivers/

Introduction to Programming with Fortran Ian Chivers

https://textbookfull.com/product/introduction-to-programming-
with-fortran-ian-chivers/

Modern Fortran Explained: Incorporating Fortran 2018


Michael Metcalf

https://textbookfull.com/product/modern-fortran-explained-
incorporating-fortran-2018-michael-metcalf/

Modern Fortran: Building Efficient Parallel


Applications 1st Edition Milan Curcic

https://textbookfull.com/product/modern-fortran-building-
efficient-parallel-applications-1st-edition-milan-curcic/
Modern Fortran Building efficient parallel applications
1st Edition Milan Curcic

https://textbookfull.com/product/modern-fortran-building-
efficient-parallel-applications-1st-edition-milan-curcic-2/

Parallel Programming with Co-Arrays Robert W. Numrich

https://textbookfull.com/product/parallel-programming-with-co-
arrays-robert-w-numrich/

Pro Tbb: C++ Parallel Programming with Threading


Building Blocks 1st Edition Michael Voss

https://textbookfull.com/product/pro-tbb-c-parallel-programming-
with-threading-building-blocks-1st-edition-michael-voss/

Network and Parallel Computing 15th IFIP WG 10 3


International Conference NPC 2018 Muroran Japan
November 29 December 1 2018 Proceedings Feng Zhang

https://textbookfull.com/product/network-and-parallel-
computing-15th-ifip-wg-10-3-international-conference-
npc-2018-muroran-japan-november-29-december-1-2018-proceedings-
feng-zhang/

Parallel Programming Concepts and Practice 1st Edition


Bertil Schmidt

https://textbookfull.com/product/parallel-programming-concepts-
and-practice-1st-edition-bertil-schmidt/
Fortran 2018 with
Parallel Programming
Fortran 2018 with
Parallel Programming

Subrata Ray
CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742

© 2020 by Taylor & Francis Group, LLC


CRC Press is an imprint of Taylor & Francis Group, an Informa business

No claim to original U.S. Government works

Printed on acid-free paper

International Standard Book Number-13: 978-0-367-21843-0 (Hardback)

This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to
publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials
or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material
reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained.
If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized
in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying,
microfilming, and recording, or in any information storage or retrieval system, without written permission from the publishers.

For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.
copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400.
CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have
been granted a photocopy license by the CCC, a separate system of payment has been arranged.

Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation without intent to infringe.

Library of Congress Control Number: 2019946209


Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com

and the CRC Press Web site at


http://www.crcpress.com
This work is dedicated to the memory of

Professor Chanchal Kumar Majumdar

and

Professor Suprokash Mukherjee


Contents

Preface ......................................................................................................................................... xxiii


Acknowledgments ..................................................................................................................... xxv
Author ........................................................................................................................................ xxvii

1. Preliminaries ...........................................................................................................................1
1.1 Character Set .................................................................................................................. 2
1.2 Identifiers .......................................................................................................................3
1.3 Intrinsic Data Types ......................................................................................................4
1.4 Constants and Variables...............................................................................................4
1.5 Integer Constants .......................................................................................................... 4
1.6 Real Constants ...............................................................................................................5
1.7 Double Precision Constants.........................................................................................6
1.8 Complex Constants .......................................................................................................6
1.9 Double Precision Complex Constants ........................................................................ 7
1.10 Quadruple (Quad) Precision Constants ..................................................................... 7
1.11 Logical Constants ..........................................................................................................7
1.12 Character Constants .....................................................................................................7
1.13 Literal Constants ...........................................................................................................8
1.14 Variables .........................................................................................................................8
1.15 Variable Declarations....................................................................................................8
1.16 Meaning of a Declaration.............................................................................................9
1.17 Assignment Operator ................................................................................................. 10
1.18 Named Constants........................................................................................................ 10
1.19 Keywords ..................................................................................................................... 11
1.20 Lexical Tokens ............................................................................................................. 12
1.21 Delimiters ..................................................................................................................... 12
1.22 Source Form ................................................................................................................. 13
1.23 Free Form ..................................................................................................................... 13
1.24 Continuation of Character Strings............................................................................ 15
1.25 Structure of a Program ............................................................................................... 16
1.26 IMPLICIT NONE......................................................................................................... 16
1.27 IMPLICIT ...................................................................................................................... 17
1.28 Rules of IMPLICIT ...................................................................................................... 18
1.29 Type Declarations ....................................................................................................... 18
1.30 Comments on IMPLICIT Statement ......................................................................... 19
1.31 PROGRAM Statement ................................................................................................ 19
1.32 END Statement ............................................................................................................ 19
1.33 Initialization................................................................................................................. 20
1.34 Number System ........................................................................................................... 20
1.35 Binary Numbers .......................................................................................................... 21
1.36 Octal Numbers ............................................................................................................ 21
1.37 Hexadecimal Numbers .............................................................................................. 21
1.38 Initialization Using DATA Statement ...................................................................... 21
1.39 BOZ Numbers ..............................................................................................................22

vii
viii Contents

1.40 Integer Variables and BOZ Numbers .......................................................................22


1.41 Executable and Non-Executable Statements ........................................................... 23
1.42 INCLUDE Directive .................................................................................................... 23
1.43 Statement Ordering .................................................................................................... 24
1.44 Processor Dependencies ............................................................................................ 24
1.45 Compilation and Execution of Fortran Programs .................................................. 24

2. Arithmetic, Relational and Logical Operators and Expressions ................................ 25


2.1 Arithmetic Operators ................................................................................................. 25
2.2 Arithmetic Expressions .............................................................................................. 26
2.3 Assignment Sign ......................................................................................................... 26
2.4 Rules for Arithmetic Expressions ............................................................................. 27
2.5 Precedence of the Arithmetic Operators ................................................................. 28
2.6 Multiple Statements .................................................................................................... 29
2.7 Mixed-Mode Operations ............................................................................................ 30
2.8 Integer Division ........................................................................................................... 32
2.9 List-Directed Input/Output Statement .................................................................... 33
2.10 Variable Assignment—Comparative Study ............................................................ 35
2.11 Library Functions........................................................................................................ 35
2.12 Memory Requirement of Intrinsic Data Types ....................................................... 36
2.13 Programming Examples ............................................................................................ 36
2.14 BLOCK Construct ....................................................................................................... 37
2.15 Assignment of BOZ Numbers ................................................................................... 38
2.16 Initialization and Library Functions ........................................................................ 39
2.17 Relational Operators ................................................................................................... 39
2.18 Precedence Rule of Relational Operators ................................................................ 40
2.19 Relational Operators and Complex Numbers......................................................... 40
2.20 Logical Operators ........................................................................................................ 40
2.21 Precedence Rule of Logical Operators .....................................................................42
2.22 Precedence of the Operators Discussed So Far ......................................................42

3. Branch and Loop Statements..............................................................................................43


3.1 GO TO Statement ........................................................................................................43
3.2 Block IF .........................................................................................................................44
3.3 IF-THEN-ELSE .............................................................................................................44
3.4 ELSE-IF ......................................................................................................................... 46
3.5 Nested IF ...................................................................................................................... 48
3.6 Nested IF without ELSE ............................................................................................. 49
3.7 Rules of Block IF .......................................................................................................... 49
3.8 CASE Statement........................................................................................................... 51
3.9 CASE DEFAULT .......................................................................................................... 53
3.10 CASE and LOGICAL ..................................................................................................54
3.11 Nested CASE................................................................................................................54
3.12 EXIT Statement and CASE .........................................................................................54
3.13 Rules of CASE .............................................................................................................. 55
3.14 Programming Example .............................................................................................. 56
3.15 DO Statement ............................................................................................................... 57
3.16 Negative Increment..................................................................................................... 59
3.17 Infinite Loop ................................................................................................................ 59
Contents ix

3.18 EXIT Statement ............................................................................................................ 60


3.19 CYCLE Statement ........................................................................................................ 60
3.20 DO WHILE................................................................................................................... 61
3.21 Nested DO ....................................................................................................................63
3.22 CYCLE, EXIT and the Nested Loop .........................................................................65
3.23 Termination of DO Loop ............................................................................................ 66
3.24 Rules of DO Statement ............................................................................................... 66
3.25 Remark about Loop Statements ................................................................................ 70

4. Handling of Characters ....................................................................................................... 71


4.1 Assignment .................................................................................................................. 71
4.2 Concatenation .............................................................................................................. 71
4.3 Collating Sequence ..................................................................................................... 72
4.4 Character Comparison ............................................................................................... 73
4.5 Comparison of Character Strings ............................................................................. 73
4.6 Lexical Comparison Functions ................................................................................. 74
4.7 Length of a String ....................................................................................................... 75
4.8 Trimming and Adjusting a String ............................................................................ 75
4.9 REPEAT ........................................................................................................................ 76
4.10 Character–Integer Conversion ..................................................................................77
4.11 Character Substring ....................................................................................................77
4.12 Programming Examples ............................................................................................ 79
4.13 Library Functions INDEX, SCAN and VERIFY ..................................................... 81
4.14 CASE and CHARACTER ...........................................................................................84
4.15 NEW LINE ................................................................................................................... 85

5. Precision and Range............................................................................................................. 87


5.1 SELECTED_INT_KIND .............................................................................................. 88
5.2 Precision and Range of Real Numbers ....................................................................90
5.3 SELECTED_REAL_KIND .......................................................................................... 90
5.4 SELECTED_CHAR_KIND ......................................................................................... 92
5.5 KIND Intrinsic ............................................................................................................. 92
5.6 KIND and COMPLEX Constants .............................................................................. 94
5.7 KIND and Character Handling Intrinsics............................................................... 94
5.8 Quadruple (Quad) Precision ..................................................................................... 95
5.9 DOUBLE COMPLEX................................................................................................... 95
5.10 IMPLICIT and SELECTED KIND ............................................................................. 96
5.11 Type Parameter Inquiry ............................................................................................. 97
5.12 Named Kind Constants.............................................................................................. 97

6. Array and Array-Handling Intrinsics .............................................................................. 99


6.1 Array Declaration ....................................................................................................... 99
6.2 Multidimensional Array .......................................................................................... 101
6.3 Storage Arrangement of Two dimensional Array ................................................ 101
6.4 Characteristics of Array ........................................................................................... 102
6.5 Array Constants ........................................................................................................ 104
6.6 Initialization............................................................................................................... 105
6.7 Initialization with DATA Statement ....................................................................... 105
6.8 Repeat Factor and Initialization .............................................................................. 106
x Contents

6.9 DATA Statement and Implied DO Loop ................................................................ 107


6.10 Named Array Constant ............................................................................................ 108
6.11 Character Variable and Array Constructors ......................................................... 108
6.12 Array Elements .......................................................................................................... 109
6.13 Array Assignment and Array Arithmetic ............................................................. 109
6.14 Array Section ............................................................................................................. 111
6.15 Array Input ................................................................................................................ 114
6.16 Array Output ............................................................................................................. 114
6.17 Programming Examples .......................................................................................... 115
6.18 Array Bounds ............................................................................................................ 119
6.19 LBOUND .................................................................................................................... 120
6.20 UBOUND ................................................................................................................... 120
6.21 RESHAPE ................................................................................................................... 121
6.22 Vector Subscripts ....................................................................................................... 124
6.23 WHERE Statement .................................................................................................... 126
6.24 DO CONCURRENT.................................................................................................. 129
6.25 FORALL Statement ................................................................................................... 132
6.26 Rules for FORALL ..................................................................................................... 133
6.27 EQUIVALENCE Statement ...................................................................................... 134
6.28 EQUIVALENCE and Character Variables ............................................................. 136
6.29 Programming Examples .......................................................................................... 138
6.30 Array-Handling Intrinsics ....................................................................................... 141
6.31 Maximum, Minimum and Finding Location ....................................................... 141
6.32 SUM and PRODUCT ................................................................................................ 146
6.33 Handling of Arrays of More than Two Dimensions ............................................ 147
6.34 DOT_PRODUCT ........................................................................................................ 149
6.35 Matrix Multiplication ............................................................................................... 149
6.36 TRANSPOSE of a Matrix ......................................................................................... 150
6.37 Array Shift.................................................................................................................. 151
6.38 Euclidian Norm ......................................................................................................... 155
6.39 Parity of Logical Array ............................................................................................. 156
6.40 Locating and Counting Array Elements................................................................ 156
6.41 Packing and Unpacking ........................................................................................... 158
6.42 MERGE ....................................................................................................................... 161
6.43 REDUCE ..................................................................................................................... 162

7. User Defined Data Type .................................................................................................... 163


7.1 Derived Type ............................................................................................................. 163
7.2 Assignment ................................................................................................................ 164
7.3 Initialization............................................................................................................... 165
7.4 Named Constant and Derived Type ...................................................................... 165
7.5 Keywords and Derived Types ................................................................................. 166
7.6 IMPLICIT and Derived Types ................................................................................. 166
7.7 Input and Output ...................................................................................................... 166
7.8 Substrings................................................................................................................... 167
7.9 Array and Derived Types ........................................................................................ 168
7.10 Nested Derived Types .............................................................................................. 169
7.11 Arrays as Elementary Items .................................................................................... 170
7.12 SEQUENCE ................................................................................................................ 171
Contents xi

7.13 Derived Types and EQUIVALENCE Statement.................................................... 171


7.14 Parameterized Derived Types ................................................................................. 172

8. Format Statement ................................................................................................................ 175


8.1 Edit Descriptors ......................................................................................................... 175
8.2 Input/Output Lists.................................................................................................... 176
8.3 General Form of Format Statement ........................................................................ 177
8.4 Carriage Control........................................................................................................ 178
8.5 Summary of Edit Descriptors.................................................................................. 178
8.6 Descriptor for Integer ............................................................................................... 178
8.7 Descriptors for Real Number .................................................................................. 180
8.8 Insufficient Width ..................................................................................................... 183
8.9 Format and List Elements ........................................................................................ 184
8.10 Descriptors for Complex Number .......................................................................... 185
8.11 Descriptors for BOZ Numbers ................................................................................ 185
8.12 Descriptor for Logical ............................................................................................... 186
8.13 Descriptor for Character .......................................................................................... 186
8.14 General Edit Descriptor ........................................................................................... 187
8.15 Unlimited Repeat Factor .......................................................................................... 189
8.16 Scale Factor................................................................................................................. 189
8.17 Leading Signs ............................................................................................................ 190
8.18 Tab Descriptors .......................................................................................................... 191
8.19 X Descriptor ............................................................................................................... 192
8.20 Slash Descriptor ........................................................................................................ 192
8.21 Embedded Blanks ..................................................................................................... 193
8.22 Apostrophe and Quote Descriptors ....................................................................... 194
8.23 Colon Descriptor ....................................................................................................... 195
8.24 Decimal Editing ........................................................................................................ 195
8.25 Rounding Modes ....................................................................................................... 195
8.26 Variable Format ......................................................................................................... 196
8.27 Memory to Memory Input/Output ........................................................................ 197
8.28 NAMELIST ................................................................................................................. 197
8.29 NAMELIST Comment .............................................................................................. 201
8.30 Rules for NAMELIST ................................................................................................ 201
8.31 Processor Dependency ............................................................................................. 202

9. Auxiliary Storage ................................................................................................................ 203


9.1 Record ......................................................................................................................... 203
9.2 File ............................................................................................................................... 203
9.3 Formatted Record...................................................................................................... 203
9.4 Unformatted Record ................................................................................................. 204
9.5 Endfile Record ........................................................................................................... 204
9.6 Sequential File ........................................................................................................... 204
9.7 Direct File ................................................................................................................... 204
9.8 Stream File.................................................................................................................. 204
9.9 Unit Number .............................................................................................................. 204
9.10 Scratch and Saved Files ............................................................................................ 205
9.11 OPEN, CLOSE and INQUIRE Statements ............................................................. 205
9.12 Optional Specifiers.................................................................................................... 205
xii Contents

9.13 Kind Type Parameters of Integer Specifiers........................................................ 215


9.14 ENDFILE Statement................................................................................................ 215
9.15 REWIND Statement ................................................................................................ 215
9.16 BACKSPACE Statement .......................................................................................... 215
9.17 Data Transfer Statement ......................................................................................... 216
9.18 READ/WRITE Statement ...................................................................................... 216
9.19 Asynchronous Input/Output ................................................................................ 219
9.20 FLUSH Statement .................................................................................................... 221
9.21 Rules for Input/Output Control List .................................................................... 221
9.22 IS_IOSTAT_END .....................................................................................................222
9.23 IS_IOSTAT_EOR ......................................................................................................222
9.24 Examples of File Operations .................................................................................222
9.25 Stream Input/Output ............................................................................................. 224
9.26 Storage Unit of Stream Input/Output .................................................................. 224
9.27 Stream Input/Output Type....................................................................................225
9.28 Stream File Opening...............................................................................................225
9.29 Unformatted Stream File .......................................................................................225
9.30 Formatted Stream I/O ............................................................................................ 226
9.31 Rule of Thumb ......................................................................................................... 227
9.32 Recursive Input/Output ........................................................................................ 228
9.33 Processor Dependencies ........................................................................................ 228

10. Numerical Model ................................................................................................................ 229


10.1 Numerical Model for Integers ............................................................................... 229
10.2 BASE ......................................................................................................................... 229
10.3 Largest Integer......................................................................................................... 230
10.4 DIGITS for Integers ................................................................................................. 230
10.5 RANGE for Integers ............................................................................................... 230
10.6 Real Numbers .......................................................................................................... 231
10.7 FRACTION and EXPONENT................................................................................ 231
10.8 MAXEXPONENT and MINEXPONENT ............................................................ 231
10.9 Largest and Smallest Real Numbers .................................................................... 232
10.10 DIGITS for Real Numbers...................................................................................... 232
10.11 RANGE for Real Numbers .................................................................................... 232
10.12 PRECISION .............................................................................................................. 233
10.13 SCALE....................................................................................................................... 233
10.14 SET_EXPONENT .................................................................................................... 233
10.15 EPSILON .................................................................................................................. 233
10.16 NEAREST .................................................................................................................234
10.17 SPACING ..................................................................................................................234
10.18 RRSPACING.............................................................................................................234
10.19 Programming Example .......................................................................................... 235

11. Library Functions ............................................................................................................... 237


11.1 Generic Names ........................................................................................................ 237
11.2 Intrinsic Procedures ............................................................................................... 237
11.3 Pure Procedures ...................................................................................................... 237
11.4 Elemental Procedures............................................................................................. 237
11.5 Enquiry Functions .................................................................................................. 238
Contents xiii

11.6 Transformational Functions................................................................................... 238


11.7 Non-elemental Procedures..................................................................................... 238
11.8 Argument Keywords............................................................................................... 238
11.9 Variable Number of Arguments............................................................................ 239
11.10 Optional Arguments............................................................................................... 239
11.11 Types of Available Intrinsics.................................................................................. 239
11.12 Intrinsic Statement................................................................................................... 240
11.13 Processor Dependencies......................................................................................... 240
11.14 Final Word................................................................................................................ 240

12. Subprograms........................................................................................................................ 241


12.1 FUNCTION Subprogram....................................................................................... 242
12.2 SUBROUTINE Subprogram................................................................................... 245
12.3 CALL Statement....................................................................................................... 246
12.4 INTENT..................................................................................................................... 249
12.5 Internal Procedure................................................................................................... 249
12.6 Character Type Argument...................................................................................... 252
12.7 Argument Types...................................................................................................... 255
12.8 Call by Reference..................................................................................................... 255
12.9 Call by Value............................................................................................................. 255
12.10 RETURN Statement................................................................................................. 256
12.11 INTERFACE Block................................................................................................... 257
12.12 Array as Arguments................................................................................................ 258
12.13 User Defined Type as Argument........................................................................... 260
12.14 MODULE................................................................................................................... 261
12.15 MODULE PROCEDURE......................................................................................... 263
12.16 PUBLIC and PRIVATE Attributes......................................................................... 265
12.17 PROTECTED Attribute........................................................................................... 270
12.18 Scope Rules............................................................................................................... 272
12.19 Generic Subprograms.............................................................................................. 274
12.20 ABSTRACT Interface............................................................................................... 276
12.21 Keyword Arguments............................................................................................... 278
12.22 Operator Overloading............................................................................................. 279
12.23 Overloading of Assignment Operator.................................................................. 283
12.24 Overloading of Standard Library Functions.......................................................284
12.25 User Defined Operators.......................................................................................... 285
12.26 Use Statement and Renaming Operators............................................................. 287
12.27 Precedence of Overloaded Operators................................................................... 288
12.28 Precedence of User Defined Operators................................................................. 288
12.29 OPTIONAL Arguments.......................................................................................... 289
12.30 PRESENT Intrinsic................................................................................................... 290
12.31 Assumed Rank of Dummy Arguments............................................................... 291
12.32 Array-Valued Functions.......................................................................................... 292
12.33 SAVE Variables......................................................................................................... 292
12.34 COMMON Statement.............................................................................................. 294
12.35 BLOCK DATA........................................................................................................... 295
12.36 COMMON and DIMENSION................................................................................ 297
12.37 COMMON and User Defined Type....................................................................... 297
12.38 COMMON and EQUIVALENCE........................................................................... 297
xiv Contents

12.39 EXTERNAL Statement ........................................................................................... 298


12.40 Recursion.................................................................................................................. 301
12.41 RECURSIVE FUNCTION ...................................................................................... 301
12.42 RECURSIVE SUBROUTINE .................................................................................. 303
12.43 PURE Procedure .....................................................................................................305
12.44 Rules for PURE Procedure.....................................................................................305
12.45 ELEMENTAL Procedure........................................................................................306
12.46 IMPURE ELEMENTAL Procedure ....................................................................... 307
12.47 SUBMODULE ..........................................................................................................308
12.48 EQUIVALENCE and MODULE ............................................................................ 311
12.49 Function Calls and Side Effects ............................................................................ 311
12.50 Mechanism of a Subprogram Call........................................................................ 312
12.51 Recursive Input/Output ........................................................................................ 312
12.52 Programming Examples ........................................................................................ 313

13. String with Variable Length ............................................................................................ 319


13.1 Assignment .............................................................................................................. 319
13.2 Concatenation .......................................................................................................... 321
13.3 Comparison ............................................................................................................. 321
13.4 Extended Meaning of Intrinsics ........................................................................... 322
13.5 PUT ........................................................................................................................... 322
13.6 PUT_LINE ................................................................................................................ 322
13.7 GET ........................................................................................................................... 323
13.8 EXTRACT ................................................................................................................. 324
13.9 REMOVE .................................................................................................................. 324
13.10 REPLACE ................................................................................................................. 324
13.11 SPLIT ......................................................................................................................... 325

14. IEEE Floating Point Arithmetic and Exceptions .......................................................... 327


14.1 Representation of Floating Point Numbers (IEEE Standard) ........................... 327
14.2 Single Precision 32-Bit Floating Point Numbers (IEEE Standard) ................... 327
14.3 Denormal (Subnormal) Numbers ......................................................................... 330
14.4 Representation of Zero ........................................................................................... 330
14.5 Representation of Infinity ...................................................................................... 331
14.6 Representation of NaN (Not a Number) ............................................................. 332
14.7 Summary of IEEE “Numbers” .............................................................................. 332
14.8 Divide by Zero.........................................................................................................334
14.9 Overflow...................................................................................................................334
14.10 Underflow ................................................................................................................334
14.11 Inexact Computation ..............................................................................................334
14.12 Invalid Arithmetic Operation ...............................................................................334
14.13 IEEE Modules ..........................................................................................................334
14.14 IEEE Features........................................................................................................... 335
14.15 IEEE FLAGS ............................................................................................................. 335
14.16 Derived Types and Constants Defined in the Modules .................................... 336
14.17 IEEE Operators ........................................................................................................ 336
14.18 Inquiry Functions (Arithmetic Module) .............................................................. 337
14.19 IEEE_CLASS ............................................................................................................ 338
14.20 IEEE_COPY_SIGN .................................................................................................. 339
Contents xv

14.21 IEEE_VALUE ............................................................................................................ 339


14.22 IEEE_IS_FINITE ......................................................................................................340
14.23 IEEE_IS_NAN .........................................................................................................340
14.24 IEEE_IS_NEGATIVE ..............................................................................................340
14.25 IEEE_IS_NORMAL.................................................................................................340
14.26 IEEE_INT .................................................................................................................340
14.27 IEEE_REAL .............................................................................................................. 341
14.28 IEEE_SIGNBIT......................................................................................................... 341
14.29 IEEE_MAX_NUM and IEEE_MIN_NUM .......................................................... 341
14.30 IEEE_MAX_NUM_MAG and IEEE_MIN_NUM_MAG .................................. 341
14.31 IEEE_FMA ............................................................................................................... 341
14.32 IEEE_LOGB..............................................................................................................342
14.33 IEEE_NEXT_AFTER, IEEE_NEXT_DOWN and IEEE_NEXT_UP ..................342
14.34 IEEE_REM................................................................................................................343
14.35 IEEE_SCALB ............................................................................................................343
14.36 IEEE_GET_ROUNDING_MODE ..........................................................................343
14.37 IEEE_SET_ROUNDING_MODE...........................................................................344
14.38 IEEE_RINT...............................................................................................................344
14.39 IEEE_UNORDERED ...............................................................................................345
14.40 IEEE_GET_HALTING_MODE ..............................................................................345
14.41 IEEE_SET_HALTING_MODE...............................................................................345
14.42 IEEE_GET_MODES and IEEE_SET_MODES ......................................................346
14.43 IEEE_GET_STATUS and IEEE_SET_STATUS .....................................................346
14.44 IEEE_GET_FLAG and IEEE_SET_FLAG ............................................................. 347
14.45 IEEE_GET_UNDERFLOW_MODE ....................................................................... 347
14.46 IEEE_SET_UNDERFLOW_MODE........................................................................348
14.47 IEEE_SELECTED_REAL_KIND ...........................................................................348
14.48 Arithmetic IF and IEEE_VALUE ........................................................................... 349
14.49 IEEE_QUIET Compare Routines .......................................................................... 349
14.50 IEEE_SIGNALING Compare Routines ................................................................ 349
14.51 NaN, Infinity and Format ...................................................................................... 349
14.52 Relational Operators, Infinity and NaN .............................................................. 350
14.53 Exception within a Procedure ............................................................................... 351
14.54 Exception Outside a Procedure............................................................................. 352
14.55 Programming Examples ........................................................................................ 353
14.56 Out of Range ............................................................................................................ 355
14.57 Processor Dependencies ........................................................................................ 355

15. Dynamic Memory Management ..................................................................................... 357


15.1 ALLOCATABLE Arrays ......................................................................................... 357
15.2 DEALLOCATE Statement ...................................................................................... 360
15.3 ALLOCATED Intrinsic ........................................................................................... 361
15.4 Derived Type and ALLOCATE ............................................................................. 361
15.5 Allocated Array and Subprogram ........................................................................ 362
15.6 ALLOCATE and Dummy Parameter ................................................................... 365
15.7 Allocatable Character Length ............................................................................... 366
15.8 Character and Allocatable Arrays ........................................................................ 367
15.9 Allocatable Scalar.................................................................................................... 367
15.10 Allocatable Function............................................................................................... 368
xvi Contents

15.11 Allocation Transfer ................................................................................................. 369


15.12 Restriction on Allocatable Arrays ........................................................................ 370
15.13 Programming Example .......................................................................................... 370

16. Pointers ................................................................................................................................. 373


16.1 POINTER Declaration ............................................................................................ 373
16.2 TARGET.................................................................................................................... 373
16.3 POINTER Status ...................................................................................................... 374
16.4 POINTER Initialization.......................................................................................... 374
16.5 POINTER Assignment ........................................................................................... 374
16.6 NULLIFY .................................................................................................................. 376
16.7 POINTER and Array .............................................................................................. 376
16.8 POINTER as Alias................................................................................................... 377
16.9 ALLOCATE and POINTER ................................................................................... 378
16.10 POINTER and ALLOCATABLE Array ................................................................ 379
16.11 DEALLOCATE ........................................................................................................ 381
16.12 Unreferenced Storage ............................................................................................. 382
16.13 ASSOCIATED Intrinsic .......................................................................................... 382
16.14 Dangling Pointer ..................................................................................................... 382
16.15 POINTER within Subprogram ............................................................................. 383
16.16 POINTER and Derived Type ................................................................................. 383
16.17 Self-Referencing Pointer.........................................................................................384
16.18 FUNCTION and POINTER ...................................................................................384
16.19 POINTER and Subprogram................................................................................... 385
16.20 POINTER INTENT ................................................................................................. 386
16.21 PROCEDURE and POINTER ................................................................................ 386
16.22 ALLOCATE with SOURCE ................................................................................... 389
16.23 ALLOCATE with MOLD ....................................................................................... 390
16.24 CONTIGUOUS ........................................................................................................ 390
16.25 IS_CONTIGUOUS ................................................................................................... 391
16.26 Programming Example .......................................................................................... 391

17. Bit Handling ........................................................................................................................ 397


17.1 BIT_SIZE ................................................................................................................... 397
17.2 BTEST........................................................................................................................ 397
17.3 IBSET......................................................................................................................... 399
17.4 IBCLR........................................................................................................................400
17.5 IBITS .......................................................................................................................... 401
17.6 LEADZ and TRAILZ .............................................................................................. 403
17.7 POPCNT ...................................................................................................................404
17.8 POPPAR ....................................................................................................................404
17.9 MASKL .....................................................................................................................404
17.10 MASKR ..................................................................................................................... 405
17.11 IAND ........................................................................................................................405
17.12 IOR ............................................................................................................................ 407
17.13 IEOR ..........................................................................................................................408
17.14 NOT........................................................................................................................... 410
17.15 Bit Sequence Comparison ...................................................................................... 410
17.16 Programming Example .......................................................................................... 411
Contents xvii

17.17 ISHFT ........................................................................................................................ 412


17.18 SHIFTL ..................................................................................................................... 413
17.19 SHIFTR ..................................................................................................................... 413
17.20 SHIFTA ..................................................................................................................... 413
17.21 MERGE_BITS ........................................................................................................... 413
17.22 ISHFTC ..................................................................................................................... 414
17.23 DSHIFTL .................................................................................................................. 416
17.24 DSHIFTR .................................................................................................................. 416
17.25 Logical Operations with Array Elements............................................................ 416
17.26 MVBITS .................................................................................................................... 418
17.27 TRANSFER .............................................................................................................. 420

18. C–Fortran Interoperability ...............................................................................................423


18.1 Interoperability of Intrinsic Types........................................................................423
18.2 C Procedure and Interface Block ..........................................................................425
18.3 Function, Subroutine and C Procedure ...............................................................425
18.4 Interoperability with a C Pointer ..........................................................................425
18.5 Procedures in the Module ISO_C_BINDING .....................................................425
18.6 Compilation and Linking ...................................................................................... 427
18.7 IMPORT Statement ................................................................................................. 427
18.8 Fortran and C Interoperability—Examples ........................................................ 427
18.9 Interoperation with Global Variables ................................................................... 436
18.10 C–Fortran Interoperation ....................................................................................... 439
18.11 ENUMERATOR ......................................................................................................440

19. Object-Oriented Programming .......................................................................................443


19.1 Object and Its Properties........................................................................................443
19.2 Inheritance ...............................................................................................................444
19.3 ASSOCIATE .............................................................................................................445
19.4 Rules of ASSOCIATE .............................................................................................447
19.5 Polymorphic Variables ...........................................................................................448
19.6 SELECT TYPE Construct ....................................................................................... 450
19.7 Allocation and Polymorphic Variables ................................................................ 456
19.8 Type Bound Procedure .......................................................................................... 457
19.9 Generic Binding ...................................................................................................... 462
19.10 Overriding Type Bound Procedures ....................................................................464
19.11 Deferred Binding .................................................................................................... 466
19.12 Finalization .............................................................................................................. 467
19.13 SAME_TYPE_AS ..................................................................................................... 470
19.14 EXTENDS_TYPE_OF.............................................................................................. 471
19.15 Derived Type Input and Output ........................................................................... 472

20. Parallel Programming Using Coarray ............................................................................ 481


20.1 Parallel Computing................................................................................................. 481
20.2 Coarray ..................................................................................................................... 482
20.3 Compilation of Fortran Program with Coarray ................................................. 482
20.4 Declaration ...............................................................................................................483
20.5 Initialization ............................................................................................................484
20.6 Input and Output with Coarray ...........................................................................484
20.7 THIS_IMAGE ..........................................................................................................484
xviii Contents

20.8 NUM_IMAGES ....................................................................................................... 486


20.9 SYNC ALL................................................................................................................ 486
20.10 Array of Coarray ..................................................................................................... 487
20.11 Multidimensional Coarray .................................................................................... 487
20.12 Upper Bound of the Last CODIMENSION ......................................................... 488
20.13 Properties of Coarray ............................................................................................. 489
20.14 LCOBOUND ............................................................................................................ 489
20.15 UCOBOUND ........................................................................................................... 490
20.16 COSHAPE ................................................................................................................ 490
20.17 THIS_IMAGE with Argument .............................................................................. 491
20.18 IMAGE_INDEX ....................................................................................................... 491
20.19 Synchronization ...................................................................................................... 492
20.20 CRITICAL Section .................................................................................................. 494
20.21 ALLOCATABLE Coarray ....................................................................................... 496
20.22 CO Routines ............................................................................................................. 496
20.23 CO_MAX .................................................................................................................. 497
20.24 CO_MIN ................................................................................................................... 498
20.25 CO_SUM .................................................................................................................. 498
20.26 CO_REDUCE ........................................................................................................... 499
20.27 CO_BROADCAST ...................................................................................................500
20.28 Coarray and Subprogram ...................................................................................... 501
20.29 Coarray and Function ............................................................................................504
20.30 Coarray and Floating Point Status ....................................................................... 505
20.31 User Defined Type and Coarray ...........................................................................505
20.32 COARRAY and POINTER ..................................................................................... 509
20.33 Operator Overloading and Coarray ..................................................................... 510
20.34 Atomic Variables and Subroutines ....................................................................... 511
20.35 ATOMIC_DEFINE .................................................................................................. 512
20.36 ATOMIC_REF.......................................................................................................... 512
20.37 ATOMIC_ADD ........................................................................................................ 512
20.38 ATOMIC_FETCH_ADD ........................................................................................ 512
20.39 ATOMIC_AND ....................................................................................................... 513
20.40 ATOMIC_FETCH_AND ........................................................................................ 513
20.41 ATOMIC_OR ........................................................................................................... 513
20.42 ATOMIC_FETCH_OR ............................................................................................ 513
20.43 ATOMIC_XOR ......................................................................................................... 514
20.44 ATOMIC_FETCH_XOR ......................................................................................... 514
20.45 ATOMIC_CAS ......................................................................................................... 514
20.46 LOCK and UNLOCK ............................................................................................. 515
20.47 Status Specifiers ...................................................................................................... 516
20.48 ERROR STOP ........................................................................................................... 516
20.49 Coarray and Interoperability ................................................................................ 516
20.50 COMMON, EQUIVALENCE and Coarray .......................................................... 516
20.51 VOLATILE Variable ................................................................................................ 516
20.52 EVENT ...................................................................................................................... 517
20.53 EVENT POST ........................................................................................................... 517
20.54 EVENT WAIT .......................................................................................................... 518
20.55 EVENT_QUERY ...................................................................................................... 519
20.56 Programming Examples Using Coarray ............................................................. 519
Contents xix

21. Parallel Programming Using OpenMP.......................................................................... 523


21.1 Thread ...................................................................................................................... 523
21.2 Structured Block ..................................................................................................... 523
21.3 Parallelism ............................................................................................................... 524
21.4 Memory Management ............................................................................................ 524
21.5 Application Program Interface (API) ................................................................... 524
21.6 Compiler Support ................................................................................................... 524
21.7 Compilation of Program Containing Openmp Directives ............................... 525
21.8 Structure of Compiler Directives ......................................................................... 525
21.9 Parallel Region ........................................................................................................ 526
21.10 Parallelization Directives....................................................................................... 526
21.11 Clauses Associated with the Directives .............................................................. 527
21.12 Parallel Directive..................................................................................................... 528
21.13 Lexical and Dynamic Region ................................................................................ 529
21.14 Three Runtime Routines ........................................................................................ 529
21.15 Nested Parallel ........................................................................................................ 530
21.16 Clauses Associated with Parallel Construct ....................................................... 531
21.17 IF Clause ................................................................................................................... 531
21.18 NUM_THREADS .................................................................................................... 532
21.19 PRIVATE ................................................................................................................... 532
21.20 SHARED................................................................................................................... 533
21.21 DEFAULT NONE .................................................................................................... 533
21.22 DEFAULT PRIVATE ................................................................................................ 533
21.23 DEFAULT SHARED ................................................................................................ 533
21.24 FIRSTPRIVATE ........................................................................................................534
21.25 Rules for OMP PARALLEL Directive ..................................................................534
21.26 Workshare Construct ............................................................................................. 536
21.27 OMP DO/OMP END DO ....................................................................................... 536
21.28 Rules of OMP DO/OMP END DO ....................................................................... 537
21.29 OMP SECTIONS/OMP END SECTIONS ............................................................ 537
21.30 OMP WORKSHARE ............................................................................................... 539
21.31 OMP SINGLE/OMP END SINGLE ...................................................................... 541
21.32 OMP MASTER/OMP END MASTER ..................................................................542
21.33 REDUCTION ...........................................................................................................543
21.34 CRITICAL/END CRITICAL .................................................................................546
21.35 LASTPRIVATE......................................................................................................... 547
21.36 ATOMIC ................................................................................................................... 549
21.37 OMP BARRIER ........................................................................................................ 550
21.38 THREADPRIVATE.................................................................................................. 551
21.39 Rules for THREADPRIVATE ................................................................................. 553
21.40 COPYIN .................................................................................................................... 553
21.41 ORDERED ................................................................................................................ 555
21.42 COPYPRIVATE ........................................................................................................ 555
21.43 NOWAIT................................................................................................................... 556
21.44 FLASH ...................................................................................................................... 557
21.45 Openmp LOCK ....................................................................................................... 557
21.46 SCHEDULE.............................................................................................................. 560
21.47 STATIC SCHEDULE ............................................................................................... 561
21.48 DYNAMIC SCHEDULE ......................................................................................... 562
xx Contents

21.49 GUIDED SCHEDULE............................................................................................. 563


21.50 RUNTIME SCHEDULE..........................................................................................564
21.51 AUTO SCHEDULE .................................................................................................564
21.52 Openmp Runtime Library Routines ....................................................................564
21.53 Runtime Time Routines ......................................................................................... 566
21.54 Environment Control ............................................................................................. 567
21.55 Environment Variables........................................................................................... 567
21.56 Programming Examples ........................................................................................ 568
21.57 Final Word ............................................................................................................... 570

22. Parallel Programming Using Message Passing Interface (MPI) .............................. 571
22.1 MPI Module ............................................................................................................. 571
22.2 Compilation ............................................................................................................. 571
22.3 Error Parameter of MPI Routines ......................................................................... 572
22.4 MPI Version ............................................................................................................. 572
22.5 MPI_INIT ................................................................................................................. 573
22.6 MPI_INITIALIZED ................................................................................................. 573
22.7 MPI_FINALIZE ....................................................................................................... 573
22.8 MPI Handles ............................................................................................................ 574
22.9 About This Chapter ................................................................................................ 574
22.10 Structure of a MPI Program .................................................................................. 574
22.11 MPI_COMM_RANK .............................................................................................. 575
22.12 MPI_COMM_SIZE .................................................................................................. 575
22.13 Use of Rank in Controlling the Flow of the MPI Program ............................... 576
22.14 MPI_BARRIER ........................................................................................................ 576
22.15 Basic MPI Datatype in Fortran.............................................................................. 577
22.16 Point-to-Point Communication ............................................................................. 577
22.17 Communication Modes.......................................................................................... 577
22.18 Message Sent and Received ................................................................................... 578
22.19 MPI_SEND and MPI_RECV ................................................................................. 578
22.20 MPI_SSEND............................................................................................................. 581
22.21 MPI_BSEND ............................................................................................................ 581
22.22 MPI_RSEND ............................................................................................................ 582
22.23 Deadlock .................................................................................................................. 582
22.24 Non-blocking Send and Receive ........................................................................... 583
22.25 Send Function-Naming Conventions in Blocking and Non-blocking
Forms ................................................................................................................... 585
22.26 MPI_ANY_TAG and MPI_ANY_SOURCE ......................................................... 585
22.27 REDUCTION ........................................................................................................... 586
22.28 MPI_SCAN .............................................................................................................. 592
22.29 MPI_ALLREDUCE ................................................................................................. 593
22.30 MPI_REDUCE_SCATTER_BLOCK ..................................................................... 595
22.31 MPI_REDUCE_SCATTER ..................................................................................... 596
22.32 MPI_BROADCAST ................................................................................................. 597
22.33 MPI_GATHER ......................................................................................................... 598
22.34 MPI_ALLGATHER ................................................................................................. 599
22.35 MPI_SCATTER ........................................................................................................600
22.36 MPI_SCATTERV ..................................................................................................... 601
22.37 MPI_ALLTOALL ..................................................................................................... 603
Contents xxi

22.38 Derived Data Types ................................................................................................604


22.39 MPI_TYPE_CONTIGUOUS ...................................................................................604
22.40 MPI_TYPE_VECTOR .............................................................................................. 606
22.41 MPI_TYPE_CREATE_HVECTOR ........................................................................ 607
22.42 MPI_TYPE_INDEXED ...........................................................................................608
22.43 MPI_TYPE_CREATE_HINDEXED ...................................................................... 609
22.44 MPI_TYPE_CREATE_INDEXED_BLOCK .......................................................... 609
22.45 MPI_TYPE_CREATE_HINDEXED_BLOCK ....................................................... 610
22.46 MPI_TYPE_CREATE_STRUCT............................................................................. 610
22.47 MPI_PACK and MPI_UNPACK ............................................................................ 612
22.48 MPI_COMM_SPLIT................................................................................................ 613
22.49 Timing Routines...................................................................................................... 615
22.50 Programming Examples ........................................................................................ 615
22.51 Final Word ............................................................................................................... 620

Appendix A ................................................................................................................................. 621


Appendix B.................................................................................................................................. 623
Appendix C ................................................................................................................................. 625
Appendix D .................................................................................................................................633
Appendix E .................................................................................................................................. 635
Appendix F .................................................................................................................................. 637
Appendix G ................................................................................................................................. 639
Appendix H ................................................................................................................................. 641
Appendix I...................................................................................................................................643
References ...................................................................................................................................645
Index ............................................................................................................................................. 647
Preface

Since the early days of machine computing, there has been a constant demand for larger
and faster machines. The two terms essentially mean machines with larger memory and
more speed than that of the existing available machines. During the past 70 years, there
have been dramatic changes in the fields of computer hardware and software—from
vacuum tubes to VLSI (very large scale integration) and from no operating system to very
sophisticated, time-sharing operating systems. There are three obstacles that computer
designers face while aiming to increase the speed of the computer. First, the density of the
active components within a chip cannot be increased arbitrarily. Second, with the increase
of the density of the active components within VLSI chips, heat dissipation becomes a
severe problem. Third, the speed of a signal cannot exceed the speed of light according
to the special theory of relativity proposed by Einstein. Thus, a different approach to the
problem has been thought of.
Instead of having a single processor, if several processors (each may not be very fast and
can be inexpensive) participate in parallel for computation, the speed of calculation can
be increased considerably, and in fact, using inexpensive processors controlled by special
software and hardware, the speed of a supercomputer can be achieved if hundreds of
processors work together in parallel.
This book contains an introduction to parallel computing using Fortran. Fortran supports
three types of parallel modes of computation: Coarray, OpenMP and Message Passing
Interface (MPI). All three modes of parallel computation have been discussed in this book.
In addition, the first part of the book contains a discussion on the current standard of
Fortran, namely, Fortran 2018.
The first part of the book can be used to learn the modern Fortran language even if
the reader has not yet been exposed to the earlier versions of Fortran. The book should
be read sequentially from the beginning. However, a reader who is conversant with the
earlier versions of Fortran may skip the introduction to Fortran and go directly to the new
features of the language.
As Fortran is mainly used to solve problems related to science and engineering, standard
numerical methods have been used as a vehicle to illustrate the application of the language.
However, knowledge beyond the level of elementary calculus is not required to understand
the numerical examples given in the book. The emphasis of the book is on programming
language, not on sophisticated numerical methods. The programming examples given in
the book are simple, and to keep the code readable, the codes are not always optimized. It is
expected that a reader, after proper understanding of the language, would be able to write
much more efficient codes than the codes given in the book.
Programming tips and style have been introduced at appropriate places. They serve
simply as guidelines. It is well known that every experienced programmer has his or her
own programming style.
To keep the size of the book reasonable, all available features of Fortran 2018 have
not been discussed. Moreover, only the essential components of Coarray, OpenMP and
MPI, which are required to write reasonably useful programs, have been discussed. It is
hoped that readers, after going through this book, will refer to relevant manuals and be
able to write parallel programs in Fortran to solve their numerical problems.

xxiii
xxiv Preface

The book is full of examples. Most of the examples have been tested with Intel Cor-
poration’s Fortran compiler, ifort, version 19.3, GCC gfortran version 7.3.0 and the Fortran
compiler version 6.2 of Numerical Algorithm Group (NAG). The Fortran part is based on
the draft Fortran 2018 report published on July 6, 2017. At the time of writing, these com-
pilers do not support all the proposed features of Fortran 2018, but Intel, Free Software
Foundation, Inc., and NAG will add further support for these features over time.

Subrata Ray
Acknowledgments

The author wishes to record his deep sense of gratitude to his colleagues, friends and asso-
ciates who helped him to prepare this manuscript during the various phases of this work.

Abhijit Kumar Das


Ananda Deb Mukherjee
Ankush Bhattacharjee
Ashish Dutta
Biplab Sarkar
Debasis Sengupta
Gayatri Pal
Indrajit Basu
Indrani Bose
Koushik Ray
Minakshi Ghosh
Prasanta Kumar Mukherjee
Pushan Majumdar
Ramaprasad Dey
Ranjit Roy Chowdhury
Robert Dyson
Sandip Ghosh
Sankar Chakravorti
Santosh Kumar Samaddar
Sarbani Saha
Satrajit Adhikari
Satyabrata Roy
Siddhartha Chaudhuri
Souvik Mondal
Swapan Bhattacharjee
Utpal Chattopadhyay

The Numerical Algorithms Group Ltd., Oxford, UK, provided the author with a free
license to use their Fortran compiler. Intel Corporation allowed the author to use the trial
version of their Fortran compiler ifort. The free GCC gfortran compiler was also used.
National Council of Education, Bengal, and Institute of Business Management, NCE,
Bengal, allowed the use of their computer laboratory during the preparation of this book.
Finally, the author wishes to thank his family for their encouragement during the prepa-
ration of this manuscript.

xxv
Author

Dr. Subrata Ray is a retired senior professor of the Indian


Association for the Cultivation of Science, Kolkata. In his
career spanning over 40 years, he has taught computer
software in universities, research institutes, colleges and
professional bodies across the country. As a person in
charge, he has set up several computer centers, in many
universities and research institutes, almost from scratch.
Though his field of specialization is scientific computing,
he has participated in developing many systems and
commercial software.
He has an MSc, a Post MSc (Saha Institute of Nuclear
Physics) and PhD from Calcutta University and has
served several renowned institutes like Tata Institute of
Fundamental Research, Indian Institute of Technology,
Kharagpur, Regional Computer Centre, Calcutta, University of Burdwan and Indian
Association for the Cultivation of Science.
He is associated with the voluntary blood donation movement of the country and is
an active member of Association of Voluntary Blood Donors, West Bengal. He offers his
voluntary services to Eye Care & Research Centre and National Council of Education,
Bengal.
He is also an amateur photographer.
He is married to Sanghamitra, and they have a daughter, Sumitra. He lives in Kolkata
with his brother Debabrata and sister Uma.

xxvii
Another Random Scribd Document
with Unrelated Content
Before the actual operation takes place, if necessary after the
anæsthetic has been given, the ear and surrounding parts should
again be carefully cleansed, and the auditory canal syringed out with
biniodide of mercury solution.
In intrameatal operations the head should be wrapped in a sterilized
towel, and a square of sterilized lint, having an aperture in the centre
so as to expose only the auricle and meatus, should be placed over
the side of the head and face. In operations on the mastoid process,
and in those involving a post-auricular incision, the head should also
be shaved for at least two or three inches beyond the region of the
ear.
Anæsthesia. Both local and general anæsthesia are used. Unless
contra-indicated for some special reason, and unless the operation is a
very trivial one, it is wiser to give a general anæsthetic. Of these,
chloroform is the most suitable in adults and infants, and the A. C. E.
mixture in children. Ether, although it may be safer, is frequently a
source of annoyance to the operator, as it tends to increase the
hæmorrhage.
In order to produce local anæsthesia two methods may be employed:
(1) The instillation of fluids into the meatus; (2) subcutaneous
injection of fluids beneath the lining membrane of the meatus and into
the surrounding parts of the auricle.
The solution usually employed is a sterilized aqueous solution of
cocaine hydrochloride in varying strengths up to 20%, to which may
be added equal parts of 1 in 1,000 adrenalin chloride solution; the
latter not only increases its analgesic properties, but also acts as a
powerful hæmostatic.
Instillation. As the auditory canal and the tympanic membrane are
lined with epithelium which is very resistant to the absorption of fluids,
complete anæsthesia is almost impossible to obtain. This method,
therefore, is practically limited to such trivial operations as the
curetting away or snaring off of granulations or polypi from the
external or middle ear. To render anæsthesia more complete, the
affected part may be finally rubbed over with a crystal of solid cocaine
hydrochloride just before the operation—is begun. On the other hand,
if the raw surface is large—for example, the wound left after a recently
performed complete mastoid operation—the cocaine employed should
not be stronger than a 5% solution in order to minimize the risk of
poisoning. Gray of Glasgow has suggested, as a more penetrating
anodyne solution, a mixture consisting of a 10% solution of cocaine
hydrochloride in equal parts of aniline oil and absolute alcohol, a
solution which he especially advocates in order to produce anæsthesia
of the tympanic membrane before doing paracentesis.
Subcutaneous injection. This is a modification of Schleich’s method,
and was first introduced by Neumann of Vienna. It consists in injecting
a very weak solution of cocaine and adrenalin chloride subcutaneously
beneath the periosteum lining the auditory canal. By this method even
the complete mastoid operation has been performed, and in certain
clinics it is used continually in the minor operations of paracentesis of
the tympanic membrane, division of intratympanic adhesions,
extraction of polypi, and ossiculectomy. A solution of beta-eucaine or
novocaine may be used in preference to cocaine, as being less
dangerous. According to Neumann, three solutions are necessary: (a)
a 1 in 2,000 solution of adrenalin chloride containing a 1% solution of
beta-eucaine; (b) a 1 in 3,000 solution of adrenalin chloride containing
a 1% solution of cocaine; (c) a 20% solution of cocaine.
The syringe for injecting the solution has a
capacity of 1 cubic centimetre, and for
convenience its needle is fixed at an obtuse
angle to the body of the syringe (Fig. 177). The
technique of the injection depends on whether
the operation is to be limited to the auditory
canal and tympanic cavity, or is to involve the
mastoid process.
If the complete mastoid operation is going to be
performed, the needle of the syringe, now filled
with the eucaine solution, is thrust through the
skin about the middle point of the mastoid
process, and a few drops of the solution are
Fig. 177. Neumann’s
injected. The needle is then forced upwards Syringe for Subcutaneous
towards the temporal ridge, at the same time Injection.
being thrust in deeply until it touches the bone,
so that a syringeful of the solution is injected beneath the periosteum.
The needle is then withdrawn and reinserted at the same point, but in
a backward direction, the solution being injected along the posterior
portion of the mastoid process; in a similar manner the solution is
injected downwards towards the tip of the mastoid. The ear being now
pulled well forward, the needle is made to pierce the fold between the
auricle and the mastoid process, just above the posterior ligament,
and is pushed inwards between the anterior border of the mastoid
process and the cartilage of the meatus, and a further syringeful of
the solution is injected. A large speculum is now inserted into the ear,
so that by pressing it against the wall of the meatus the skin, at the
termination of the cartilaginous portion, is made to project in folds.
The needle of the syringe, filled with cocaine solution, is pushed into
this fold, and a few drops of the solution injected. By degrees the
needle is still further pushed inwards, keeping it in close contact with
the bony wall so that the fluid is injected beneath the periosteum. If
the injection has been successful, a white bulging of the superior wall
of the auditory canal will be noticed. To render anæsthesia complete,
further injections may be made into the inferior and anterior walls of
the auditory canal. Finally, a pledget of cotton-wool soaked in a 20%
solution of cocaine is pushed into the tympanic cavity.
In the case of simple opening of the mastoid, subcutaneous injections
into the auditory canal are not necessary. On the other hand, if the
operation is limited to the auditory canal and tympanic cavity, the
injections into the mastoid process are not required, but a primary
injection of a small quantity of eucaine solution into the auriculo-
mastoid fold considerably diminishes the pain produced during the act
of injection into the auditory canal. Fifteen minutes should be allowed
to elapse before the operation is begun. The anæsthesia lasts about
half an hour.
Difficulties. It is by no means easy to inject fluid beneath the
periosteum of the auditory canal, owing to its close adherence to the
bone. The needle by mistake may repierce the skin at a point farther
in, so that the fluid, instead of being injected beneath the periosteum,
is injected into the auditory canal itself. In these cases anæsthesia will
not be obtained, and the operator may possibly blame the principle of
subcutaneous injection, rather than his own faulty technique.
In favour of subcutaneous injection it is urged that most of the minor
operations within the tympanic cavity, including ossiculectomy, may be
performed with the patient sitting up in the chair in the consulting
room, and further, that the patient can afterwards go home; that the
operation is rendered more easy owing to there being practically no
bleeding; and that in the case of the more severe operations, such as
opening of the mastoid antrum, the surgeon, in a case of emergency,
may make use of this method if he cannot possibly obtain the services
of an anæsthetist.
Against subcutaneous injection is the pain of the injection, which may
be so great that the patient will not submit to it, and in consequence
the proposed operation may have to be postponed.
In the case of the mastoid operation, it is difficult to believe that local
anæsthesia, however efficient, will be looked upon with favour either
by the surgeon or by the patient, except when a general anæsthetic is
absolutely contra-indicated. The discomfort produced by retraction of
the parts, the jarring caused by chiselling, and the consciousness of
what is taking place, are far more unpleasant and more of a shock to
the patient, than a general anæsthetic carefully given. Further, it is not
always possible to foretell the extent of the operation, and if repeated
injections become necessary, there is danger of eucaine or cocaine
poisoning being produced.

Position of the patient and the surgeon


1. In the minor operations the patient may be operated on whilst in
the sitting posture, whether a local anæsthetic or a general one of gas
and oxygen is employed. The relative positions of the patient and the
surgeon are then the same as for the ordinary routine examination of
the ear. Special care, however, should be taken that the patient’s head
is supported by the anæsthetist or assistant in order to prevent
involuntary movements.
2. If the patient is operated on in the recumbent position, the head
may rest comfortably on an ordinary pillow, but if chiselling is going to
take place, the best support is a loosely filled sand-bag. The head
should be turned towards the opposite side so that the affected ear is
uppermost, and the surgeon stands at the side to be operated on. The
lamp, the source of reflected light, should be held about six inches
above the patient’s shoulder on the opposite side.

CHAPTER II

OPERATIONS UPON THE EXTERNAL AUDITORY


CANAL

OPERATIONS FOR FURUNCULOSIS


The operative treatment consists in incising the furuncles and, if
necessary, curetting out their contents.
Indications. (1) If, in spite of palliative treatment for two days, the
pain be so intense as to prevent sleep, and be accompanied by
pyrexia.
(2) If there be accompanying œdema of the auricle and surrounding
parts.
(3) If the furuncles occur during the course of a middle-ear
suppuration, and occlusion of the external meatus prevents free
drainage of the purulent secretion.
When possible, it is always preferable to operate under a general
anæsthetic, such as gas and oxygen. If, however, the patient objects
to a general anæsthetic, it should be explained that, in spite of the
application of anodynes, the operation, although of momentary
duration, will be excessively painful.
Operation. After the ear has been thoroughly cleansed, a large aural
speculum is inserted within the meatus and the auditory canal dried
with pledgets of cotton-wool.
The instrument usually used for this operation is a small and narrow
sharp-pointed knife known as Hartmann’s furunculotome (Fig. 178, c).
Equally suitable, however, is a fine bistoury; or, if necessary, a small
tenotome or the ordinary paracentesis knife.
The surgeon holds the
speculum in position within
the meatus with the left
hand, and with the right
inserts the knife through the
lumen of the speculum
along the meatus until its
point passes the innermost
limit of the furuncle. It is Fig. 178. Burkhardt-Merian’s Aural Instrument.
then quickly withdrawn, at a. Curette. b. Myringotome. c. Furunculotome.
the same time incising the d. Hook for removal of foreign body.
furuncle freely down to its
base. Another method is to transfix the furuncle by passing the knife
through its base and making it cut outwards through the skin. In a
similar manner any other furuncles that may be present are incised or
transfixed.
If the inflammatory process, instead of being localized as a furuncle,
extends to the subcutaneous tissues, and especially if it is
accompanied by much pain, pyrexia, and occlusion of the external
meatus, linear scarification may become necessary.
After incision, the contents of the furuncle are rapidly scooped out
with the curette (Fig. 178, a). Slight hæmorrhage may occur, but can
be arrested at once by plugging the meatus for a minute with a strip
of sterilized gauze. The auditory canal is finally syringed out with a
warm aqueous 1 in 5,000 solution of biniodide of mercury and firmly
plugged with gauze soaked in a 10% solution of carbolic acid in
glycerine; a hot fomentation being afterwards applied to the side of
the head.
If the operation has been performed under a local anæsthetic (and
this should only be done if a solitary furuncle is present), the pain is
usually too great to permit of firm packing of the auditory canal. This
after-packing, however, should be carried out, if possible, for the
following reasons: firstly, it presses out the contents of the furuncle;
secondly, it prevents auto-infection from one hair follicle to another;
and thirdly, it tends to dilate the auditory canal.

After-treatment. If the furuncles have occurred during the


course of a middle-ear suppuration, the gauze plugging must be
removed within a few hours after the operation. The ear is then
syringed out once or twice daily with a warm solution of lysol or
carbolic acid, a small wick of gauze soaked in a 10% solution of
carbolic acid in glycerine being afterwards inserted along the meatus.
If there be no accompanying middle-ear suppuration, the packing
should not be removed for at least twenty-four hours. The pain
produced by the first dressing may be severe, but can be usually
avoided by first soaking the gauze with 5% solution of cocaine for a
few minutes before removal and then gently withdrawing it whilst the
ear is being syringed with a warm aseptic lotion. For the next two or
three days it is sufficient to insert a drain of gauze soaked in a 1 in
3,000 alcoholic solution of perchloride of mercury.

Results. Although cure may be expected, it is not uncommon for


further furuncles to occur in crops at repeated intervals. This is due to
auto-infection of the hair follicles, which to a large extent may be
prevented by painting the surface of the auditory canal daily, for at
least two or three weeks, with an oil containing a drachm of nitrate of
mercury to the ounce.
In the case of diffuse inflammation, although relapses are uncommon,
superficial necrosis of a portion of the bony meatus may afterwards
occur as a result of involvement of its periosteal lining. If this takes
place, stenosis of the auditory canal may afterwards occur from
subsequent cicatrization.
Dangers. With ordinary precautions no accident should occur, but
the following may be mentioned: (1) if the furuncles are deeply
placed, the tympanic membrane may be incised inadvertently, and a
middle-ear suppuration may result; (2) a too violent incision may cut
through the meatal cartilage posteriorly, and, as a result of septic
infection, may give rise to perichondritis of the auricle. This,
fortunately, is rare.

REMOVAL OF EXOSTOSES FROM THE EXTERNAL MEATUS

Indications. The indications vary, depending on whether there is


a coexisting middle-ear suppuration or not.
If there be no middle-ear suppuration. Operation is not urgent,
but is justifiable under the following conditions:—
(i) When one ear only is affected. (a) If there be complete deafness
due to obstruction of the auditory canal. The question of operation,
however, should be decided by the patient, because it may be
postponed indefinitely so long as no symptoms occur.
(b) If there be recurring attacks of discomfort or of pain in the ear as a
result of eczema, of otitis externa, or of actual pressure of the growth
itself. The patient may desire operation to obtain permanent relief.
(c) If there be deafness of the opposite side from other causes, and
the presence of the exostoses is causing deafness of the functionally
good ear.
(ii) When both ears are affected. In addition to the indications already
given, operation is advisable on the worse side if there be almost
complete obstruction on both sides, accompanied by recurrent attacks
of deafness, owing to the narrowed passage of the auditory canal
becoming repeatedly blocked from accumulation of cerumen or
epithelial débris.
Operation is contra-indicated if previous examination indicates that the
deafness is due to a chronic middle-ear catarrh or internal-ear disease,
as in these cases restoration of hearing, which is the primary object of
the operation, will be impossible.
If middle-ear suppuration be present operation is generally
advisable.
(i) In acute middle-ear suppuration operation is urgent if there are
signs of retention of pus, provided it is impossible to dilate the lumen
of the auditory canal. Before resorting to operation an attempt should
always first be made to obtain free drainage, as the obstruction may
be due merely to inflammatory swelling of the tissues lining the
auditory canal. With cessation of the acute inflammation, this swelling
may subside and the lumen of the auditory canal again become
patent; and if recovery with healing of the tympanic membrane takes
place the hearing may again become normal, rendering the operation
no longer necessary.
(ii) In chronic middle-ear suppuration operation is always indicated if
there are symptoms of retention of pus. It is also advisable as a
prophylactic measure, although not urgent, even although no acute
symptoms are present.

Operation. When there is no middle-ear suppuration.


The operation may be performed either (a) through the external
meatus or (b) by reflecting the auricle forward by a post-auricular
incision.
Through the external meatus. This method is only indicated if the
exostosis is situated at the entrance of the meatus and is
pedunculated.
A general anæsthetic is given, the patient being in the recumbent
position. The surgeon works by reflected light. After the ear has been
thoroughly cleansed a large-sized aural speculum is inserted into the
meatus and the outlines of the exostosis are defined with a probe. A
small gouge or chisel is used. It is inserted into the meatus in such a
fashion that its point presses between the pedicle of the exostosis and
the wall of the bony meatus. With successive sharp taps of the mallet,
the gouge is made to cut through the pedicle, care being taken that
the instrument is not driven in too deeply, on to the tympanic
membrane.
The growth, which can now be felt to be movable within the meatus,
can usually be removed by grasping it between the blades of forceps,
or can be expelled by syringing the ear. After its removal the auditory
canal should be plugged for a few minutes with a solution of cocaine
and adrenalin chloride. This checks all hæmorrhage, and at the same
time enables the surgeon to get a good view of the deeper parts to
see if further growths are situated more deeply within the meatus.
Such growths, provided they are pedunculated and do not abut on the
tympanic membrane, can sometimes also be removed by the same
method; much depends on their shape and situation. If sessile or too
deeply placed, the operation may have to be completed by reflecting
forward the auricle. Before terminating the operation a clear view of
the tympanic membrane should always be obtained.
The meatus is finally syringed out with a 1 in 5,000 aqueous solution
of biniodide of mercury and dried, a strip of sterilized gauze being
inserted into the auditory canal. A simple dressing is then applied to
the side of the head.
Other methods of operation through the external meatus.
(a) Perforation of the exostosis, or enlargement of the small passage
existing between multiple exostoses, by means of the burr.
Although successful results have been recorded, this method is not
advised, as cicatricial tissue almost invariably causes closure of the
opening made. To keep the opening patent it is necessary to insert a
small lead or silver canula, frequently a source of great discomfort.
(b) If the exostosis has a very fine pedicle, it may be possible to nip
through its base with a pair of forceps, but it is not so sure a method
as the employment of a gouge and mallet.
(c) Such methods as attempts to destroy the growth by means of the
galvano-cautery or by the pressure of laminaria tents should be
avoided; they are useless and unsurgical.
By reflecting the auricle forward. This is indicated if the exostoses
are multiple, have a broad base, and are deeply situated.
The position of the patient, and the anæsthetic, are the same as in the
previous operation. Reflected light may not be necessary.
The ear and the surrounding parts are carefully cleansed and the head
is shaved for a short distance over and beyond the mastoid process. A
curved incision is made close behind the auricle (Fig. 226), beginning
at the upper level of its attachment and extending downwards along
the retro-auricular fold. The incision goes down to the bone. The
auricle is reflected forward and the soft tissues are separated from the
bone until Henle’s spine and the posterior upper margin of the
auditory canal are brought into view. Any bleeding, chiefly from
branches of the posterior auricular artery, is at once arrested by
pressure forceps, ligatures being afterwards applied. The assistant’s
duty is to hold the auricle well forward and at the same time to keep
the wound dry by swabbing.
The fibrous portion of the canal is carefully separated from the bony
portion with the periosteal elevator, the growth, if possible, being
exposed without tearing through the thin layer of skin which covers it.
The method of procedure now depends on the character and number
of the exostoses present.
(a) If situated superficially, they are removed by chiselling through
their base with a gouge. They should be thoroughly removed, if
necessary cutting through the normal bone well behind their base.
(b) If deeply placed, they are more easily removed by first chiselling
away a part of the upper posterior wall of the external meatus. This is
done in the same manner as in the early stage of the complete
mastoid operation (see p. 397). If possible the antrum should not be
exposed, and care should be taken not to cut too deeply for fear of
injuring the tympanic membrane.
(c) If the exostoses spring from the anterior wall, it is necessary to
make a T-shaped incision through the posterior membranous portion
of the auditory canal in order to bring them into view clearly. This is
done with a tenotomy knife, the flaps being held apart by means of
forceps. The growths can now be removed by means of the gouge and
mallet.
(d) If the obstruction is due to multiple small exostoses forming an
annular stricture within the bony canal, it is better to separate the
membranous portion completely from the bony meatus. In doing so
the skin over the exostoses tears through, so that the membranous
portion can be reflected outwards as a finger-like process. To give
greater room for the operation, the auricle and fibrous portion are
pulled well forward by means of a loop of gauze passed through the
lumen of the cartilaginous meatus.
If necessary, reflected light should now be used. To reach the
exostoses it may be necessary, as in the previous case, to remove part
of the posterior bony wall. With the gouge and mallet the exostoses
are carefully chiselled away. They frequently abut on the tympanic
membrane, so that their removal without injuring it may be well-nigh
impossible. It is of the utmost importance that the field of operation
should be kept dry, if necessary by repeatedly mopping out the canal
with pledgets of cotton-wool soaked in adrenalin solution. The chief
difficulty is to determine the situation of the tympanic membrane. A
fine probe is used to discover any existing chink between the growths;
this will be a guide to show the direction in which to work. As soon as
a small passage has been made, sufficient to allow of a view of the
deeper-lying parts, the ear should be syringed out and dried, and a
thorough inspection made. The tympanic membrane can usually be
seen as a greyish-blue membrane; at other times it can be recognized
by touching it with a probe. After making certain of the position of the
membrane, the rest of the operation is easy. A small seeker (Fig. 219),
such as is used in the mastoid operation, is passed through the
opening already made, and with it the deeper limits of the exostoses
can be felt. The opening is gradually enlarged by removing the
growths piecemeal with the chisel or gouge.
Although the burr is contra-indicated when operating through the
external meatus, it is frequently of great service in these cases in
rendering the walls of the canal smooth. The disadvantages of using a
burr are, that it is less easy to control (unless the surgeon has had
considerable experience in using it), and that it destroys all the
epithelial lining of the auditory canal with which it comes in contact. It
should, therefore, only be used in those cases in which there is a
complete ring of exostoses, but should be avoided if the exostoses are
limited and if it is still possible to leave untouched a portion of the
epithelial lining of the auditory canal.
When the surgeon considers he has successfully removed the
obstruction, he should verify this fact by syringing out and drying the
ear, and again obtaining a clear view of the tympanic membrane.
The fibrous portion is now replaced by inserting a finger into the
cartilaginous meatus and pressing it back into the bony canal, the
auricle being meanwhile pulled back into its normal position. The
edges of the posterior wound are sutured together and the auditory
canal is gently packed with gauze which should be inserted right down
to the tympanic membrane. It is not necessary to make special meatal
skin flaps, as careful packing of the auditory canal should be sufficient
to keep the parts in apposition.
When middle-ear suppuration is present. In acute middle-ear
suppuration the chief difficulty is to decide what operation to perform.
As operation is only indicated if there is retention of pus, it is wiser to
open the mastoid antrum; the exostosis, if superficial and
pedunculated, can also be removed at the same time. If, however, the
obstruction is due to multiple and deeply placed exostoses, this part of
the operation should be deferred to a later date, that is, after the
acute symptoms have subsided.
In chronic middle-ear suppuration the only operation to be
recommended is the complete mastoid operation (see p. 392).

After-treatment. The after-treatment is practically the same


whatever operation has been performed. The first dressing need not
be done until the third day. The gauze plugging is then withdrawn and
the auditory canal is syringed out and dried. If only a single exostosis
has been removed the wound surface is small, and it is usually
sufficient to puff in some boracic powder and again insert a piece of
gauze. This may be repeated every second day, healing usually taking
place within two or three weeks. In the case of deeply situated
multiple exostoses, especially if removed from the anterior wall,
considerable swelling of the soft parts lining the auditory canal may
occur as a result of the manipulations. In such cases, after syringing
out any existing blood-clots, some cocaine and adrenalin solution
should be instilled into the meatus. An aural speculum is then
gradually worked into the auditory canal, which is gently mopped out
with small pledgets of cotton-wool, and the deeper parts are carefully
inspected. Sometimes the torn ends of the fibrous portion, instead of
covering the bony walls, are found to project into the auditory canal
and to cause considerable narrowing of its lumen. By careful
manipulations with the probe or by stroking the edges with tiny
pledgets of cotton-wool, these rough surfaces may be smoothed
down. It is very important, in the early days of the after-treatment, to
prevent any narrowing at the site of the operation. This is one of the
chief causes of subsequent failure. The gauze should always be
reinserted right down to the tympanic membrane, and if there is not
much secretion it should be packed firmly against the posterior and
outer portion of the canal in order to prevent subsequent stenosis
from the tendency of the cartilage to prolapse forward owing to the
soft parts having been separated from the bony canal at the time of
the operation.
The wound behind the ear heals very quickly and the stitches can
generally be removed on the third or fourth day. Subsequent
treatment consists in preventing the formation of granulations over the
wound area. This is best accomplished by keeping the auditory canal
aseptic and dry. If granulations occur they should be touched from
time to time with a saturated solution of trichloracetic acid. If healing
has not taken place within two weeks, it will frequently be
advantageous to discontinue the gauze packing and, in its stead, to
instil drops of pure rectified spirit.
If a middle-ear catarrh with secretion of fluid occurs, owing to the
tympanic membrane having been injured, it may be impossible to
continue the gauze packing. In these cases only a fine drain of gauze
should be inserted into the meatus, the dressing being changed as
frequently as may be necessary.
Provided asepsis is maintained, the middle-ear inflammation usually
subsides rapidly with healing of the membrane. After healing has
taken place, inflation of the middle ear is recommended twice a week,
for two or three weeks, in order to aid recovery and to prevent
adhesions forming within the tympanic cavity.
Dangers. 1. If the exostoses be deeply situated, the tympanic
membrane may be injured.
2. If much of the anterior wall of the auditory canal be removed, the
temporo-maxillary joint may be opened.
3. It is possible that the tympanic membrane may not be recognized,
and, by working too deeply, the labyrinth or the facial nerve may be
injured.

Prognosis. Provided no accident has occurred during the


operation, a successful result should be obtained. Stenosis, however,
may occur from cicatricial contraction if the operation has been
incompletely performed.

REMOVAL OF FOREIGN BODIES


Before considering the question of removal of foreign bodies, the
following points cannot be emphasized too forcibly:—(1) No attempt
should be made to remove a foreign body until it is certain that one
really exists. (2) Provided there is no middle-ear suppuration, a foreign
body left in the ear will very rarely cause any immediate harm. (3) The
most serious complications are due almost invariably to ill-advised
haphazard attempts to remove the foreign body; as a rule from
working blindly in the dark without making use of reflected light.
If a foreign body be suspected, the surgeon should first carefully
examine the auditory canal in order to determine its character and
position and the condition of its walls. On this will depend the
treatment to be employed.
If the object be a living insect it should be killed at once by the
instillation of warm oil, rectified spirit, or chloroform. This will cause
immediate relief of the intense pain and tinnitus which may have been
set up by its movements against the sensitive tympanic membrane.
The methods employed for the removal of a foreign body are
syringing, extraction by instruments through the external meatus, and
removal by operation by making a post-auricular incision and reflecting
forward the auricle.
By syringing. In the vast majority of cases syringing is
successful, and therefore should always be tried except under the
following conditions:—(a) If the foreign body be of such a nature that
it may be driven inwards; for example, a percussion cap for a toy
pistol, lying with its concavity outwards.
(b) If there be much inflammation and swelling of the walls of the
external meatus, unfortunately frequently due to previous
unsuccessful attempts at extraction by instruments. In such cases
forcible syringing may cause considerable pain, and in addition
immediate removal of the foreign body may be impossible owing to
the temporary occlusion of the meatus.
Unless urgent symptoms of retention of pus behind the foreign body
are present, it is wiser to wait for a few days until the inflammation
has subsided, in order that the canal may become more patent and
permit of a more favourable opportunity for removal of the foreign
body. The auditory canal, in the meanwhile, may be mopped out two
or three times a day with pledgets of cotton-wool, and a 1 in 5,000
alcoholic solution of biniodide of mercury afterwards instilled into the
ear.
The method of syringing has already been described (see p. 308). The
syringe should be a large one with its tip protected by some india-
rubber tubing. The point is inserted within the meatus up against the
foreign body and the stream of lotion is directed towards any chink
which may exist between it and the auditory canal. It may be
necessary to use many syringefuls with considerable force before the
foreign body can be expelled, but the syringing should be stopped if
pain or giddiness are caused.
If the foreign body cannot be removed at the first attempt, drops of
rectified spirit may be instilled into the ear several times a day,
provided there are no urgent symptoms. This will tend to diminish any
swelling of the soft tissues of the external meatus and of the foreign
body if it is a vegetable substance. The ear should again be syringed
after two or three days. In many cases this will now be successful; if
not, the foreign body may be moved gently with a probe (using a
speculum and reflected light), great care being taken not to push it
further into the auditory canal, and another attempt may be made to
remove it by prolonged syringing. If this fails it may be left in situ for a
still longer period, provided there are still no symptoms requiring its
immediate removal. In some cases, instead of the instillation of
alcohol, a 5% solution of carbolic acid in glycerine or olive oil proves
more effectual.
In the case of a hard substance, repeated attempts may be made to
dislodge it before resorting to further measures; but in the case of a
soft vegetable substance like a pea, it must not be forgotten that
moisture tends to make it swell and perhaps will necessitate almost
immediate extraction by instruments.
Extraction by
instruments.
Indications. (i) If
inspection shows that the
foreign body can at once be
removed by a suitable
instrument: for example, a
percussion cap the edge of
which may be grasped by a
pair of forceps (Figs. 179 Fig. 179. Crocodile Forceps. Two-thirds size.
and 193); or a small boot a, Points of crocodile forceps, full size.
button whose shank, if it b and c, Aural punch-forceps.
d, Aural scissors.
faces outwards, may be
caught by a small hook.
(ii) If repeated attempts have failed to remove the foreign body by
syringing.
(iii) If previous attempts by others have failed, and the foreign body
has been pushed in beyond the isthmus, and cannot be removed after
prolonged syringing.
(iv) If syringing produces violent giddiness, showing the probable
presence of a perforation of the tympanic membrane.
(v) If there be symptoms of acute inflammation of the middle ear or of
pus being pent up behind the foreign body.
Operation. An anæsthetic may not be necessary in adults if the
foreign body is not too deeply placed within the ear, if its removal
appears to be a simple matter, and if the patient is of a placid
temperament. Otherwise, unless contra-indicated for some special
reason, a general anæsthetic should always be given in children, and it
is also preferable in adults for the following reasons:—(1) Inability to
remove the foreign body after repeated attempts by syringing usually
means that its extraction by instruments will be a somewhat difficult
matter. (2) The risk of injury to the meatal walls or tympanic
membrane from involuntary movements of the patient during the
operation is far greater than the risk of the anæsthetic. (3) If the
foreign body cannot be removed through the meatus by means of
instruments, the post-meatal operation is indicated. This, if necessary,
can be done at once if the patient is under a general anæsthetic.
If no anæsthetic is given the patient may sit up in a chair; otherwise,
the recumbent position is advised.
It is usually necessary to use an aural speculum, but if the foreign
body be situated near the entrance of the meatus a sufficient view
may be obtained by pulling the tragus forward and the auricle
backward. Good illumination is essential.
(i) If the body be a soft substance, such as a pea, the core of an
onion, or a fragment of wood, it is best removed by fixing into it some
form of sharp hook (Fig. 178, d). These hooks vary in shape. They
may be curved, or shaped like a crochet-hook, or have the sharp point
placed at right angles to the shaft of the instrument.
In the case of a round substance like a pea, especially if it is tightly
impacted within the meatus, its removal is sometimes facilitated by
first slicing it into pieces by means of a small bistoury.
As a rule, the foreign body is impacted at the junction of the
cartilaginous and bony portion of the auditory canal; sometimes,
however, it is more deeply situated within the osseous meatus, usually
the result of previous attempts to extract it.
In the former case, the instrument is passed along the upper posterior
wall of the canal between it and the foreign body, the point of the
hook being kept upwards or downwards so as not to project into the
auditory canal. The instrument is first passed well beyond the foreign
body, and then the shaft is twisted round so that the hook projects
into the auditory canal. With a quick movement it is drawn outwards a
short distance so that the point of the hook pierces the impacted
substance. Gentle traction is now used and in the majority of cases the
foreign body can be extracted.

Fig. 180. Imray’s Scoop for extracting a Foreign Body.


If this fails, a slightly curved fenestrated scoop (Fig. 180) or curette
should be passed, if possible, between the foreign body and the
anterior wall of the auditory canal. The hook already fixed into the
foreign body prevents it from being driven further within the meatus,
whilst the scoop, if it can be got beyond the foreign body, can usually
lever it out.
If the foreign body has been pushed in beyond the isthmus and lies
deeply within the osseous canal, it is better to pass the hook along the
anterior inferior wall of the meatus, because owing to the inclination of
the tympanic membrane its anterior inferior margin is much more
deeply placed than its upper posterior part.
(ii) In the case of a hard substance, such as a piece of stone, coal, or
a bead, blunt hooks may be used instead of sharp ones. They should
be passed into the meatus beyond the foreign body in the manner
already described.
(iii) In other cases, depending on its shape and position, the foreign
body is better removed by means of a snare, the loop of which is
manipulated round it and then drawn tight in the same manner as in
the extraction of a polypus.
The chief points to observe in these manipulations are (a) not to push
the foreign body farther in and (b) not to injure the walls of the
meatus or the tympanic membrane.
Other methods of extraction are—(1) Drilling through the foreign
body, if it is a hard substance, and then inserting a fine hook into the
opening so made. (2) The agglutinative method, which consists in
dipping a small paint-brush into a concentrated solution of seccotine or
glue and then inserting it into the meatus until it comes in contact with
the foreign body. The brush is left in this position for several hours in
the hope that it may become adherent to the foreign body; if so, on
withdrawing the brush from the ear, the foreign body should be
extracted with it. This method can only be used provided the ear is
kept dry.
These procedures, although said to be successful in a few cases, are
not recommended.
After-treatment. If the tympanic membrane and auditory canal have
not been injured, it is sufficient to dry the meatus and puff in a little
boracic powder. If there be abrasions of the canal, a small strip of
gauze should be inserted and changed as frequently as it becomes
moist with secretion, the meatus, if necessary, being also syringed out
with an aseptic lotion. If there be acute inflammation of the walls of
the canal, accompanied by much swelling and purulent discharge,
drops of glycerine of carbolic (1 in 10) may be instilled frequently.
After the inflammation has subsided, an alcoholic solution of 1 in
3,000 biniodide of mercury may be employed. If the tympanic
membrane has been injured, either from the presence of the foreign
body itself or from the attempts at extracting it, the treatment is
similar to that for an ordinary middle-ear suppuration.

Removal by operation. This may be done in the following


ways:—
By means of a post-aural incision.
Indications. (i) If prolonged attempts to remove the foreign body by
instruments have failed. This operation becomes imperative if there
are signs of retention of pus within the middle ear.
(ii) If the foreign body has been pushed into the tympanic cavity and
cannot be removed otherwise. In such cases, if the perforation is large
and the foreign body is small, an attempt may first be made to
dislodge the substance by injecting fluid into the middle ear through
the Eustachian tube by means of the catheter and syringe (see p.
372). This method, however, is rarely successful.
Operation. The procedure is the same as for the removal of
exostoses (see p. 318). After separating the fibrous from the bony
portion of the canal, an incision is made through it and the cut edges
are held aside with forceps. Usually the foreign body can now be seen
lying within the canal. It is best removed by passing a small
fenestrated curette beyond it and levering it out. In some cases one of
the hooks already mentioned will be found to be more suitable.
Forceps should not be used, as they may inadvertently push the
foreign body farther in. If the foreign body be very deeply placed,
removal of the upper posterior portion of the bony meatus may be
necessary. The subsequent steps of the operation and its after-
treatment are similar to that already described in the case of an
exostosis.
By means of an operation upon the mastoid.
Indications. (i) If the above measures fail to remove the foreign
body.
(ii) If there be symptoms of inflammation of the mastoid process, or of
internal-ear or of intracranial suppuration.
(iii) If there be facial nerve paralysis the result of pressure from the
foreign body.
Operation. The operation performed depends on the condition found.
Simple opening of the mastoid antrum may be sufficient in a case of
recent middle-ear suppuration, although it is usually necessary also to
remove a considerable portion of the posterior wall of the auditory
canal before the foreign body can be extracted. If these measures fail,
an attempt may be made to dislodge the foreign body by forcibly
syringing through the aditus, or by the insertion of a probe through it,
into the tympanic cavity. If this likewise ends in failure, it will then be
necessary to perform the complete operation. These cases fortunately
are rare.
If it be certain that chronic middle-ear suppuration already exists, the
complete mastoid operation is indicated.
If it becomes necessary to operate on the mastoid process, owing to
other means having failed to dislodge the foreign body, it is wiser, as a
rule, to perform the complete operation at once, because, under these
circumstances, irreparable destruction must have taken place within
the tympanic cavity.
The technique of these operations and their after-treatment are
described in the chapter on operations upon the mastoid process (see
p. 390).

OPERATIONS FOR STENOSIS OF THE EXTERNAL MEATUS


Stenosis, or stricture of the auditory canal, is practically always the
result of traumatism or inflammatory conditions; it is only very rarely
congenital.

Indications. (i) If there be deafness of the other ear, and the


functionally good ear periodically becomes deaf from obstruction of
the narrow passage by cerumen or epithelial débris, and the patient is
weary of conservative treatment.
(ii) If there be recurrent attacks of otitis externa.
(iii) If there be retention of pus, the result of inflammation of the
external or middle ear, which is not relieved by conservative treatment.
The operation is contra-indicated if there is accompanying deafness,
due to chronic middle-ear or to internal-ear disease, provided there is
no suppuration within the external or middle ear.
Operation. The method of operation depends on whether the
stricture is membranous, fibrous, or bony in consistence, or whether it
is limited or is causing a general narrowing of the auditory canal. It
may take one of the following forms:—
Dilatation. This method is not very satisfactory, and is limited to recent
cases of membranous or fibrous stricture of the annular variety. After
cleansing the meatus, a small laminaria tent is inserted through the
stricture, and if the pain is not too severe it is left in situ for at least
twenty-four hours and then withdrawn. The ear is again carefully
cleansed, and if possible a larger laminaria tent is substituted. This
procedure is repeated until the maximum amount of dilatation has
been obtained.
Incision of the stricture. This also is limited to membranous or to
fibrous strictures of the annular variety.
The operation, if necessary, may be performed under a local
anæsthetic, produced by subcutaneous injections, although usually a
general anæsthetic is preferable.
The ear and surrounding parts are surgically cleansed by the ordinary
methods. The surgeon works by reflected light. The patient may be in
either the sitting or the recumbent position, depending on whether a
local or general anæsthetic is given. In the latter case the auditory
canal should be filled with cocaine and adrenalin solution before the
anæsthetic is administered in order to diminish bleeding as far as
possible.
The ear having been dried, a conveniently large aural speculum is
inserted, and with a tenotome or a furunculotome radiating incisions
are made through the stricture. One of the small flaps thus made is
grasped with a fine pair of tenaculum forceps, and the surgeon cuts
through its base, keeping the knife as close as possible to the wall of
the auditory canal. Each flap is treated in a similar fashion. Instead of
making radiating incisions, the tissue forming the obstruction may be
transfixed through its base, the knife being made to cut in a circular
fashion right round the auditory canal, keeping as close as possible to
its wall.
On completion of the operation, a piece of india-rubber tubing, of as
large a size as possible, is inserted into the dilated canal. It should
only be removed for the purpose of cleansing and should be at once
reinserted. A silver canula, if necessary, can afterwards replace the
india-rubber tubing. This canula may have to be worn for months.
This operation is often most unsatisfactory, as the stricture, instead of
being annular as first supposed, may be found, on operation, to
extend a considerable distance along the auditory canal and, in
addition, to be partially due to a general thickening of the underlying
bone.
Excision of the stricture. The auricle is reflected forward and the
preliminary steps of the operation are performed as already described
for removal of a deep-seated exostosis (see p. 319). The surgeon
makes a transverse incision with a knife through the fibrous portion of
the auditory canal, just external to the stricture, and carries it right
round the meatus, thus separating the outer portion of the
membranous from the bony canal. The fibrous portion is now pulled
outwards by means of a retractor, and the thickened tissue, forming
the stricture, is peeled off from the surrounding bony meatus with a
small periosteal elevator and so removed. If the stenosis is partially
due to thickening of the walls of the canal itself, it may also be
necessary to chisel away a considerable portion of its upper posterior
part. After completion of the operation a clear view of the tympanic
membrane should be obtained.
In this operation a considerable portion of the bony canal is denuded
of its epithelial lining membrane, so that there is a special tendency to
the re-formation of cicatricial tissue. To prevent this taking place two
methods may be employed:—(1) If much of the upper posterior wall of
the bony meatus be removed, a post-meatal flap should be made and
kept in position by means of a catgut suture carried through the skin
behind the auricle. The formation of such a flap is described as a step
in the complete mastoid operation (see p. 401).
(2) If no bone be removed, the membranous portion is replaced in
situ, the posterior auricular wound closed, and as large an india-rubber
tube as possible is inserted into the meatus. A week or ten days later,
as soon as granulations begin to form, skin-grafting may be
undertaken (see p. 410).
If grafting be not successful, the india-rubber tube or silver canula
must be kept constantly within the meatus (only being removed for
cleansing purposes) until healing takes place.
The complete mastoid operation is indicated in the case of stenosis
occurring in chronic middle-ear suppuration if symptoms of retention
of pus occur.
In acute middle-ear suppuration, however, every attempt should be
made to avoid operation, as the lumen of the auditory canal may again
become patent after the acute inflammation has subsided.

OPERATIONS FOR ATRESIA


Atresia of the external meatus may be either congenital or acquired.

Indications. (i) In congenital cases operation is only justifiable if


the atresia is due to a membranous web situated in the outer part of
the auditory canal and if, as a result of tuning-fork tests and of
inflation through the Eustachian tube, it is fairly certain that the middle
ear is normal.
Operation is contra-indicated in cases of bony atresia. Although
attempts have been made to make an artificial canal in order to
restore the hearing power, a successful result has not yet been
obtained. Apart from the difficulty of retaining the patency of any
canal so made, the accompanying malformation of the middle ear
renders a successful result impossible (Paper by author, Journal of
Laryngology, &c., March, 1901). Although the tympanic membrane is
said to have been exposed by operation in a few cases, experience has
shown that the supposed tympanic membrane was really the capsule
of the temporo-maxillary joint.
(ii) In acquired cases operation is indicated if the other ear is deaf; if
the site of the occlusion of the auditory canal is in its outer part and is
due to membranous or fibrous tissue, and if there is no previous
history of middle-ear disease, and if the labyrinth is still intact.
Operation is not advised if the other ear is normal, unless the patient
particularly desires it.
Operation is contra-indicated if there is internal-ear deafness on the
affected side and if the other ear is normal; or if there is a definite
history of the closure of the auditory canal having been the result of a
previous middle-ear suppuration. In the latter case the destructive
changes within the tympanic cavity will be so marked that the chances
of improving the hearing will be very slight in spite of the most
successful operation.
Operation. If the obstruction be due to a fibrous band, an
attempt may be made to remove it by excising it by the intrameatal
method. In other cases the post-auricular method is necessary.
The chief point to remember is to make a large opening. For this
reason the post-auricular method is to be preferred, as a considerable
portion of the upper posterior wall can be removed and a large meatal
flap fashioned (see p. 401).

Results. If the stricture or point of occlusion of the auditory canal


is limited and composed of membranous and fibrous tissues, a good
result can be usually obtained, and there is no reason why complete
recovery of hearing should not take place if the labyrinth and tympanic
cavity are normal.
Unfortunately, as in all cases of stricture, there is a tendency for it to
recur.

OPERATIONS FOR AURAL POLYPUS


In this section only the aural polypi which project from the tympanic
cavity into the external auditory meatus will be considered; whereas
the treatment of granulations, and with them the minute polypi which
are still limited to the tympanic cavity, will be discussed in the chapter
on operations within the middle ear.
Indications. An aural polypus should always be removed
because, apart from the fact that it is a symptom of underlying
disease, it may obstruct free drainage of the purulent discharge, and
therefore become a source of danger.

Operation. The simplest and the best method is removal by the


snare.
In the case of small and soft polypi, the polypus is removed by traction
—formerly called avulsion—after the snare has been tightened round
its pedicle; with a large, tough, fibrous polypus considerable force may
be required to tear through its pedicle. This procedure in the case of
polypi arising from the region of the tegmen tympani has been known
to give rise to fatal meningitis. In such cases the pedicle of the
polypus should be cleanly cut through by the snare—so-called
excision.
As aural polypi are always associated with suppuration, it is especially
necessary that the ear should be thoroughly cleansed before
operation.
A local anæsthetic (see p. 310) is sufficient in the case of smaller
polypi, but if the polypus be large and tough, it is wiser to give a
general anæsthetic, such as gas and oxygen. Or a 3% solution of
cocaine may be injected into the growth, which, according to Frey of
Vienna, renders removal absolutely painless; this, however, has not
always been my experience.

Fig. 181. Aural Probe.


The size of the polypus and the origin of its pedicle should be
determined before operating, if necessary by using a probe (Fig. 181);
also it must be diagnosed from a bulging congested tympanic
membrane, or from the inner surface of the tympanic cavity, which
may be exposed to view owing to complete destruction of the
membrane having already occurred.
Fig. 182. Wilde’s Aural Snare. The snare is Fig. 183. Wilde’s Snare being passed
held in the usual position for extraction of round an Aural Polypus. (Semi-
a polypus. diagrammatic.)
A Wilde’s snare is generally used. It is a fine angular snare fitted with
soft copper wire. The loop of the snare should be bent downwards and
forwards and should be of such a size as to just surround the growth.
The snare is held between the thumb and the first and second finger
of the right hand (Fig. 182). Under good illumination, and using the
speculum and reflected light if necessary, the shaft of the snare is
passed along the upper portion of the auditory canal until the edge of
the polypus is reached. The loop is made to encircle the polypus (Fig.
183), the snare is gradually pushed inwards with a gentle sinuous
movement until it reaches the point of attachment of the growth. The
loop is then tightened until it firmly grasps the neck of the polypus
(Fig. 184). The friable tissue is torn through by gentle traction and the
polypus is withdrawn in the snare. Care must be taken not to injure
the tympanic membrane through which the polypus may be
projecting; it is for this reason that the loop is bent at an angle to the
shaft of the snare so that it may lie parallel to the tympanic membrane
whilst in the act of grasping the polypus. If the polypus be very small
its pedicle may be clearly defined before operation, and the snare
passed round it directly (Fig. 185).
Fig. 184. Wilde’s Snare gripping the Fig. 185. Polypus arising from the
Neck of Polypus. (Semi- Attic Region. The snare is in
diagrammatic.) position for the extraction of the
polypus. (Semi-diagrammatic.)

If the polypus be very large and tough, the snare is made to cut clean
through its pedicle as near to its attachment as possible, instead of
employing traction. The snare is then withdrawn, the polypus being
afterwards grasped and removed by means of forceps. In this latter
case it may be necessary to use a stronger snare fitted with piano
steel wire instead of the ordinary copper wire. On removal of the
polypus there may be considerable hæmorrhage. After it has ceased
the ear is syringed out and dried. The auditory canal is then inspected,
and if it is found that the growth has not been removed completely,
this can be done now by reapplication of the snare.
After final cleansing of the meatus, a strip of gauze is inserted, and
the ear protected with a pad of cotton-wool and a bandage.
After-treatment. The dressing should be removed within
twenty-four hours, and the ear cleansed by syringing. After mopping it
dry drops of rectified spirits should be instilled.
On removal of the first dressing, any polypoid tissue which remains
may be cauterized under cocaine anæsthesia by the actual cautery, or
by a bead of chromic or trichloracetic acid (see p. 348).
Further treatment consists in keeping the ear clean and dry. For the
first few days it should be syringed daily, dried, and spirit drops
instilled. As the secretion becomes less the syringing should be
diminished. If the perforation be large, instead of instilling drops,
some finely powdered boric acid may be puffed in.
Other methods of removal. These are not recommended, but
merely mentioned for the sake of completeness.
By forceps. The rough and ready method of extracting a polypus
forcibly from the ear by means of forceps, although practised formerly,
has now been discarded as being unsurgical and dangerous.
Ligation. The operation consisted in passing a snare over the polypus
and grasping it tightly as near to its base as possible. The snare was
then twisted round its axis in order to tighten the loop further and so
obliterate the blood-supply of the growth, the wire of the snare being
afterwards cut through with pliers and the snare withdrawn. After a
few days the polypus became gangrenous from want of blood-supply,
and separated from its deep attachments.
Curetting. This method, which should only be made use of in the case
of small multiple polypi within the tympanic cavity, will be considered
when discussing the treatment of granulations within the middle ear
(see p. 398).
Dangers. Hæmorrhage is seldom profuse, but if it is, it can always
be arrested by packing the meatus with cocaine and adrenalin
solution.
The chief dangers are injury to the contents of the tympanic cavity,
such as dislocation or removal of the ossicles; or subsequent
meningitis. These mishaps are usually the result of forcible extraction,
or of blindly curetting the ear after this has been done. Meningitis,
however, has been known to occur, in spite of every precaution being
taken, if, owing to caries of the tegmen tympani, the polypus has its
origin from the dura mater of the middle fossa.
Prognosis. If the polypus be single and of recent origin, the result
probably of acute inflammation of the middle ear, its removal may
cause complete recovery and cessation of the middle-ear suppuration.
In the case, however, of multiple polypi associated with chronic
middle-ear suppuration and usually signifying underlying bone disease,
recurrences may be frequent and further operations may become
necessary.
It may here be emphasized that a polypus in itself is not a disease, but
merely a symptom of disease.
After removal of a large polypus, the patient should always be kept
under observation for a day or two in case of symptoms of acute
inflammation of the mastoid process arising and necessitating further
operation.

CHAPTER III

OPERATIONS UPON THE TYMPANIC MEMBRANE


AND
WITHIN THE TYMPANIC CAVITY

SURGICAL ANATOMY OF THE TYMPANUM


The tympanic membrane. The chief points to notice when
operating on the tympanic membrane are its inclination and its relation
to the inner wall of the tympanic cavity.
The normal membrane is inclined obliquely downwards and forwards
so that it forms an obtuse angle of 140 degrees with the roof and an
acute angle of 27 degrees with the floor of the external meatus. In
infants the inclination is even greater.
Its relation to the tympanic cavity varies in its different parts. It lies
nearest to the inner wall in the region of the umbo, being only 2
millimetres distant from the promontory, and is furthest from it in the
posterior quadrant.
Running backwards, just below the posterior fold, is the chorda
tympani nerve, which may be cut through in the act of paracentesis
and in division of the posterior fold.
The tympanic cavity. For the purpose of description the
portion of the tympanic cavity above the level of the tympanic
membrane is known as the attic or epitympanic cavity; whilst the part
below its level is called the cellar or hypotympanic cavity (Fig. 186).

Fig. 186. Anatomical Preparation of the Middle Ear.


1½ nat. size. 1, Antrum; 2, Aditus; 3, Attic,
containing head of malleus and body of incus; 4,
Chorda tympani nerve; 5, Middle fossa of
intracranial cavity; 6, Eustachian tube; 7, Carotid
canal; 8, Jugular vein in jugular fossa; 9, ‘Cellar’ or
floor of tympanic cavity; 10, Canal of facial nerve;
11, Sigmoid groove for lateral sinus. (From the
Author’s Diseases of the Ear.)
The attic contains the head of the malleus and the body and short
process of the incus, and communicates posteriorly with the antrum by
a variable sized opening—the aditus. Its roof, the tegmen tympani, a
plate of bone frequently of extreme thinness, separates the cavity of
the middle ear from the middle fossa of the cranium. The facial canal
extends backwards along the inner and upper border of the tympanic
cavity, passing above the vestibule and the fenestra ovalis to curve
downwards posteriorly beneath the external semicircular canal, which
at this point forms the inner and inferior boundary of the aditus.
The ossicles form a movable chain fixed at three points: namely, the
attachment of the handle of the malleus to the tympanic membrane;
the posterior ligament of the incus, a feeble structure, binding its short
process to the entrance of the antrum; and the strong annular
ligament connecting the footplate of the stapes to the margins of the
fenestra ovalis.
In addition, the anterior, external, and superior ligaments of the
malleus also tend to keep it in position and limit its movements.
The tensor tympani muscle, extending from the processus
cochleariformis, crosses the tympanic cavity to be inserted into the
inner margin of the neck of the malleus; and the stapedius muscle
emerging from the apex of the eminentia pyramidalis is inserted into
the head of the stapes.
These ligaments and muscles partially divide the cavity into smaller
compartments, such as the outer attic and Prussak’s space, so that in
some cases inflammation may be limited to only a part of the tympanic
cavity; a fact to be remembered in considering the question of
operative procedures.

OPERATIONS UPON THE TYMPANIC MEMBRANE

PARACENTESIS

Indications. The chief object of paracentesis (myringotomy or


simple incision) is to permit of escape of fluid from the tympanic
cavity.
(i) In acute inflammation of the middle ear, if the acute symptoms
continue in spite of palliative treatment, and the following conditions
are present:—(a) An increasing congestion and bulging of the
tympanic membrane, especially if accompanied by earache and
pyrexia. (b) The obvious presence of pus within the tympanic cavity,
shown by a circumscribed, angry red or yellow protuberance on the
tympanic membrane. (c) Accompanying cerebral symptoms, such as
drowsiness, vomiting, vertigo, and convulsions. (d) Tenderness over
the mastoid process. (e) Paroxysms of pain acute enough to prevent
sleep.
Paracentesis should be done early in infants and in specific fevers. In
the former case even a slight middle-ear inflammation may give rise to
all the cardinal symptoms of meningitis, which frequently subside
rapidly as the result of simple paracentesis; in the latter, there may be
rapid destruction of the drum, which a timely incision may possibly
prevent.
(ii) In middle-ear catarrh with exudation. Paracentesis is justifiable in
order to remove the secretion, if the hearing does not improve after a
month’s treatment, owing to the existence of exudation within the
tympanic cavity.
(iii) As a preliminary to intratympanic operations.

Operation. The auricle and surrounding parts are surgically


cleansed (see p. 309), the preliminary toilet, if possible, being carried
out at least half an hour before the operation is performed.
Although apparently a trivial matter, it is of the utmost importance to
render the auditory canal as aseptic as possible in order to prevent
secondary infection of the tympanic cavity from without.
It is wiser to give a general anæsthetic,
such as gas and oxygen, as the pain of
the operation may be intense. If this is
refused, local anæsthesia by Gray’s
solution (see p. 310) or by a
subcutaneous injection of cocaine and
adrenalin may be employed. In infants
an anæsthetic is not necessary.
The patient may be sitting up or lying
down. If a general anæsthetic has not Fig. 187. Paracentesis Knife held in
position in the Hand.
been given, the patient’s head must be
held firmly by an assistant in order to
prevent sudden movement. The surgeon works by reflected light in
order to obtain a clear view of the tympanic membrane.
The point of election for the incision is through the posterior part of
the membrane, excepting when it is obvious from the bulging and
appearance of the membrane that the incision must be made in the
anterior inferior quadrant.
The incision is made by means of a paracentesis knife, which is
shaped like a tiny bistoury set at an angle to its handle (Fig. 187). The
double-edged spear-shaped knife is now seldom used, as with it there
is a tendency to puncture rather than to incise the membrane.
The tympanic membrane is pierced by the paracentesis knife at its
inferior posterior margin. With a quick movement the drum is incised
freely, the incision being carried in an upward direction midway
between the malleus and the circumference of the membrane
posteriorly, until it reaches Shrapnell’s membrane (Fig. 188). In making
this incision the inclination of the membrane must not be forgotten.
Owing to its lower margin being more deeply placed than the upper,
there is a tendency for those who have not had much practice in doing
a paracentesis to begin their incision too high up, as they fail to realize
the greater depth of the canal at this point. The soft tissues of the
upper posterior wall of the external meatus close to the membrane, if
much congested, may be incised also in the act of withdrawing the
knife. In doing this the chorda tympani nerve may perhaps also be cut,
resulting in loss of taste on the affected side for a time; this is a
matter of no importance. As a result of this free incision, drainage is
given to the contents of the tympanic cavity, attic, and antrum.
In order to prevent rapid closure of the perforation and to give better
drainage, some authorities advise making a flap-shaped incision. To do
this, the membrane is incised upwards, nearly to its upper border; the
knife is then carried backwards and downwards before it is withdrawn
from the wound.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like