/[MITgcm]/MITgcm/pkg/ptracers/ptracers_init_fixed.F
ViewVC logotype

Contents of /MITgcm/pkg/ptracers/ptracers_init_fixed.F

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


Revision 1.7 - (show annotations) (download)
Fri May 9 21:44:31 2008 UTC (16 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint62, checkpoint59r, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.6: +2 -12 lines
remove option: GAD_ALLOW_SOM_ADVECT

1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_init_fixed.F,v 1.6 2008/05/09 14:30:17 jahn Exp $
2 C $Name: $
3
4 #include "PTRACERS_OPTIONS.h"
5 #include "GAD_OPTIONS.h"
6
7 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
8 CBOP
9 C !ROUTINE: PTRACERS_INIT_FIXED
10
11 C !INTERFACE:
12 SUBROUTINE PTRACERS_INIT_FIXED( myThid )
13
14 C !DESCRIPTION:
15 C Initialize PTRACERS constant
16
17 C !USES:
18 #include "PTRACERS_MOD.h"
19 IMPLICIT NONE
20 #include "SIZE.h"
21 #include "EEPARAMS.h"
22 #include "PARAMS.h"
23 #include "PTRACERS_SIZE.h"
24 #include "PTRACERS_PARAMS.h"
25 #include "PTRACERS_RESTART.h"
26 #include "GAD.h"
27
28 C !INPUT PARAMETERS:
29 INTEGER myThid
30 CEOP
31
32 #ifdef ALLOW_PTRACERS
33
34 C !LOCAL VARIABLES:
35 C iTracer :: tracer index
36 C msgBuf - Informational/error meesage buffer
37 INTEGER iTracer
38 INTEGER minOlSize
39 CHARACTER*(MAX_LEN_MBUF) msgBuf
40
41 _BEGIN_MASTER( myThid )
42
43 C Initialise internal parameter in common block:
44 DO iTracer = 1, PTRACERS_num
45 PTRACERS_MultiDimAdv(iTracer) = multiDimAdvection
46 PTRACERS_SOM_Advection(iTracer) = .FALSE.
47 PTRACERS_AdamsBashGtr(iTracer) = .FALSE.
48 PTRACERS_startAB(iTracer) = nIter0 - PTRACERS_Iter0
49 ENDDO
50
51 C Loop over tracers
52 DO iTracer = 1, PTRACERS_numInUse
53
54 IF (
55 & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND .OR.
56 & PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD .OR.
57 & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH
58 & ) PTRACERS_MultiDimAdv(iTracer) = .FALSE.
59 useMultiDimAdvec = useMultiDimAdvec
60 & .OR. PTRACERS_MultiDimAdv(iTracer)
61 PTRACERS_AdamsBashGtr(iTracer) =
62 & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND .OR.
63 & PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD .OR.
64 & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH
65
66 PTRACERS_SOM_Advection(iTracer) =
67 & PTRACERS_advScheme(iTracer).GE.ENUM_SOM_PRATHER
68 & .AND. PTRACERS_advScheme(iTracer).LE.ENUM_SOM_LIMITER
69 #ifndef PTRACERS_ALLOW_DYN_STATE
70 IF ( PTRACERS_SOM_Advection(iTracer) ) THEN
71 WRITE(msgBuf,'(2A)') 'PTRACERS_INIT_FIXED: ',
72 & 'trying to use 2nd.Order-Moment Advection without'
73 WRITE(msgBuf,'(2A)') 'PTRACERS_INIT_FIXED: ',
74 & 'dynamical internal state data structures compiled'
75 WRITE(msgBuf,'(2A)') 'PTRACERS_INIT_FIXED: ',
76 & 'Re-compile with: #define PTRACERS_ALLOW_DYN_STATE'
77 CALL PRINT_ERROR( msgBuf , myThid)
78 STOP 'ABNORMAL END: S/R PTRACERS_INIT_FIXED'
79 ENDIF
80 #endif /* ndef PTRACERS_ALLOW_DYN_STATE */
81
82 WRITE(msgBuf,'(2A,I4,A,L5)') 'PTRACERS_INIT_FIXED: ',
83 & 'PTRACERS_SOM_Advection(', iTracer, ') = ',
84 & PTRACERS_SOM_Advection(iTracer)
85 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
86 & SQUEEZE_RIGHT, myThid)
87
88 C end of Tracer loop
89 ENDDO
90
91 #ifdef PTRACERS_ALLOW_DYN_STATE
92 CALL PTRACERS_INIT_FIXED_DYNAMIC( PtrISt,
93 & PTRACERS_numInUse,
94 & PTRACERS_SOM_Advection,
95 & sNx, sNy, Nr, OLx, OLy,
96 & nSx, nSy, nSOM,
97 & myThid )
98 #endif
99
100 _END_MASTER( myThid )
101 _BARRIER
102
103 C-- Check size of the overlap :
104 IF ( useCubedSphereExchange .AND. useMultiDimAdvec ) THEN
105 C- multi-dim-advection on CS-grid requires to double the size of Olx,Oly
106 minOlSize = 2
107 DO iTracer = 1, PTRACERS_numInUse
108 IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_FLUX_LIMIT .OR.
109 & PTRACERS_advScheme(iTracer).EQ.ENUM_DST3_FLUX_LIMIT .OR.
110 & PTRACERS_advScheme(iTracer).EQ.ENUM_DST3 ) minOlSize = 4
111 ENDDO
112 IF ( Olx.LT.minOlSize .OR. Oly.LT.minOlSize ) THEN
113 WRITE(msgBuf,'(2A)') 'PTRACERS_INIT_FIXED: ',
114 & 'Multi-Dim Advection with 5-points stencil'
115 CALL PRINT_ERROR( msgBuf , myThid)
116 WRITE(msgBuf,'(2A,I2)') 'PTRACERS_INIT_FIXED: ',
117 & 'advection scheme needs at least Olx,Oly=', minOlSize
118 CALL PRINT_ERROR( msgBuf , myThid)
119 STOP 'ABNORMAL END: S/R PTRACERS_INIT_FIXED'
120 ENDIF
121 ENDIF
122
123 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
124
125 #ifdef ALLOW_MNC
126 IF (useMNC) THEN
127 C Initialize the MNC variable types for PTRACERS
128 CALL PTRACERS_MNC_INIT( myThid )
129 ENDIF
130 #endif
131
132 #ifdef ALLOW_DIAGNOSTICS
133 IF ( useDiagnostics ) THEN
134 CALL PTRACERS_DIAGNOSTICS_INIT( myThid )
135 ENDIF
136 #endif
137
138 #endif /* ALLOW_PTRACERS */
139
140 RETURN
141 END

  ViewVC Help
Powered by ViewVC 1.1.22