/[MITgcm]/MITgcm/model/src/initialise_varia.F
ViewVC logotype

Contents of /MITgcm/model/src/initialise_varia.F

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


Revision 1.19 - (show annotations) (download)
Wed Sep 19 13:58:08 2001 UTC (22 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint40
Changes since 1.18: +3 -15 lines
"Volume exact-Conservation" modified for
non-linear free-surface + Crank-Nickelson

1 C $Header: /u/gcmpack/models/MITgcmUV/model/src/initialise_varia.F,v 1.18 2001/09/10 16:35:27 heimbach Exp $
2 C $Name: $
3
4 #include "CPP_OPTIONS.h"
5
6 CStartOfInterface
7 SUBROUTINE INITIALISE_VARIA(myThid)
8 C /==========================================================\
9 C | SUBROUTINE INITIALISE_VARIA |
10 C | o Set the initial conditions for dynamics variables |
11 C | and time dependent arrays |
12 C |==========================================================|
13 C | This routine reads/writes data from an input file and |
14 C | from various binary files. |
15 C | Each thread invokes an instance of this routine as does |
16 C | each process in a multi-process parallel environment like|
17 C | MPI. |
18 C \==========================================================/
19 IMPLICIT NONE
20
21 C == Global variables ==
22 #include "SIZE.h"
23 #include "EEPARAMS.h"
24 #include "PARAMS.h"
25 #include "DYNVARS.h"
26
27 C == Routine arguments ==
28 INTEGER myThid
29 CEndOfInterface
30
31 C == Local variables ==
32 INTEGER bi,bj,K,iMin,iMax,jMin,jMax
33
34 #ifdef ALLOW_TAMC_CHECKPOINTING
35
36 nIter0 = INT( startTime/deltaTClock )
37
38 C-- Set Bo_surf => define the Linear Relation: Phi_surf(eta)
39 CALL INI_LINEAR_PHISURF( myThid )
40
41 C-- Set coriolis operators
42 CALL INI_CORI( myThid )
43
44 C-- Set laplace operators for use in 2D conjugate gradient solver.
45 CALL INI_CG2D( myThid )
46
47 #ifdef ALLOW_NONHYDROSTATIC
48 C-- Set laplace operators for use in 3D conjugate gradient solver.
49 CALL INI_CG3D( myThid )
50 #endif
51
52 #endif /* ALLOW_TAMC_CHECKPOINTING */
53 _BARRIER
54
55 C-- Initialise 3-dim. diffusivities
56 CALL INI_MIXING( myThid )
57 _BARRIER
58
59 C-- Initialize DYNVARS arrays (state fields + G terms: Gu,Gv,...) to zero [always]
60 CALL INI_DYNVARS( myThid )
61
62 C-- Initialise model fields.
63 C Starting values of U, V, W, temp., salt. and tendency terms
64 C are set here. Fields are either set to default or read from
65 C stored files.
66 CALL INI_FIELDS( myThid )
67 _BARRIER
68
69 #ifdef ALLOW_PASSIVE_TRACER
70 C-- Initialise passive tracer(s)
71 CALL INI_TR1( myThid )
72 _BARRIER
73 #endif
74
75 #ifndef ALLOW_AUTODIFF_TAMC
76 IF ( usePickupBeforeC35 ) THEN
77 C-- IMPORTANT : Need to activate the following call to restart from
78 C a pickup file written by MITgcmUV_checkpoint34 or earlier.
79 IF ( startTime .NE. 0. ) THEN
80 CALL THE_CORRECTION_STEP(startTime, nIter0, myThid)
81 ENDIF
82 ENDIF
83 #endif
84
85 C-- Initial conditions are convectively adjusted (for historical reasons)
86 IF ( startTime .EQ. 0. ) THEN
87 CADJ loop = parallel
88 DO bj = myByLo(myThid), myByHi(myThid)
89 CADJ loop = parallel
90 DO bi = myBxLo(myThid), myBxHi(myThid)
91 iMin=1-Olx
92 iMax=sNx+Olx
93 jMin=1-Oly
94 jMax=sNy+Oly
95 CALL CONVECTIVE_ADJUSTMENT_INI(
96 I bi, bj, iMin, iMax, jMin, jMax,
97 I startTime, nIter0, myThid )
98 ENDDO
99 ENDDO
100 _BARRIER
101 END IF
102
103 C-- Initialize variable data for packages
104 CALL PACKAGES_INIT_VARIABLES( myThid )
105
106 #ifdef NONLIN_FRSURF
107 C-- Compute the surface level thickness <-- function of etaH(n)
108 C and modify hFac(C,W,S) accordingly :
109 IF (nonlinFreeSurf.GT.0) THEN
110 CALL CALC_SURF_DR(etaH, startTime, nIter0, myThid )
111 CALL UPDATE_SURF_DR( startTime, nIter0, myThid )
112 ENDIF
113 C- update also CG2D matrix (and preconditioner)
114 IF ( nonlinFreeSurf.GT.2) THEN
115 CALL UPDATE_CG2D( startTime, nIter0, myThid )
116 ENDIF
117 #endif
118
119 C-- Finally summarise the model state
120 CALL STATE_SUMMARY( myThid )
121
122 #ifdef ALLOW_TIMEAVE
123 C-- initialise time-average arrays with initial state values
124 IF (taveFreq.GT.0.) THEN
125 DO bj=myByLo(myThid),myByHi(myThid)
126 DO bi=myBxLo(myThid),myBxHi(myThid)
127 CALL TIMEAVE_STATVARS(startTime, nIter0, bi, bj, myThid)
128 ENDDO
129 ENDDO
130 ENDIF
131 #endif /* ALLOW_TIMEAVE */
132
133 RETURN
134 END

  ViewVC Help
Powered by ViewVC 1.1.22