/[MITgcm]/MITgcm/pkg/shelfice/shelfice_check.F
ViewVC logotype

Contents of /MITgcm/pkg/shelfice/shelfice_check.F

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


Revision 1.5 - (show annotations) (download)
Wed Oct 10 09:26:39 2007 UTC (16 years, 7 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint62, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59k, checkpoint59j, checkpoint62c, checkpoint62b, checkpoint62a, checkpoint62g, checkpoint62f, checkpoint62e, checkpoint62d, checkpoint62k, checkpoint62j, checkpoint62i, checkpoint62h, checkpoint62o, checkpoint62n, checkpoint62m, checkpoint62l, checkpoint62s, checkpoint62r, checkpoint62q, checkpoint62p, checkpoint62w, checkpoint62v, checkpoint62u, checkpoint62t, checkpoint62z, checkpoint62y, checkpoint62x, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.4: +14 -1 lines
add option for convservative form of Hellmer&Olbers (1989) thermodynamics
- requires a little reorganization, which affects the testreport results
  of isomip.htd (only 7 digits of cg2d agree) => update experiment
  The results are extremely sensitive to details of the algorithm
  (e.g., order in which sums and differences are taken, etc) so that
  replacing a term with a (theoretically) exactly equal other term
  causes the big difference; possibly, because the solution of a
  quadratic equation is involed. I am not happy about this, but the
  present formulation appears to be a little more robust.
- add a few comments

1 C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_check.F,v 1.4 2007/01/25 21:39:24 jmc Exp $
2 C $Name: $
3 #include "SHELFICE_OPTIONS.h"
4
5 SUBROUTINE SHELFICE_CHECK( myThid )
6 C /==========================================================\
7 C | SUBROUTINE SHELFICE_CHECK |
8 C | o Validate basic package setup and inter-package |
9 C | dependencies. |
10 C \==========================================================/
11 IMPLICIT NONE
12
13 C === Global variables ===
14 #include "SIZE.h"
15 #include "EEPARAMS.h"
16 #include "PARAMS.h"
17 #include "SHELFICE.h"
18
19 C === Routine arguments ===
20 C myThid - Number of this instance of SHELFICE_CHECK
21 INTEGER myThid
22
23 #ifdef ALLOW_SHELFICE
24
25 C === Local variables ===
26 C msgBuf - Informational/error meesage buffer
27 CHARACTER*(MAX_LEN_MBUF) msgBuf
28
29 _BEGIN_MASTER(myThid)
30
31 WRITE(msgBuf,'(A)') 'SHELFICE_CHECK: #define ALLOW_SHELFICE'
32 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
33 & SQUEEZE_RIGHT, myThid )
34
35 C So far, SHELFICE works only with oceanic z-coordinates
36 IF ( buoyancyRelation .NE. 'OCEANIC' ) THEN
37 WRITE(msgBuf,'(A)')
38 & 'SHELFICE works only with buoyancyRelation = ''OCEANIC'''
39 CALL PRINT_ERROR( msgBuf, myThid )
40 STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
41 ENDIF
42
43 CML#ifdef ALLOW_NONHYDROSTATIC
44 CML IF ( nonHydrostatic ) THEN
45 CML WRITE(msgBuf,'(A)')
46 CML & 'Currently SHELFICE and nonHydrostatic cannot be turned'
47 CML CALL PRINT_ERROR( msgBuf , 1)
48 CML WRITE(msgBuf,'(A)') 'on at the same time'
49 CML CALL PRINT_ERROR( msgBuf , 1)
50 CML STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
51 CML ENDIF
52 CML#endif /* ALLOW_NONHYDROSTATIC */
53
54 C SHELFICE may not work with many other packages,
55 C e.g. vertical mixing schemes, in particular KPP will not work properly,
56 C as KPP requires surface fluxes at the surface, whereas shelfice will
57 C provide interfacial fluxes at some depth. Richardson flux number based
58 C schemes such as Packanowski-Philander (PP81) should be no problem.
59 CML#ifdef ALLOW_KPP
60 CML IF ( useKPP ) THEN
61 CML WRITE(msgBuf,'(A)')
62 CML & 'SHELFICE and KPP cannot be turned on at the same time'
63 CML CALL PRINT_ERROR( msgBuf , 1)
64 CML STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
65 CML ENDIF
66 CML#endif ALLOW_KPP
67
68 #ifndef ALLOW_ISOMIP_TD
69 IF ( useISOMIPTD ) THEN
70 WRITE(msgBuf,'(A,A,A)')
71 & 'Run-time control flag useISOMIPTD was used'
72 CALL PRINT_ERROR( msgBuf, myThid )
73 WRITE(msgBuf,'(A,A,A)')
74 & 'when CPP flag ALLOW_ISOMIP_TD was unset'
75 CALL PRINT_ERROR( msgBuf, myThid )
76 STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
77 ENDIF
78 #else
79 IF ( useISOMIPTD ) THEN
80 IF ( SHELFICEconserve ) THEN
81 WRITE(msgBuf,'(A,A,A)')
82 & 'Run-time control flag SHELFICEconserve=.TRUE. was used'
83 CALL PRINT_ERROR( msgBuf, myThid )
84 WRITE(msgBuf,'(A,A,A)')
85 & 'when useISOMIPTD=.TRUE.; this does not work!'
86 CALL PRINT_ERROR( msgBuf, myThid )
87 STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
88 ENDIF
89 ENDIF
90 #endif /* ALLOW_ISOMIP_TD */
91
92 _END_MASTER(myThid)
93
94 #endif /* ALLOW_SHELFICE */
95
96 RETURN
97 END

  ViewVC Help
Powered by ViewVC 1.1.22