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

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

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


Revision 1.1 - (show annotations) (download)
Tue Aug 5 01:50:35 2014 UTC (9 years, 8 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 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