/[MITgcm]/MITgcm/pkg/generic_advdiff/gad_init.F
ViewVC logotype

Contents of /MITgcm/pkg/generic_advdiff/gad_init.F

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


Revision 1.7 - (show annotations) (download)
Thu Dec 16 22:28:43 2004 UTC (19 years, 5 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57t_post, checkpoint57m_post, checkpoint57v_post, checkpoint57f_post, checkpoint57s_post, checkpoint57j_post, checkpoint57b_post, checkpoint57f_pre, checkpoint57g_post, checkpoint57h_pre, checkpoint57g_pre, checkpoint57e_post, checkpoint57h_post, checkpoint57c_pre, checkpoint57o_post, checkpoint57r_post, checkpoint57k_post, checkpoint57d_post, checkpoint57i_post, checkpoint57h_done, checkpoint57n_post, checkpoint57p_post, checkpint57u_post, checkpoint57q_post, eckpoint57e_pre, checkpoint57c_post, checkpoint57l_post
Changes since 1.6: +10 -1 lines
add diagnostics of advective & diffusive fluxes

1 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_init.F,v 1.6 2004/09/17 22:57:12 heimbach Exp $
2 C $Name: $
3
4 #include "GAD_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: GAD_INIT
8 C !INTERFACE:
9 SUBROUTINE GAD_INIT( myThid )
10 C !DESCRIPTION:
11 C Routine to initialize Generic Advection/Diffusion variables and
12 C constants.
13
14 C !USES:
15 IMPLICIT NONE
16 C === Global variables ===
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "GAD.h"
21
22 C !INPUT/OUTPUT PARAMETERS:
23 C === Routine arguments ===
24 C myThid - Number of this instance of GAD_INIT
25 INTEGER myThid
26 CEOP
27
28 C === Local variables ===
29 C msgBuf - Informational/error meesage buffer
30 CHARACTER*(MAX_LEN_MBUF) msgBuf
31
32 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
33
34 C-- Set Temp & Salt multi-Dim Advec. flag according to advection scheme used
35 tempMultiDimAdvec = multiDimAdvection .AND. tempAdvection
36 saltMultiDimAdvec = multiDimAdvection .AND. saltAdvection
37 IF ( tempAdvScheme.EQ.ENUM_CENTERED_2ND
38 & .OR.tempAdvScheme.EQ.ENUM_UPWIND_3RD
39 & .OR.tempAdvScheme.EQ.ENUM_CENTERED_4TH ) THEN
40 tempMultiDimAdvec = .FALSE.
41 ENDIF
42 IF ( saltAdvScheme.EQ.ENUM_CENTERED_2ND
43 & .OR.saltAdvScheme.EQ.ENUM_UPWIND_3RD
44 & .OR.saltAdvScheme.EQ.ENUM_CENTERED_4TH ) THEN
45 saltMultiDimAdvec = .FALSE.
46 ENDIF
47
48 C-- Set general multi-Dim Advec. flag when at least 1 tracer use multi-Dim Advec.
49 useMultiDimAdvec = .FALSE.
50 useMultiDimAdvec = useMultiDimAdvec.OR.tempMultiDimAdvec
51 useMultiDimAdvec = useMultiDimAdvec.OR.saltMultiDimAdvec
52
53 C-- Set Temp & Salt Adams-Bashforth flag according to advection scheme used
54 tempAdamsBashforth = .FALSE.
55 saltAdamsBashforth = .FALSE.
56 IF ( tempAdvScheme.EQ.ENUM_CENTERED_2ND
57 & .OR.tempAdvScheme.EQ.ENUM_UPWIND_3RD
58 & .OR.tempAdvScheme.EQ.ENUM_CENTERED_4TH ) THEN
59 tempAdamsBashforth = .TRUE.
60 ENDIF
61 IF ( saltAdvScheme.EQ.ENUM_CENTERED_2ND
62 & .OR.saltAdvScheme.EQ.ENUM_UPWIND_3RD
63 & .OR.saltAdvScheme.EQ.ENUM_CENTERED_4TH ) THEN
64 saltAdamsBashforth = .TRUE.
65 ENDIF
66
67 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
68
69 #ifdef ALLOW_DIAGNOSTICS
70 IF ( useDiagnostics ) THEN
71 C-- Add diagnostics of Temp & Salt fluxes to the (long) list of diagnostics:
72 CALL GAD_DIAGNOSTICS_INIT( myThid )
73 ENDIF
74 #endif /* ALLOW_DIAGNOSTICS */
75
76 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
77
78 C-- Print out GAD parameters :
79 _BARRIER
80 _BEGIN_MASTER(myThid)
81
82 WRITE(msgBuf,'(A)') ' '
83 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
84 WRITE(msgBuf,'(A)') '// ==================================='
85 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
86 WRITE(msgBuf,'(A)')'// GAD parameters :'
87 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
88 WRITE(msgBuf,'(A)') '// ==================================='
89 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
90
91 CALL WRITE_0D_I( tempAdvScheme, INDEX_NONE,
92 & 'tempAdvScheme =',
93 & ' /* Temp. Horiz.Advection scheme selector */')
94 CALL WRITE_0D_I( tempVertAdvScheme, INDEX_NONE,
95 & 'tempVertAdvScheme =',
96 & ' /* Temp. Vert. Advection scheme selector */')
97 CALL WRITE_0D_L( tempMultiDimAdvec, INDEX_NONE,
98 & 'tempMultiDimAdvec =',
99 & ' /* use Muti-Dim Advec method for Temp */')
100 CALL WRITE_0D_L( tempAdamsBashforth, INDEX_NONE,
101 & 'tempAdamsBashforth =',
102 & ' /* use Adams-Bashforth time-stepping for Temp */')
103
104 CALL WRITE_0D_I( saltAdvScheme, INDEX_NONE,
105 & 'saltAdvScheme =',
106 & ' /* Salt. Horiz.advection scheme selector */')
107 CALL WRITE_0D_I( saltVertAdvScheme, INDEX_NONE,
108 & 'saltVertAdvScheme =',
109 & ' /* Salt. Vert. Advection scheme selector */')
110 CALL WRITE_0D_L( saltMultiDimAdvec, INDEX_NONE,
111 & 'saltMultiDimAdvec =',
112 & ' /* use Muti-Dim Advec method for Salt */')
113 CALL WRITE_0D_L( saltAdamsBashforth, INDEX_NONE,
114 & 'saltAdamsBashforth =',
115 & ' /* use Adams-Bashforth time-stepping for Salt */')
116
117 WRITE(msgBuf,'(A)') '// ==================================='
118 CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1)
119
120 _END_MASTER(myThid)
121 _BARRIER
122
123 RETURN
124 END

  ViewVC Help
Powered by ViewVC 1.1.22