/[MITgcm]/MITgcm_contrib/many_tracers/new_code/ptracers_init_fixed.F
ViewVC logotype

Contents of /MITgcm_contrib/many_tracers/new_code/ptracers_init_fixed.F

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


Revision 1.1.1.1 - (show annotations) (download) (vendor branch)
Thu Jun 15 02:23:54 2006 UTC (17 years, 11 months ago) by cnh
Branch: initial, MAIN
CVS Tags: start, HEAD
Changes since 1.1: +0 -0 lines
Initial checkin

1 C $Header: /u/gcmpack/MITgcm/pkg/ptracers/ptracers_init_fixed.F,v 1.1 2006/05/24 00:47:05 jmc Exp $
2 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 #include "PTRACERS.h"
23 #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 Set up the two character io labels for PTRACERS
74 CALL PTRACERS_MAKE_DLABEL_LIST( PTRACERS_iolabel,
75 & PTRACERS_numInUse )
76
77 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
78
79 #ifdef ALLOW_MNC
80 IF (useMNC) THEN
81 C Initialize the MNC variable types for PTRACERS
82 CALL PTRACERS_MNC_INIT( myThid )
83 ENDIF
84 #endif
85
86 #ifdef ALLOW_DIAGNOSTICS
87 IF ( useDiagnostics ) THEN
88 CALL PTRACERS_DIAGNOSTICS_INIT( myThid )
89 ENDIF
90 #endif
91
92 #endif /* ALLOW_PTRACERS */
93
94 RETURN
95 END

  ViewVC Help
Powered by ViewVC 1.1.22