Slide 1 NEMOVAR data structure Slide 1 NEMOVAR data structure for observation profiles Kristian Mogensen.

Slides:



Advertisements
Similar presentations
Question Bank. Explain the syntax of if else statement? Define Union Define global and local variables with example Concept of recursion with example.
Advertisements

Introduction to Arrays Chapter What is an array? An array is an ordered collection that stores many elements of the same type within one variable.
Subroutines – parameter passing passing data to/from a subroutine can be done through the parameters and through the return value of a function subroutine.
C Structures and Memory Allocation There is no class in C, but we may still want non- homogenous structures –So, we use the struct construct struct for.
Chapter 17 vector and Free Store John Keyser’s Modifications of Slides By Bjarne Stroustrup
Recursion vs. Iteration The original Lisp language was truly a functional language: –Everything was expressed as functions –No local variables –No iteration.
Linkage Editors Difference between a linkage editor and a linking loader: Linking loader performs all linking and relocation operations, including automatic.
Lecture 26 Epilogue: Or Everything else you Wanted to Know about Compilers (more accurately Everything else I wanted you to Know) Topics Getreg – Error.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
Chapter 10.
Starting Out with C++: Early Objects 5/e © 2006 Pearson Education. All Rights Reserved Starting Out with C++: Early Objects 5 th Edition Chapter 5 Looping.
CIS 101: Computer Programming and Problem Solving Lecture 9 Usman Roshan Department of Computer Science NJIT.
Main Index Contents 11 Main Index Contents Pointer Illustration Pointer Illustration Vertical / Horizontal View. Vertical / Horizontal View. Data Addresses.
Classes Separating interface from implementation
Fortran 9x HTML version. New F90 features Free source form Modules User-defined data types and operators Generic user-defined procedures Interface blocks.
CS 106 Introduction to Computer Science I 03 / 08 / 2010 Instructor: Michael Eckmann.
Computer Science II Exam I Review Monday, February 6, 2006.
A452 – Programming project – Mark Scheme
Basic And Advanced SAS Programming
1 Contents. 2 Run-Time Storage Organization 3 Static Allocation In many early languages, notably assembly and FORTRAN, all storage allocation is static.
Basic Concepts Chapter 1 Objectives
Discussion Section: HW1 and Programming Tips GS540.
CMSC 104, Version 8/061L18Functions1.ppt Functions, Part 1 of 4 Topics Using Predefined Functions Programmer-Defined Functions Using Input Parameters Function.
11 Values and References Chapter Objectives You will be able to: Describe and compare value types and reference types. Write programs that use variables.
Beginning Fortran Fortran (77) Basics 22 October 2009 *Black text on white background provided for easy printing.
12-1 Structured COBOL Programming Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout John.
Automating Tasks with Visual Basic. Introduction  When can’t find a readymade macro action that does the job you want, you can use Visual Basic code.
Computer Science Standard Level Mastery Aspects. Mastery Item Claimed JustificationWhere Listed Arrays Used to store the student data Lines P.
Multi-Dimensional Arrays
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand design concepts for fixed-length and variable- length strings ❏
OpenMP OpenMP A.Klypin Shared memory and OpenMP Simple Example Threads Dependencies Directives Handling Common blocks Synchronization Improving load balance.
Comp 245 Data Structures Linked Lists. An Array Based List Usually is statically allocated; may not use memory efficiently Direct access to data; faster.
Overloading Binary Operators Two ways to overload –As a member function of a class –As a friend function As member functions –General syntax Data Structures.
Describe the Program Development Cycle. Program Development Cycle The program development cycle is a series of steps programmers use to build computer.
By the end of this session you should be able to...
I Power Int 2 Computing Software Development High Level Language Constructs.
Computer Programming 12 Mr. Jean April 24, The plan: Video clip of the day Upcoming Quiz Sample arrays Using arrays More about arrays.
CSC 107 – Programming For Science. Today’s Goal  When lecture over, start understanding pointers  What a pointer is and what it is not  Why pointers.
CSC 107 – Programming For Science. Today’s Goal  When lecture over, start understanding pointers  What a pointer is and what it is not  Why pointers.
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
More C++ Features True object initialisation
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 5 Looping.
read and learn from example loop programs develop modular program
I Power Higher Computing Software Development High Level Language Constructs.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
Chapter 13: Structures. In this chapter you will learn about: – Single structures – Arrays of structures – Structures as function arguments – Linked lists.
CMSC 202 Computer Science II for Majors. CMSC 202UMBC Topics Memory management operators Dynamic memory Project 2 questions.
STL CSSE 250 Susan Reeder. What is the STL? Standard Template Library Standard C++ Library is an extensible framework which contains components for Language.
Cacheability Control. Problem  Multiple ways to control how a object interacts with the cache.  TSHttpTxnServerRespNoStoreSet  TSHttpTxnRespCacheableSet.
Alternate Version of STARTING OUT WITH C++ 4 th Edition Chapter 5 Looping.
Chapter Looping 5. The Increment and Decrement Operators 5.1.
Slide 1 NEMOVAR-LEFE Workshop 22/ Slide 1 Current status of NEMOVAR Kristian Mogensen.
Week 12 Methods for passing actual parameters to formal parameters.
Java & C++ Comparisons How important are classes and objects?? What mechanisms exist for input and output?? Are references and pointers the same thing??
1 Project 7: Looping. Project 7 For this project you will produce two Java programs. The requirements for each program will be described separately on.
Assembly Language Co-Routines
Reference Types CSE301 University of Sunderland Harry R Erwin, PhD.
1 Data assimilation developments for NEMO  A working group was created at the 2006 Developers Meeting with the objective of standardizing for NEMO certain.
Data Structures & Algorithms CHAPTER 2 Arrays Ms. Manal Al-Asmari.
Java Review: Reference Types
Machine Independent Features
Libraries of Code Notes from Wilson, Software Design and Development Preliminary Course pp
Building Java Programs
Variables variable: A piece of the computer's memory that is given a name and type, and can store a value. Like preset stations on a car stereo, or cell.
Building Java Programs
The structure of programming
The structure of programming
Building Java Programs
Thinking procedurally
Lesson 3. Controlling program flow. Loops. Methods. Arrays.
Presentation transcript:

Slide 1 NEMOVAR data structure Slide 1 NEMOVAR data structure for observation profiles Kristian Mogensen

Slide 2 NEMOVAR data structure Slide 2 obs_prof derived date type The obs_prof derived type is defined in the obs_profiles_def.F90 file. It contains several sections: -A bookkeeping section to store information about number of profiles, number of temperature and salinity observations and information about where the temperature and salinity data starts and ends for each profile. -A section with data (like time, horizontal position etc) related to each profile. -A section with data for each individual temperature measurement. -A section with data for each individual salinity measurement. -A section storing information about number of profiles etc for each time step. -A section storing daily mean temperature and salinity accumulation arrays. -A section for arrays needed to compress/decompress data structures.

Slide 3 NEMOVAR data structure Slide 3 obs_prof utility routines The obs_profiles_def.F90 file file also contains a series of utility routines to manipulate the obs_prof type. List of obs_type utility routines: -obs_prof_alloc: Allocates arrays in a obs_prof type -obs_prof_dealloc: Deallocates arrays in a obs_prof type -obs_prof_compress: Extract sub-information from a obs_prof type to a new obs_prof type -obs_prof_decompress: Reinsert sub-information from a obs_prof type into the original obs_prof type

Slide 4 NEMOVAR data structure Slide 4 Accessing data in a obs_type variable A obs_type variable can be declared as TYPE(obs_type) :: profdata Once the type has been defined it is up to the user/developer to define how many profiles, number of T,S observations, number of time steps etc is needed. This information can be used to call obs_prof_alloc with to allocate all the pointer arrays within the type. To access each profile data the following construction can be used: DO jprof = 1, profdatqc%nprof IF ( profdatqc%nhou(jprof) = 0 ) THEN > ENDIF ENDDO

Slide 5 NEMOVAR data structure Slide 5 Accessing data in a obs_type variable 2 To access each temperature profile data in the type the following construction can be used: DO jprof = 1, profdata%nprof DO jobs = profdata%nptsta(jprof), profdata%nptend(jprof) IF ( profdata%ntqc(jobs) /= 0 ) THEN > ENDIF ENDDO It is possible to define as many obs_type variables as memory permits.

Slide 6 NEMOVAR data structure Slide 6 Accessing data in a obs_type variable 3 The subroutine obs_prof_compress takes one obs_type variable and either copies it to a new obs_type variable or optionally sub-samples the data into a reduced new data obs_type variable via logical switches. It is possible to make modifications to the new obs_type variable and copy the modifications back to the original data by using the obs_prof_decompress subroutine.

Slide 7 NEMOVAR data structure Slide 7 Outer loop data structure (implementated) In the initial version of the code I have defined the following data flow in the outer loop of NEMOVAR. -The ENACT data files are read into the profdata obs_type variable in obs_read_enact.F90. The obs_prep.F90 performs the same check as earlier but rather than reordering the data, it calls the obs_prof_compress to create another obs_type variable (prodatqc) which contains only the valid observations. -The prodatqc variable is then used by obs_oper.F90 to compute the model values at observation point. This will update the tmod and smod variables in the prodatqc derived type. -To get everything in the same file the obs_prof_decompress is called which copies the data from prodatqc into profdata and deallocates prodatqc. -Finally the obs_write.F90 is called to write the content of profdata into the ENACT feedback files. The format of these files is unchanged.

Slide 8 NEMOVAR data structure Slide 8 Outer loop data structure (implemented)

Slide 9 NEMOVAR data structure Slide 9 Inner loop data structure (proposal)