/[MITgcm]/MITgcm_contrib/ESMF/global_ocean.128x64x15/code/main.F
ViewVC logotype

Contents of /MITgcm_contrib/ESMF/global_ocean.128x64x15/code/main.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Sun Feb 15 22:28:19 2004 UTC (21 years, 5 months ago) by cnh
Branch: MAIN, Initial
CVS Tags: adoption_1_0_pre_A, Baseline, HEAD
Changes since 1.1: +0 -0 lines
Error occurred while calculating annotation data.
Initial checkin

1 C $Header: /u/u0/gcmpack/MITgcm/eesupp/src/main.F,v 1.9 2001/09/28 16:49:54 adcroft Exp $
2 C $Name: checkpoint46 $
3
4 CBOI
5 C
6 C !TITLE: WRAPPER CODE SYNOPSIS
7 C !AUTHORS: mitgcm developers ( support@mitgcm.org )
8 C !AFFILIATION: Massachussetts Institute of Technology
9 C !DATE:
10 C !INTRODUCTION: Wrapper synopsis and code
11 C Routines in the subdirectories under eesupp/ ( src/ and inc/ ) provide the core
12 C framework within which numerical and ancilliary software of MITgcm operates.
13 C The eesupp/ directories provide a collection of software we call {\bf WRAPPER} (
14 C ({\bf W}rappable {\bf A}pplication {\bf P}aralell {\bf P}rogramming {\bf E}nvironment {\bf R}esource).
15 C The {bf WRAPPER} provides a generic bootstrapping capability to start applications
16 C in a manner that allows them to exploit single and multi-processing environments on all present
17 C day hardware platforms (spanning vector SMP systems to distributed memory and processing cluster
18 C systems). Numerical applications must be coded to fit within the {\bf WRAPPER}. This entails
19 C applications adopting a particular style for declaring data structures representing
20 C grids and values on grids. The {\bf WRAPPER} currently provides support for grid point
21 C models using a single global indexing system. This is sufficient for latitude-logitude,
22 C cylindrical, and cartesian coordinate configurations. There is also limited support for
23 C composing grids in which no single, sructured global index can be defined. At present, this
24 C support is limited to specific configurations of projections of a cube onto the sphere.
25 C
26 C The main functions supported by the current {\bf WRAPPER} code are
27 C \begin{itemize}
28 C \item program startup and termination including creation/management of multiple
29 C threads and/or processes
30 C \item communication and synchronisatioin operations between multiple processes and/or threads
31 C \item multi-process input and output operations to disk and to other
32 C applications
33 C \end{itemize}
34 C
35 C Multi-process execution assumes the existence of MPI for process startup and termination. However,
36 C MPI does not have to be used for performance critical operations. Instead,
37 C {\bf WRAPPER} performance critical parallel primitives are implemented to allow them to bind to
38 C different low-level system software layers. Bindings exist for using {\bf WRAPPER} with portable
39 C systems such as MPI and UNIX System V IPC memory mapping, as well bindings for high-performance
40 C propreitary systems such as Myrinet GM software and Compaq IMC memory channel technology.
41 C
42 CEOI
43
44
45 C-- Get C preprocessor options
46 #include "CPP_OPTIONS.h"
47 #include "CPP_EEOPTIONS.h"
48
49 CBOP
50 C !ROUTINE: MAIN
51
52 C !INTERFACE:
53 PROGRAM MAIN
54 C USE MITGCM_ORG_OCN, ONLY: OCN_INIT => DRIVER_INIT, OCN_RUN => DRIVER_RUN
55 IMPLICIT NONE
56
57 C !DESCRIPTION:
58 C *==========================================================*
59 C | PROGRAM MAIN
60 C | o MAIN wrapper for MITgcm UV implementation.
61 C *==========================================================*
62 C | MAIN controls the "execution environment".
63 C | Its main functions are
64 C | 1. call procedure EEBOOT to perform execution environment
65 C | initialisation.
66 C | 2. call procedure THE_MODEL_MAIN once for each concurrent
67 C | thread. THE_MODEL_MAIN is the user supplied top-level
68 C | routine.
69 C | 3. call procedure EEDIE to perform execution environment
70 C | shutdown.
71 C *==========================================================*
72 INTEGER myThid
73 INTEGER myCurrentIter
74 _RL myCurrentTime
75 INTEGER nTimeSteps
76 INTEGER I
77 INTEGER iLoop
78
79 nTimeSteps = 1
80
81 CALL DRIVER_INIT( myCurrentTime, myCurrentIter,
82 & iLoop, myThid )
83
84 DO I=1,10
85 CALL DRIVER_RUN( myCurrentTime, myCurrentIter,
86 & iLoop,
87 & nTimeSteps, myThid )
88 ENDDO
89
90 END

  ViewVC Help
Powered by ViewVC 1.1.22