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

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

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


Revision 1.3 - (hide annotations) (download)
Fri Sep 1 10:15:33 2006 UTC (18 years, 1 month ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint58u_post, checkpoint58r_post, checkpoint58t_post, checkpoint58q_post, checkpoint58s_post, checkpoint58p_post
Changes since 1.2: +18 -15 lines
add a few comments and remove consistency check for shelfice an
non-hydrostatic code, as they seem to work together.

1 mlosch 1.3 C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_check.F,v 1.2 2006/02/10 10:00:42 mlosch Exp $
2 mlosch 1.1 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    
18     C === Routine arguments ===
19     C myThid - Number of this instance of SHELFICE_CHECK
20     INTEGER myThid
21    
22     #ifdef ALLOW_SHELFICE
23    
24     C === Local variables ===
25     C msgBuf - Informational/error meesage buffer
26     CHARACTER*(MAX_LEN_MBUF) msgBuf
27    
28     WRITE(msgBuf,'(A)') 'SHELFICE_CHECK: #define ALLOW_SHELFICE'
29     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
30     & SQUEEZE_RIGHT , 1)
31    
32     C So far, SHELFICE works only with oceanic z-coordinates
33     IF ( buoyancyRelation .NE. 'OCEANIC' ) THEN
34     WRITE(msgBuf,'(A)')
35     & 'SHELFICE works only with buoyancyRelation = ''OCEANIC'''
36     CALL PRINT_ERROR( msgBuf , 1)
37     STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
38     ENDIF
39    
40 mlosch 1.3 CML#ifdef ALLOW_NONHYDROSTATIC
41     CML IF ( nonHydrostatic ) THEN
42     CML WRITE(msgBuf,'(A)')
43     CML & 'Currently SHELFICE and nonHydrostatic cannot be turned'
44     CML CALL PRINT_ERROR( msgBuf , 1)
45     CML WRITE(msgBuf,'(A)') 'on at the same time'
46     CML CALL PRINT_ERROR( msgBuf , 1)
47     CML STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
48     CML ENDIF
49     CML#endif /* ALLOW_NONHYDROSTATIC */
50 mlosch 1.2
51 mlosch 1.3 C SHELFICE may not work with many other packages,
52     C e.g. vertical mixing schemes, in particular KPP will not work properly,
53     C as KPP requires surface fluxes at the surface, whereas shelfice will
54     C provide interfacial fluxes at some depth. Richardson flux number based
55     C schemes such as Packanowski-Philander (PP81) should be no problem.
56     CML#ifdef ALLOW_KPP
57 mlosch 1.1 CML IF ( useKPP ) THEN
58     CML WRITE(msgBuf,'(A)')
59     CML & 'SHELFICE and KPP cannot be turned on at the same time'
60     CML CALL PRINT_ERROR( msgBuf , 1)
61     CML STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
62     CML ENDIF
63 mlosch 1.3 CML#endif ALLOW_KPP
64 mlosch 1.2
65     #ifndef ALLOW_ISOMIP_TD
66     IF ( useISOMIPTD ) THEN
67     WRITE(msgBuf,'(A,A,A)')
68     & 'Run-time control flag useISOMIPTD was used'
69     CALL PRINT_ERROR( msgBuf , 1)
70     WRITE(msgBuf,'(A,A,A)')
71     & 'when CPP flag ALLOW_ISOMIP_TD was unset'
72     CALL PRINT_ERROR( msgBuf , 1)
73     STOP 'ABNORMAL END: S/R SHELFICE_CHECK'
74     ENDIF
75     #endif /* ALLOW_ISOMIP_TD */
76 mlosch 1.1
77     #endif /* ALLOW_SHELFICE */
78    
79     return
80     end

  ViewVC Help
Powered by ViewVC 1.1.22