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

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

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


Revision 1.3 - (hide annotations) (download)
Mon Dec 17 22:03:15 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59q, checkpoint59p, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n
Changes since 1.2: +23 -8 lines
add internal parameter and flags:
a) ptracer multi-Dim advection flag and AdamsBashforth flag
b) starting AdamsBashforth flag (in new header file: PTRACERS_RESTART.h)

1 jmc 1.3 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_init_fixed.F,v 1.2 2007/11/05 18:48:04 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PTRACERS_OPTIONS.h"
5    
6     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7     CBOP
8     C !ROUTINE: PTRACERS_INIT_FIXED
9    
10     C !INTERFACE:
11     SUBROUTINE PTRACERS_INIT_FIXED( myThid )
12    
13     C !DESCRIPTION:
14     C Initialize PTRACERS constant
15    
16     C !USES:
17     IMPLICIT NONE
18     #include "SIZE.h"
19     #include "EEPARAMS.h"
20     #include "PARAMS.h"
21     #include "PTRACERS_SIZE.h"
22 jmc 1.2 #include "PTRACERS_PARAMS.h"
23 jmc 1.3 #include "PTRACERS_RESTART.h"
24 jmc 1.1 #include "GAD.h"
25    
26     C !INPUT PARAMETERS:
27     INTEGER myThid
28     CEOP
29    
30     #ifdef ALLOW_PTRACERS
31    
32     C !LOCAL VARIABLES:
33     C iTracer :: tracer index
34     C msgBuf - Informational/error meesage buffer
35     INTEGER iTracer
36     INTEGER minOlSize
37     CHARACTER*(MAX_LEN_MBUF) msgBuf
38    
39 jmc 1.3 _BEGIN_MASTER( myThid )
40    
41     C Initialise internal parameter in common block:
42     DO iTracer = 1, PTRACERS_num
43     PTRACERS_MultiDimAdv(iTracer) = multiDimAdvection
44     PTRACERS_AdamsBashGtr(iTracer) = .FALSE.
45     PTRACERS_startAB(iTracer) = nIter0 - PTRACERS_Iter0
46     ENDDO
47    
48 jmc 1.1 C Loop over tracers
49     DO iTracer = 1, PTRACERS_numInUse
50    
51     IF (
52 jmc 1.3 & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND .OR.
53     & PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD .OR.
54     & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH
55     & ) PTRACERS_MultiDimAdv(iTracer) = .FALSE.
56     useMultiDimAdvec = useMultiDimAdvec
57     & .OR. PTRACERS_MultiDimAdv(iTracer)
58     PTRACERS_AdamsBashGtr(iTracer) =
59     & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_2ND .OR.
60     & PTRACERS_advScheme(iTracer).EQ.ENUM_UPWIND_3RD .OR.
61     & PTRACERS_advScheme(iTracer).EQ.ENUM_CENTERED_4TH
62 jmc 1.1
63     C end of Tracer loop
64     ENDDO
65 jmc 1.3 _END_MASTER( myThid )
66     _BARRIER
67 jmc 1.1
68     C-- Check size of the overlap :
69     IF ( useCubedSphereExchange .AND. useMultiDimAdvec ) THEN
70     C- multi-dim-advection on CS-grid requires to double the size of Olx,Oly
71     minOlSize = 2
72     DO iTracer = 1, PTRACERS_numInUse
73     IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_FLUX_LIMIT .OR.
74     & PTRACERS_advScheme(iTracer).EQ.ENUM_DST3_FLUX_LIMIT .OR.
75     & PTRACERS_advScheme(iTracer).EQ.ENUM_DST3 ) minOlSize = 4
76     ENDDO
77     IF ( Olx.LT.minOlSize .OR. Oly.LT.minOlSize ) THEN
78     WRITE(msgBuf,'(2A)') 'PTRACERS_INIT_FIXED: ',
79     & 'Multi-Dim Advection with 5-points stencil'
80     CALL PRINT_ERROR( msgBuf , myThid)
81     WRITE(msgBuf,'(2A,I2)') 'PTRACERS_INIT_FIXED: ',
82     & 'advection scheme needs at least Olx,Oly=', minOlSize
83     CALL PRINT_ERROR( msgBuf , myThid)
84     STOP 'ABNORMAL END: S/R PTRACERS_INIT_FIXED'
85     ENDIF
86     ENDIF
87    
88     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
89    
90     #ifdef ALLOW_MNC
91     IF (useMNC) THEN
92     C Initialize the MNC variable types for PTRACERS
93     CALL PTRACERS_MNC_INIT( myThid )
94     ENDIF
95     #endif
96    
97     #ifdef ALLOW_DIAGNOSTICS
98     IF ( useDiagnostics ) THEN
99     CALL PTRACERS_DIAGNOSTICS_INIT( myThid )
100     ENDIF
101     #endif
102    
103     #endif /* ALLOW_PTRACERS */
104    
105     RETURN
106     END

  ViewVC Help
Powered by ViewVC 1.1.22