/[MITgcm]/MITgcm/pkg/layers/layers_check.F
ViewVC logotype

Contents of /MITgcm/pkg/layers/layers_check.F

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


Revision 1.7 - (show annotations) (download)
Wed Sep 19 18:48:18 2012 UTC (11 years, 7 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint64y, checkpoint64x, checkpoint64z, checkpoint64q, checkpoint64p, checkpoint64s, checkpoint64r, checkpoint64u, checkpoint64t, checkpoint64w, checkpoint64v, checkpoint64i, checkpoint64h, checkpoint64k, checkpoint64j, checkpoint64m, checkpoint64l, checkpoint64o, checkpoint64n, checkpoint64a, checkpoint64c, checkpoint64b, checkpoint64e, checkpoint64d, checkpoint64g, checkpoint64f, checkpoint64, checkpoint65, checkpoint65j, checkpoint65k, checkpoint65h, checkpoint65i, checkpoint65l, checkpoint65b, checkpoint65c, checkpoint65a, checkpoint65f, checkpoint65g, checkpoint65d, checkpoint65e
Changes since 1.6: +21 -6 lines
- added layers_maxNum dimension, to allow for multiple layers
  computations at once (if layers_maxNum >1 in LAYERS_SIZE.h).
- added/replaced new run time parameters :
  layers_bounds (repl. layers_G), layers_bolus (repl. useBOLUS),
  layers_num (repl. LAYER_nb; set by run time layers_name),
  layers_name ('TH', 'SLT' or 'RHO'), layers_krho (repl. layers_kref)
- The old way of specifying LAYER_nb, layers_G, etc. is kept
  for backward compatibility, and superseeds the new way. For now.
- layers_G.data output is replaced with layers1SLT.data
  where '1' is the layers set index (.LE.layers_maxNum)
  and 'SLT' is layers_name (i.e. the type of layers).
- Typical diagnostics names : 'LaUH1SLT','LaHw1SLT'.
- bug fix : previous commit was missing a pair of bi,bj loops.
- added ALLOW_LAYERS_OUTPUT cpp option : if undef then comment
  out the old fashion way of output (that still works for the
  first set of layers). Prefered way now is via pkg/diagnostics.

1 C $Header: /u/gcmpack/MITgcm/pkg/layers/layers_check.F,v 1.6 2011/10/19 01:28:45 dfer Exp $
2 C $Name: $
3
4 #include "LAYERS_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7
8 SUBROUTINE LAYERS_CHECK( myThid )
9
10 C Check dependances with other packages
11
12 IMPLICIT NONE
13 #include "SIZE.h"
14 #include "EEPARAMS.h"
15 #include "PARAMS.h"
16 #include "EOS.h"
17 #include "LAYERS_SIZE.h"
18 #include "LAYERS.h"
19
20 C myThid :: my Thread Id number
21 INTEGER myThid
22
23 C LOCAL VARIABLES:
24 C msgBuf :: Informational/error message buffer
25 CHARACTER*(MAX_LEN_MBUF) msgBuf
26 INTEGER iLa
27
28 #ifdef ALLOW_LAYERS
29
30 _BEGIN_MASTER(myThid)
31
32 WRITE(msgBuf,'(A)') 'LAYERS_CHECK: #define LAYERS'
33 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
34 & SQUEEZE_RIGHT , 1)
35
36 C-- Print out some key parameters :
37 CALL WRITE_0D_I( NZZ, INDEX_NONE, 'NZZ =',
38 & ' /* number of levels in the fine vertical grid */')
39
40 CALL WRITE_1D_RL( dZZf, NZZ, INDEX_K, 'dZZf =',
41 & ' /* fine vertical grid spacing for isopycnal interp */')
42
43 DO iLa=1,layers_maxNum
44 IF ( layers_num(iLa).NE.0 ) THEN
45
46 CALL WRITE_0D_I( layers_num(iLa), INDEX_NONE, 'layers_num =',
47 & '/* (1) theta; (2) salt; (3) prho; as averaging field */' )
48
49 CALL WRITE_0D_C( layers_name(iLa),-1,INDEX_NONE,'layers_name =',
50 & '/* (TH) theta; (SLT) salt; (RHO) prho; as averaging field */' )
51
52 CALL WRITE_0D_L ( layers_bolus(iLa), INDEX_NONE,
53 & 'layers_bolus =', ' /* include potential GM bolus velocity */')
54
55 IF ( layers_num(iLa).EQ.3)
56 & CALL WRITE_0D_I( layers_krho(iLa), INDEX_NONE, 'layers_krho =',
57 & ' /* model level to reference potential density to */' )
58
59 CALL WRITE_1D_RL(layers_bounds(1,iLa),
60 & Nlayers+1, INDEX_K,'layers_bounds =',
61 & ' /* boundaries of tracer-averaging bins */')
62
63 ENDIF !IF ( layers_num(iLa).NE.0 ) THEN
64 ENDDO !DO iLa=1,layers_maxNum
65
66 C-- Check parameters:
67
68
69 C For now the package will only work if density ~ temperature
70 c IF ( (eosType .EQ. 'LINEAR')
71 c & .AND. (sBeta .EQ. 0.0 _d 0) ) THEN
72 C we are good
73 c ELSE
74 c WRITE(msgBuf,'(2A)') 'eosType must be eosType=''LINEAR''',
75 c & ' and sBeta must = 0.0'
76 c CALL PRINT_ERROR( msgBuf , 1)
77 c STOP 'ABNORMAL END: S/R LAYERS_CHECK'
78 c ENDIF
79
80 _END_MASTER(myThid)
81
82 #endif /* ALLOW_LAYERS */
83
84 RETURN
85 END

  ViewVC Help
Powered by ViewVC 1.1.22