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

Annotation of /MITgcm/pkg/generic_advdiff/gad_advscheme.F

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


Revision 1.1 - (hide annotations) (download)
Tue Aug 5 01:50:35 2014 UTC (9 years, 9 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, checkpoint65b, checkpoint65c, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e, HEAD
- re-work the code to check for valid advection scheme and for minimum
  size of overlap (now stored in local common bloc in gad_advscheme.F)

1 jmc 1.1 C $Header: /u/gcmpack/MITgcm/pkg/generic_advdiff/gad_valid_advscheme.F,v 1.1 2010/11/16 17:39:13 jmc Exp $
2     C $Name: $
3    
4     #include "GAD_OPTIONS.h"
5    
6     C-- File gad_advscheme.F: Keeping track of Advection schemes requirement
7     C-- Contents:
8     C-- o GAD_ADVSCHEME_INIT
9     C-- o GAD_ADVSCHEME_SET
10     C-- o GAD_ADVSCHEME_GET (Function)
11    
12     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
13     CBOP
14     C !ROUTINE: GAD_ADVSCHEME_INIT
15    
16     C !INTERFACE:
17     SUBROUTINE GAD_ADVSCHEME_INIT( myThid )
18    
19     C !DESCRIPTION:
20     C *==========================================================*
21     C | S/R GAD\_ADVSCHEME\_INIT
22     C | o Initialise shared local variables
23     C *==========================================================*
24    
25     C !USES:
26     IMPLICIT NONE
27     C-- Global variables
28     #include "SIZE.h"
29     #include "GAD.h"
30    
31     C-- Local variables shared by S/R within this file (gad_advscheme.F)
32     C GAD_advScheme_OlMin :: overlap minimum size for this advection scheme
33     INTEGER GAD_advScheme_OlMin(GAD_Scheme_MaxNum)
34     COMMON /GAD_ADVSCHEME_LOCAL/ GAD_advScheme_OlMin
35    
36     C !INPUT PARAMETERS:
37     C myThid :: my Thread Id number
38     INTEGER myThid
39    
40     C !LOCAL VARIABLES:
41     INTEGER n
42     CEOP
43    
44     _BEGIN_MASTER(myThid)
45     DO n=1,GAD_Scheme_MaxNum
46     GAD_advScheme_OlMin(n) = -1
47     ENDDO
48     _END_MASTER(myThid)
49    
50     RETURN
51     END
52    
53     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
54     CBOP
55     C !ROUTINE: GAD_ADVSCHEME_SET
56    
57     C !INTERFACE:
58     SUBROUTINE GAD_ADVSCHEME_SET(
59     I advScheme, OlMinSize,
60     U errCode,
61     I myThid )
62    
63     C !DESCRIPTION:
64     C *==========================================================*
65     C | S/R GAD\_ADVSCHEME\_SET
66     C | o Store minimum length of OverLap (related to stencil)
67     C | that this advection needs.
68     C *==========================================================*
69    
70     C !USES:
71     IMPLICIT NONE
72     C-- Global variables
73     #include "SIZE.h"
74     #include "EEPARAMS.h"
75     #include "GAD.h"
76    
77     C-- Local variables shared by S/R within this file (gad_advscheme.F)
78     C GAD_advScheme_OlMin :: overlap minimum size for this advection scheme
79     INTEGER GAD_advScheme_OlMin(GAD_Scheme_MaxNum)
80     COMMON /GAD_ADVSCHEME_LOCAL/ GAD_advScheme_OlMin
81    
82     C !INPUT/OUTPUT PARAMETERS:
83     C advScheme :: advection scheme number
84     C OlMinSize :: overlap minimum size for this advection scheme
85     C errCode :: tracks occurence of errors ( > 0)
86     C myThid :: my Thread Id number
87     INTEGER advScheme
88     INTEGER OlMinSize
89     INTEGER errCode
90     INTEGER myThid
91    
92     C !LOCAL VARIABLES:
93     C msgBuf :: Informational/error message buffer
94     CHARACTER*(MAX_LEN_MBUF) msgBuf
95     CEOP
96    
97     IF ( advScheme.GE.1 .AND. advScheme.LE.GAD_Scheme_MaxNum ) THEN
98     _BEGIN_MASTER(myThid)
99     GAD_advScheme_OlMin(advScheme) = OlMinSize
100     _END_MASTER(myThid)
101     ELSE
102     WRITE(msgBuf,'(2A,I6,A)') 'GAD_ADVSCHEME_SET: ',
103     & 'Advection-Scheme Number:', advScheme, ' not valid'
104     CALL PRINT_ERROR( msgBuf, myThid )
105     WRITE(msgBuf,'(2A,I4,A)') 'GAD_ADVSCHEME_SET: ',
106     & 'should be > 0 and < GAD_Scheme_MaxNum =', GAD_Scheme_MaxNum
107     CALL PRINT_ERROR( msgBuf, myThid )
108     errCode = MAX( errCode, 1 )
109     ENDIF
110    
111     RETURN
112     END
113    
114     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
115     CBOP
116     C !ROUTINE: GAD_ADVSCHEME_GET
117    
118     C !INTERFACE:
119     INTEGER FUNCTION GAD_ADVSCHEME_GET( advScheme )
120    
121     C !DESCRIPTION:
122     C *==========================================================*
123     C | INTEGER FUNCTION GAD\_ADVSCHEME\_GET
124     C | o Return minimum length of OverLap (related to stencil)
125     C | that this advection needs.
126     C *==========================================================*
127    
128     C !USES:
129     IMPLICIT NONE
130     C-- Global variables
131     #include "SIZE.h"
132     #include "GAD.h"
133    
134     C-- Local variables shared by S/R within this file (gad_advscheme.F)
135     C GAD_advScheme_OlMin :: overlap minimum size for this advection scheme
136     INTEGER GAD_advScheme_OlMin(GAD_Scheme_MaxNum)
137     COMMON /GAD_ADVSCHEME_LOCAL/ GAD_advScheme_OlMin
138    
139     C !INPUT PARAMETERS:
140     C advScheme :: advection scheme number
141     INTEGER advScheme
142    
143     C !LOCAL VARIABLES:
144     CEOP
145    
146     IF ( advScheme.GE.1 .AND. advScheme.LE.GAD_Scheme_MaxNum ) THEN
147     GAD_ADVSCHEME_GET = GAD_advScheme_OlMin(advScheme)
148     ELSE
149     GAD_ADVSCHEME_GET = -2
150     ENDIF
151    
152     RETURN
153     END

  ViewVC Help
Powered by ViewVC 1.1.22