/[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.2 - (hide annotations) (download)
Mon Nov 5 18:48:04 2007 UTC (16 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59k, checkpoint59j
Changes since 1.1: +2 -2 lines
split PTRACERS.h in 2 header files: PTRACERS_FIELDS.h & PTRACERS_PARAMS.h

1 jmc 1.2 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_init_fixed.F,v 1.1 2006/05/24 00:47:05 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.1 #include "GAD.h"
24    
25     C !INPUT PARAMETERS:
26     INTEGER myThid
27     CEOP
28    
29     #ifdef ALLOW_PTRACERS
30    
31     C !LOCAL VARIABLES:
32     C iTracer :: tracer index
33     C msgBuf - Informational/error meesage buffer
34     INTEGER iTracer
35     INTEGER minOlSize
36     CHARACTER*(MAX_LEN_MBUF) msgBuf
37    
38     C Loop over tracers
39     DO iTracer = 1, PTRACERS_numInUse
40    
41     IF (
42     & multiDimAdvection .AND.
43     & PTRACERS_advScheme(iTracer).NE.ENUM_CENTERED_2ND .AND.
44     & PTRACERS_advScheme(iTracer).NE.ENUM_UPWIND_3RD .AND.
45     & PTRACERS_advScheme(iTracer).NE.ENUM_CENTERED_4TH ) THEN
46     c PTRACERS_multiDimAdv(iTracer) = .TRUE.
47     useMultiDimAdvec = .TRUE.
48     ENDIF
49    
50     C end of Tracer loop
51     ENDDO
52    
53     C-- Check size of the overlap :
54     IF ( useCubedSphereExchange .AND. useMultiDimAdvec ) THEN
55     C- multi-dim-advection on CS-grid requires to double the size of Olx,Oly
56     minOlSize = 2
57     DO iTracer = 1, PTRACERS_numInUse
58     IF ( PTRACERS_advScheme(iTracer).EQ.ENUM_FLUX_LIMIT .OR.
59     & PTRACERS_advScheme(iTracer).EQ.ENUM_DST3_FLUX_LIMIT .OR.
60     & PTRACERS_advScheme(iTracer).EQ.ENUM_DST3 ) minOlSize = 4
61     ENDDO
62     IF ( Olx.LT.minOlSize .OR. Oly.LT.minOlSize ) THEN
63     WRITE(msgBuf,'(2A)') 'PTRACERS_INIT_FIXED: ',
64     & 'Multi-Dim Advection with 5-points stencil'
65     CALL PRINT_ERROR( msgBuf , myThid)
66     WRITE(msgBuf,'(2A,I2)') 'PTRACERS_INIT_FIXED: ',
67     & 'advection scheme needs at least Olx,Oly=', minOlSize
68     CALL PRINT_ERROR( msgBuf , myThid)
69     STOP 'ABNORMAL END: S/R PTRACERS_INIT_FIXED'
70     ENDIF
71     ENDIF
72    
73     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
74    
75     #ifdef ALLOW_MNC
76     IF (useMNC) THEN
77     C Initialize the MNC variable types for PTRACERS
78     CALL PTRACERS_MNC_INIT( myThid )
79     ENDIF
80     #endif
81    
82     #ifdef ALLOW_DIAGNOSTICS
83     IF ( useDiagnostics ) THEN
84     CALL PTRACERS_DIAGNOSTICS_INIT( myThid )
85     ENDIF
86     #endif
87    
88     #endif /* ALLOW_PTRACERS */
89    
90     RETURN
91     END

  ViewVC Help
Powered by ViewVC 1.1.22