24 |
#include "PARAMS.h" |
#include "PARAMS.h" |
25 |
|
|
26 |
#include "ctrl.h" |
#include "ctrl.h" |
27 |
|
#ifdef ALLOW_EXF |
28 |
|
# include "EXF_PARAM.h" |
29 |
|
#endif |
30 |
|
|
31 |
C === Routine arguments === |
C === Routine arguments === |
32 |
C myThid - Number of this instance |
C myThid - Number of this instance |
35 |
C === Local variables === |
C === Local variables === |
36 |
C msgBuf - Informational/error meesage buffer |
C msgBuf - Informational/error meesage buffer |
37 |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
CHARACTER*(MAX_LEN_MBUF) msgBuf |
38 |
|
LOGICAL solve4Stress |
39 |
|
|
40 |
WRITE(msgBuf,'(A)') 'CTRL_CHECK: ctrl package' |
WRITE(msgBuf,'(A)') 'CTRL_CHECK: ctrl package' |
41 |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, |
123 |
#ifdef ALLOW_SEAICE |
#ifdef ALLOW_SEAICE |
124 |
C pkg/seaice requires a particular set of control parameters |
C pkg/seaice requires a particular set of control parameters |
125 |
C which in turn require a particular set of input fields |
C which in turn require a particular set of input fields |
126 |
#ifndef ALLOW_ATM_WIND |
# if ( defined ALLOW_HFLUX_CONTROL || defined ALLOW_SFLUX_CONTROL ) |
|
WRITE(msgBuf,'(A)') |
|
|
& 'The SEAICE adjoint requires ALLOW_ATM_WIND' |
|
|
CALL PRINT_ERROR( msgBuf , 1) |
|
|
STOP 'ABNORMAL END: S/R CTRL_CHECK' |
|
|
#endif |
|
|
#if (defined ALLOW_HFLUX_CONTROL || defined ALLOW_SFLUX_CONTROL || \ |
|
|
defined ALLOW_USTRESS_CONTROL || defined ALLOW_VSTRESS_CONTROL ) |
|
127 |
WRITE(msgBuf,'(A)') |
WRITE(msgBuf,'(A)') |
128 |
& 'The SEAICE adjoint does not allow the surface fluxes' |
& 'The SEAICE adjoint does not allow the surface fluxes' |
129 |
CALL PRINT_ERROR( msgBuf , 1) |
CALL PRINT_ERROR( msgBuf , 1) |
130 |
WRITE(msgBuf,'(A)') 'ALLOW_HFLUX_CONTROL' |
WRITE(msgBuf,'(A)') ' ALLOW_HFLUX_CONTROL' |
|
CALL PRINT_ERROR( msgBuf , 1) |
|
|
WRITE(msgBuf,'(A)') 'ALLOW_SFLUX_CONTROL' |
|
|
CALL PRINT_ERROR( msgBuf , 1) |
|
|
WRITE(msgBuf,'(A)') 'ALLOW_USTRESS_CONTROL' |
|
131 |
CALL PRINT_ERROR( msgBuf , 1) |
CALL PRINT_ERROR( msgBuf , 1) |
132 |
WRITE(msgBuf,'(A)') 'ALLOW_VSTRESS_CONTROL' |
WRITE(msgBuf,'(A)') ' ALLOW_SFLUX_CONTROL' |
133 |
CALL PRINT_ERROR( msgBuf , 1) |
CALL PRINT_ERROR( msgBuf , 1) |
134 |
WRITE(msgBuf,'(A)') 'to be control vaiables' |
WRITE(msgBuf,'(A)') 'to be control variables' |
135 |
CALL PRINT_ERROR( msgBuf , 1) |
CALL PRINT_ERROR( msgBuf , 1) |
136 |
STOP 'ABNORMAL END: S/R CTRL_CHECK' |
STOP 'ABNORMAL END: S/R CTRL_CHECK' |
137 |
#endif |
# endif |
138 |
|
# if ( defined ALLOW_USTRESS_CONTROL || defined ALLOW_VSTRESS_CONTROL ) |
139 |
|
# ifdef ALLOW_BULK_LARGEYEAGER04 |
140 |
|
solve4Stress = wspeedfile .NE. ' ' |
141 |
|
# else |
142 |
|
solve4Stress = .FALSE. |
143 |
|
# endif |
144 |
|
if (.NOT.solve4Stress) then |
145 |
|
WRITE(msgBuf,'(A)') |
146 |
|
& 'The SEAICE adjoint does not allow the surface fluxes' |
147 |
|
CALL PRINT_ERROR( msgBuf , 1) |
148 |
|
WRITE(msgBuf,'(A)') ' ALLOW_USTRESS_CONTROL' |
149 |
|
CALL PRINT_ERROR( msgBuf , 1) |
150 |
|
WRITE(msgBuf,'(A)') ' ALLOW_VSTRESS_CONTROL' |
151 |
|
CALL PRINT_ERROR( msgBuf , 1) |
152 |
|
WRITE(msgBuf,'(A)') 'to be control variables' |
153 |
|
CALL PRINT_ERROR( msgBuf , 1) |
154 |
|
WRITE(msgBuf,'(A)') 'except if wspeedfile is specified' |
155 |
|
CALL PRINT_ERROR( msgBuf , 1) |
156 |
|
WRITE(msgBuf,'(A)') 'and ifdef ALLOW_BULK_LARGEYEAGER04' |
157 |
|
CALL PRINT_ERROR( msgBuf , 1) |
158 |
|
STOP 'ABNORMAL END: S/R CTRL_CHECK' |
159 |
|
endif |
160 |
|
# endif |
161 |
#endif /* ALLOW_SEAICE */ |
#endif /* ALLOW_SEAICE */ |
162 |
return |
return |
163 |
end |
end |