Introduction to Modern Fortran for the Earth System Sciences


Book Description

This work provides a short "getting started" guide to Fortran 90/95. The main target audience consists of newcomers to the field of numerical computation within Earth system sciences (students, researchers or scientific programmers). Furthermore, readers accustomed to other programming languages may also benefit from this work, by discovering how some programming techniques they are familiar with map to Fortran 95. The main goal is to enable readers to quickly start using Fortran 95 for writing useful programs. It also introduces a gradual discussion of Input/Output facilities relevant for Earth system sciences, from the simplest ones to the more advanced netCDF library (which has become a de facto standard for handling the massive datasets used within Earth system sciences). While related works already treat these disciplines separately (each often providing much more information than needed by the beginning practitioner), the reader finds in this book a shorter guide which links them. Compared to other books, this work provides a much more compact view of the language, while also placing the language-elements in a more applied setting, by providing examples related to numerical computing and more advanced Input/Output facilities for Earth system sciences. Naturally, the coverage of the programming language is relatively shallow, since many details are skipped. However, many of these details can be learned gradually by the practitioner, after getting an overview and some practice with the language through this book.




Statistical Analysis of Climate Extremes


Book Description

The risks posed by climate change and its effect on climate extremes are an increasingly pressing societal problem. This book provides an accessible overview of the statistical analysis methods which can be used to investigate climate extremes and analyse potential risk. The statistical analysis methods are illustrated with case studies on extremes in the three major climate variables: temperature, precipitation, and wind speed. The book also provides datasets and access to appropriate analysis software, allowing the reader to replicate the case study calculations. Providing the necessary tools to analyse climate risk, this book is invaluable for students and researchers working in the climate sciences, as well as risk analysts interested in climate extremes.




Modern Fortran


Book Description

Modern Fortran teaches you to develop fast, efficient parallel applications using twenty-first-century Fortran. In this guide, you’ll dive into Fortran by creating fun apps, including a tsunami simulator and a stock price analyzer. Filled with real-world use cases, insightful illustrations, and hands-on exercises, Modern Fortran helps you see this classic language in a whole new light. Summary Using Fortran, early and accurate forecasts for hurricanes and other major storms have saved thousands of lives. Better designs for ships, planes, and automobiles have made travel safer, more efficient, and less expensive than ever before. Using Fortran, low-level machine learning and deep learning libraries provide incredibly easy, fast, and insightful analysis of massive data. Fortran is an amazingly powerful and flexible programming language that forms the foundation of high performance computing for research, science, and industry. And it's come a long, long way since starting life on IBM mainframes in 1956. Modern Fortran is natively parallel, so it's uniquely suited for efficiently handling problems like complex simulations, long-range predictions, and ultra-precise designs. If you're working on tasks where speed, accuracy, and efficiency matter, it's time to discover—or re-discover—Fortran.. About the technology For over 60 years Fortran has been powering mission-critical scientific applications, and it isn't slowing down yet! Rock-solid reliability and new support for parallel programming make Fortran an essential language for next-generation high-performance computing. Simply put, the future is in parallel, and Fortran is already there. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the book Modern Fortran teaches you to develop fast, efficient parallel applications using twenty-first-century Fortran. In this guide, you'll dive into Fortran by creating fun apps, including a tsunami simulator and a stock price analyzer. Filled with real-world use cases, insightful illustrations, and hands-on exercises, Modern Fortran helps you see this classic language in a whole new light. What's inside Fortran's place in the modern world Working with variables, arrays, and functions Module development Parallelism with coarrays, teams, and events Interoperating Fortran with C About the reader For developers and computational scientists. No experience with Fortran required. About the author Milan Curcic is a meteorologist, oceanographer, and author of several general-purpose Fortran libraries and applications. Table of Contents PART 1 - GETTING STARTED WITH MODERN FORTRAN 1 Introducing Fortran 2 Getting started: Minimal working app PART 2 - CORE ELEMENTS OF FORTRAN 3 Writing reusable code with functions and subroutines 4 Organizing your Fortran code using modules 5 Analyzing time series data with arrays 6 Reading, writing, and formatting your data PART 3 - ADVANCED FORTRAN USE 7 Going parallel with Fortan coarrays 8 Working with abstract data using derived types 9 Generic procedures and operators for any data type 10 User-defined operators for derived types PART 4 - THE FINAL STRETCH 11 Interoperability with C: Exposing your app to the web 12 Advanced parallelism with teams, events, and collectives







Modern Fortran in Practice


Book Description

From its earliest days, the Fortran programming language has been designed with computing efficiency in mind. The latest standard, Fortran 2008, incorporates a host of modern features, including object-orientation, array operations, user-defined types, and provisions for parallel computing. This tutorial guide shows Fortran programmers how to apply these features in twenty-first-century style: modular, concise, object-oriented, and resource-efficient, using multiple processors. It offers practical real-world examples of interfacing to C, memory management, graphics and GUIs, and parallel computing using MPI, OpenMP, and coarrays. The author also analyzes several numerical algorithms and their implementations and illustrates the use of several open source libraries. Full source code for the examples is available on the book's website.




Introduction to Aerosol Modelling


Book Description

INTRODUCTION TO AEROSOL MODELLING Introduction to Aerosol Modelling: From Theory to Code An aerosol particle is defined as a solid or liquid particle suspended in a carrier gas. Whilst we often treat scientific challenges in a siloed way, aerosol particles are of interest across many disciplines. For example, atmospheric aerosol particles are key determinants of air quality and climate change. Knowledge of aerosol physics and generation mechanisms is key to efficient fuel delivery and drug delivery to the lungs. Likewise, various manufacturing processes require optimal generation, delivery and removal of aerosol particles in a range of conditions. There is a natural tendency for the aerosol scientist to therefore work at the interface of the traditional academic subjects of physics, chemistry, biology, mathematics and computing. The impacts that aerosol particles have are linked to their evolving chemical and physical characteristics. Likewise, the chemical and physical characteristic of aerosol particles reflect their sources and subsequent processes they have been subject to. Computational models are not only essential for constructing evidence-based understanding of important aerosol processes, but also to predict change and impact. Whilst existing textbooks provide an overview of theoretical frameworks on which aerosol models are based, there is a significant gap in reference material that provide training in translating theory into code. The purpose of this book is to provide readers with exactly that. In following the content provided in this book, you will be able to reproduce models of key processes that can either be used in isolation or brought together to construct a demonstrator 0D box-model of a coupled gaseous-particulate system. You may be reading this book as an undergraduate, postgraduate, seasoned researcher in the private/public sector or as someone who wishes to better understand the pathways to aerosol model development. Wherever you position yourself, it is hoped that the tools you will learn through this book will provide you with the basis to develop your own platforms and to ensure the next generation of aerosol modellers are equipped with foundational skills to address future challenges in aerosol science.




Modern Fortran


Book Description

Fortran is one of the oldest high-level languages and remains the premier language for writing code for science and engineering applications. This book is for anyone who uses Fortran, from the novice learner to the advanced expert. It describes best practices for programmers, scientists, engineers, computer scientists and researchers who want to apply good style and incorporate rigorous usage in their own Fortran code or to establish guidelines for a team project. The presentation concentrates primarily on the characteristics of Fortran 2003, while also describing methods in Fortran 90/95 and valuable new features in Fortran 2008. The authors draw on more than a half century of experience writing production Fortran code to present clear succinct guidelines on formatting, naming, documenting, programming and packaging conventions and various programming paradigms such as parallel processing (including OpenMP, MPI and coarrays), OOP, generic programming and C language interoperability.




A First Course in Scientific Computing


Book Description

This book offers a new approach to introductory scientific computing. It aims to make students comfortable using computers to do science, to provide them with the computational tools and knowledge they need throughout their college careers and into their professional careers, and to show how all the pieces can work together. Rubin Landau introduces the requisite mathematics and computer science in the course of realistic problems, from energy use to the building of skyscrapers to projectile motion with drag. He is attentive to how each discipline uses its own language to describe the same concepts and how computations are concrete instances of the abstract. Landau covers the basics of computation, numerical analysis, and programming from a computational science perspective. The first part of the printed book uses the problem-solving environment Maple as its context, with the same material covered on the accompanying CD as both Maple and Mathematica programs; the second part uses the compiled language Java, with equivalent materials in Fortran90 on the CD; and the final part presents an introduction to LaTeX replete with sample files. Providing the essentials of computing, with practical examples, A First Course in Scientific Computing adheres to the principle that science and engineering students learn computation best while sitting in front of a computer, book in hand, in trial-and-error mode. Not only is it an invaluable learning text and an essential reference for students of mathematics, engineering, physics, and other sciences, but it is also a consummate model for future textbooks in computational science and engineering courses. A broad spectrum of computing tools and examples that can be used throughout an academic career Practical computing aimed at solving realistic problems Both symbolic and numerical computations A multidisciplinary approach: science + math + computer science Maple and Java in the book itself; Mathematica, Fortran90, Maple and Java on the accompanying CD in an interactive workbook format