/[MITgcm]/MITgcm/pkg/seaice/seaice_check.F
ViewVC logotype

Annotation of /MITgcm/pkg/seaice/seaice_check.F

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


Revision 1.4 - (hide annotations) (download)
Tue Feb 18 05:33:55 2003 UTC (21 years, 3 months ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint50c_post, checkpoint50c_pre, checkpoint48i_post, checkpoint51, checkpoint50, checkpoint50d_post, checkpoint50b_pre, checkpoint51d_post, checkpoint48f_post, checkpoint48h_post, checkpoint51b_pre, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, checkpoint51b_post, checkpoint51c_post, checkpoint50g_post, checkpoint50h_post, checkpoint50e_pre, checkpoint50i_post, checkpoint50e_post, checkpoint50d_pre, checkpoint51e_post, checkpoint49, checkpoint48g_post, checkpoint50b_post, checkpoint51a_post
Changes since 1.3: +63 -16 lines
Merging from release1_p12:
o Modifications for using pkg/exf with pkg/seaice
  - improved description of the various forcing configurations
  - added basic radiation bulk formulae to pkg/exf
  - units/sign fix for evap computation in exf_getffields.F
  - updated verification/global_with_exf/results/output.txt
o Added pkg/sbo for computing IERS Special Bureau for the Oceans
  (SBO) core products, including oceanic mass, center-of-mass,
  angular, and bottom pressure (see pkg/sbo/README.sbo).
o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F
  to avoid negative values in shallow regions.
  - updated verification/natl_box/results/output.txt
  - updated verification/lab_sea/results/output.txt
o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F
o Added useSingleCpuIO option (see PARAMS.h).
o Updated useSingleCpuIO option in mdsio_writefield.F to
  work with multi-field files, e.g., for single-file pickup.
o pkg/seaice:
  - bug fix in growth.F: QNET for no shortwave case
  - added HeffFile for specifying initial sea-ice thickness
  - changed SEAICE_EXTERNAL_FLUXES wind stress implementation
o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf,
  kpp_transport_t.F, forward_step.F, and the_main_loop.F
o pkg/seaice:
  - adjoint-friendly modifications
  - added a SEAICE_WRITE_PICKUP at end of the_model_main.F

1 heimbach 1.2 C $Header:
2    
3     #include "SEAICE_OPTIONS.h"
4    
5     SUBROUTINE SEAICE_CHECK( myThid )
6     C /==========================================================\
7     C | SUBROUTINE SEAICE_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 dimitri 1.4 #include "SEAICE_PARAMS.h"
18     #ifdef INCLUDE_EXTERNAL_FORCING_PACKAGE
19     LOGICAL EXFwindOnBgrid
20     COMMON /EXF_PARM_L/ EXFwindOnBgrid
21     #endif
22 heimbach 1.2
23     C === Routine arguments ===
24     C myThid - Number of this instance of SEAICE_CHECK
25     INTEGER myThid
26    
27     #ifdef ALLOW_SEAICE
28    
29     C === Local variables ===
30     C msgBuf - Informational/error meesage buffer
31     CHARACTER*(MAX_LEN_MBUF) msgBuf
32    
33 dimitri 1.3 C-- ALLOW_SEAICE
34 heimbach 1.2 WRITE(msgBuf,'(A)') 'SEAICE_CHECK: #define ALLOW_SEAICE'
35     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
36     & SQUEEZE_RIGHT , myThid )
37 dimitri 1.3
38     C-- SEAICE_ALLOW_DYNAMICS and SEAICEuseDYNAMICS
39     #ifndef SEAICE_ALLOW_DYNAMICS
40     IF (SEAICEuseDYNAMICS) THEN
41     WRITE(msgBuf,'(A)')
42     & 'SEAICE_ALLOW_DYNAMICS needed for SEAICEuseDYNAMICS'
43     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
44     & SQUEEZE_RIGHT , myThid )
45     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
46     ENDIF
47 dimitri 1.4 #endif
48 dimitri 1.3
49     C-- SEAICE_EXTERNAL_FORCING
50     C At present this option is hardwired for pkg/exf.
51     #ifdef SEAICE_EXTERNAL_FORCING
52     #ifndef INCLUDE_EXTERNAL_FORCING_PACKAGE
53     WRITE(msgBuf,'(A)')
54     & 'need to define INCLUDE_EXTERNAL_FORCING_PACKAGE'
55     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
56     & SQUEEZE_RIGHT , myThid )
57     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
58 dimitri 1.4 #else /* INCLUDE_EXTERNAL_FORCING_PACKAGE */
59     #ifndef ALLOW_ATM_TEMP
60     WRITE(msgBuf,'(A)')
61     & 'need to define pkg/exf ALLOW_ATM_TEMP'
62     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
63     & SQUEEZE_RIGHT , myThid )
64     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
65     #endif
66     #ifndef ALLOW_ATM_WIND
67     WRITE(msgBuf,'(A)')
68     & 'need to define pkg/exf ALLOW_ATM_WIND'
69     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
70     & SQUEEZE_RIGHT , myThid )
71     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
72     #endif
73     #ifndef ALLOW_DOWNWARD_RADIATION
74     WRITE(msgBuf,'(A)')
75     & 'need to define pkg/exf ALLOW_DOWNWARD_RADIATION'
76     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
77     & SQUEEZE_RIGHT , myThid )
78     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
79     #endif
80     #if !defined(EXF_READ_EVAP) && !defined(ALLOW_BULKFORMULAE)
81 dimitri 1.3 WRITE(msgBuf,'(A)')
82 dimitri 1.4 & 'need to set EXF_READ_EVAP or ALLOW_BULKFORMULAE in pkg/exf '
83 dimitri 1.3 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
84     & SQUEEZE_RIGHT , myThid )
85     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
86 dimitri 1.4 #endif
87     IF(.NOT.SEAICEwindOnCgrid .AND. .NOT.EXFwindOnBgrid) THEN
88     WRITE(msgBuf,'(A)')
89     & 'please set either SEAICEwindOnCgrid or EXFwindOnBgrid '
90     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
91     & SQUEEZE_RIGHT , myThid )
92     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
93     ENDIF
94     IF(SEAICEwindOnCgrid .AND. EXFwindOnBgrid) THEN
95     WRITE(msgBuf,'(A)')
96     & 'please unset either SEAICEwindOnCgrid or EXFwindOnBgrid '
97     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
98     & SQUEEZE_RIGHT , myThid )
99     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
100     ENDIF
101     #endif /* INCLUDE_EXTERNAL_FORCING_PACKAGE */
102     #endif /* SEAICE_EXTERNAL_FORCING */
103    
104     C-- SEAICE_EXTERNAL_FLUXES
105     C At present this option is hardwired for pkg/exf.
106     #ifdef SEAICE_EXTERNAL_FLUXES
107     #ifndef INCLUDE_EXTERNAL_FORCING_PACKAGE
108 dimitri 1.3 WRITE(msgBuf,'(A)')
109 dimitri 1.4 & 'need to define INCLUDE_EXTERNAL_FORCING_PACKAGE'
110 dimitri 1.3 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
111     & SQUEEZE_RIGHT , myThid )
112     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
113 dimitri 1.4 #else /* INCLUDE_EXTERNAL_FORCING_PACKAGE */
114     IF(.NOT.SEAICEwindOnCgrid .AND. .NOT.EXFwindOnBgrid) THEN
115 dimitri 1.3 WRITE(msgBuf,'(A)')
116 dimitri 1.4 & 'please set either SEAICEwindOnCgrid or EXFwindOnBgrid '
117 dimitri 1.3 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
118     & SQUEEZE_RIGHT , myThid )
119     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
120 dimitri 1.4 ENDIF
121     IF(SEAICEwindOnCgrid .AND. EXFwindOnBgrid) THEN
122 dimitri 1.3 WRITE(msgBuf,'(A)')
123 dimitri 1.4 & 'please unset either SEAICEwindOnCgrid or EXFwindOnBgrid '
124 dimitri 1.3 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
125     & SQUEEZE_RIGHT , myThid )
126     STOP 'ABNORMAL END: S/R SEAICE_CHECK'
127 dimitri 1.4 ENDIF
128     #endif /* INCLUDE_EXTERNAL_FORCING_PACKAGE */
129     #endif /* SEAICE_EXTERNAL_FLUXES */
130 heimbach 1.2
131 dimitri 1.4 #endif /* ALLOW_SEAICE */
132 heimbach 1.2
133     return
134     end

  ViewVC Help
Powered by ViewVC 1.1.22