32 character (len=40) :: string
42 &
'CPP option renamed to '//
uppercase(
'bio_fennel')
46 ifound=index(trim(
coptions), trim(string))
49 &
'stability problems, WARNING'
53 ifound=index(trim(
coptions), trim(string))
56 &
'stability problems, WARNING'
60 ifound=index(trim(
coptions), trim(string))
63 &
'stability problems, WARNING'
67 ifound=index(trim(
coptions), trim(string))
70 &
'stability problems, WARNING'
76 &
'deprecated option, use ' // &
81#ifdef IS4DVAR_SENSITIVITY
84 &
'deprecated option, use ' // &
85 &
uppercase(
'i4dvar_ana_sensitivity') // &
92 &
'deprecated option, use ' // &
97#ifdef W4DPSAS_SENSITIVITY
100 &
'deprecated option, use ' // &
101 &
uppercase(
'rbl4dvar_ana_sensitivity') // &
102 &
' instead, WARNING'
105#ifdef W4DPSAS_FCT_SENSITIVITY
106 string=
uppercase(
'w4dpsas_fct_sensitivity')
108 &
'deprecated option, use ' // &
109 &
uppercase(
'rbl4dvar_fct_sensitivity') // &
110 &
' instead, WARNING'
116 &
'deprecated option, use ' // &
118 &
' instead, WARNING'
121#ifdef W4DVAR_SENSITIVITY
124 &
'deprecated option, use ' // &
125 &
uppercase(
'r4dvar_ana_sensitivity') // &
126 &
' instead, WARNING'
129# ifdef NL_BULK_FLUXES
133 &
'deprecated option, use ' // &
134 &
uppercase(
'forward_fluxes')//
' and ' // &
136 &
' instead, FATAL ERROR'
139#if defined TANGENT || defined TL_IOMS || defined ADJOINT
147 ifound=index(trim(
coptions), trim(string))
148 IF (ifound.ne.0)
THEN
151 &
'not coded, FATAL ERROR'
155 ifound=index(trim(
coptions), trim(string))
156 IF (ifound.ne.0)
THEN
159 &
'not coded, FATAL ERROR'
163 ifound=index(trim(
coptions), trim(string))
164 IF (ifound.ne.0)
THEN
167 &
'not coded, FATAL ERROR'
170# ifndef FORWARD_MIXING
173 ifound=index(trim(
coptions), trim(string))
174 IF (ifound.ne.0)
THEN
177 &
'not coded, FATAL ERROR'
182 ifound=index(trim(
coptions), trim(string))
183 IF (ifound.ne.0)
THEN
185 &
'not tested, WARNING'
191 &
'not finished, FATAL ERROR'
197 &
'not finished, FATAL ERROR'
203 &
'not finished, FATAL ERROR'
209 &
'not finished, FATAL ERROR'
215 &
'not finished, FATAL ERROR'
221 &
'not finished, FATAL ERROR'
227 &
'not finished, FATAL ERROR'
233 &
'not finished, FATAL ERROR'
239 &
'not finished, FATAL ERROR'
245 &
'not finished, FATAL ERROR'
251 &
'not finished, FATAL ERROR'
257 &
'not finished, FATAL ERROR'
265 &
'not finished, FATAL ERROR'
271 &
'not finished, FATAL ERROR'
277 &
'not finished, FATAL ERROR'
283 &
'not finished, FATAL ERROR'
289 &
'not finished, FATAL ERROR'
295 &
'not finished, FATAL ERROR'
301 &
'not finished, FATAL ERROR'
307 &
'not finished, FATAL ERROR'
312 IF (
master)
WRITE(
stdout,20)
'ad_LBC(ieast,isTvar(:))', &
313 &
'not finished, FATAL ERROR'
318 IF (
master)
WRITE(
stdout,20)
'ad_LBC(iwest,isTvar(:))', &
319 &
'not finished, FATAL ERROR'
324 IF (
master)
WRITE(
stdout,20)
'ad_LBC(isouth,isTvar(:))', &
325 &
'not finished, FATAL ERROR'
330 IF (
master)
WRITE(
stdout,20)
'ad_LBC(inorth,isTvar(:))', &
331 &
'not finished, FATAL ERROR'
336 ifound=index(trim(
coptions), trim(string))
337 IF (ifound.ne.0)
THEN
340 &
'not coded, FATAL ERROR'
344 ifound=index(trim(
coptions), trim(string))
345 IF (ifound.ne.0)
THEN
348 &
'experimental, AVOID USAGE'
351# ifndef FORWARD_MIXING
354 ifound=index(trim(
coptions), trim(string))
355 IF (ifound.ne.0)
THEN
358 &
'not differentiable, WARNING'
363 ifound=index(trim(
coptions), trim(string))
364 IF (ifound.ne.0)
THEN
367 &
'not coded, FATAL ERROR'
371 ifound=index(trim(
coptions), trim(string))
372 IF (ifound.ne.0)
THEN
375 &
'not coded, FATAL ERROR'
378# ifndef FORWARD_MIXING
381 ifound=index(trim(
coptions), trim(string))
382 IF (ifound.ne.0)
THEN
385 &
'not differentiable, WARNING'
390 ifound=index(trim(
coptions), trim(string))
391 IF (ifound.ne.0)
THEN
394 &
'not coded, FATAL ERROR'
397# ifndef FORWARD_MIXING
400 ifound=index(trim(
coptions), trim(string))
401 IF (ifound.ne.0)
THEN
404 &
'not differentiable, WARNING'
409 ifound=index(trim(
coptions), trim(string))
410 IF (ifound.ne.0)
THEN
413 &
'not coded, FATAL ERROR'
417 ifound=index(trim(
coptions), trim(string))
418 IF (ifound.ne.0)
THEN
421 &
'not coded, FATAL ERROR'
425 ifound=index(trim(
coptions), trim(string))
426 IF (ifound.ne.0)
THEN
429 &
'not coded, FATAL ERROR'
433 ifound=index(trim(
coptions), trim(string))
434 IF (ifound.ne.0)
THEN
437 &
'not working, FATAL ERROR'
441 ifound=index(trim(
coptions), trim(string))
442 IF (ifound.ne.0)
THEN
445 &
'not coded, FATAL ERROR'
449 ifound=index(trim(
coptions), trim(string))
450 IF (ifound.ne.0)
THEN
453 &
'not coded, FATAL ERROR'
457 ifound=index(trim(
coptions), trim(string))
458 IF (ifound.ne.0)
THEN
461 &
'not coded, FATAL ERROR'
465 ifound=index(trim(
coptions), trim(string))
466 IF (ifound.ne.0)
THEN
469 &
'not allowed, FATAL ERROR'
473 ifound=index(trim(
coptions), trim(string))
474 IF (ifound.ne.0)
THEN
477 &
'not coded, FATAL ERROR'
481 ifound=index(trim(
coptions), trim(string))
482 IF (ifound.ne.0)
THEN
485 &
'not tested, FATAL ERROR'
489 ifound=index(trim(
coptions), trim(string))
490 IF (ifound.ne.0)
THEN
493 &
'not coded, FATAL ERROR'
497 ifound=index(trim(
coptions), trim(string))
498 IF (ifound.ne.0)
THEN
501 &
'not coded, FATAL ERROR'
505 ifound=index(trim(
coptions), trim(string))
506 IF (ifound.ne.0)
THEN
509 &
'not coded, FATAL ERROR'
513 ifound=index(trim(
coptions), trim(string))
514 IF (ifound.ne.0)
THEN
517 &
'not coded, FATAL ERROR'
521 ifound=index(trim(
coptions), trim(string))
522 IF (ifound.ne.0)
THEN
525 &
'not allowed, FATAL ERROR'
528# if defined TANGENT || defined TL_IOMS
532 ifound=index(trim(
coptions), trim(string))
533 IF (ifound.ne.0)
THEN
536 &
'not coded, FATAL ERROR'
543 ifound=index(trim(
coptions), trim(string))
544 IF (ifound.ne.0)
THEN
547 &
'not coded, FATAL ERROR'
554 ifound=index(trim(
coptions), trim(string))
555 IF (ifound.ne.0)
THEN
558 &
'not coded, FATAL ERROR'
564 ifound=index(trim(
coptions), trim(string))
565 IF (ifound.ne.0)
THEN
568 &
'not coded, FATAL ERROR'
572 ifound=index(trim(
coptions), trim(string))
573 IF (ifound.ne.0)
THEN
576 &
'not coded, FATAL ERROR'
580 ifound=index(trim(
coptions), trim(string))
581 IF (ifound.ne.0)
THEN
584 &
'not coded, FATAL ERROR'
588 ifound=index(trim(
coptions), trim(string))
589 IF (ifound.ne.0)
THEN
592 &
'not coded, FATAL ERROR'
604 10
FORMAT (/,
' CHECKADJ - use caution when activating: ', a,/,12x, &
606#if defined TANGENT || defined TL_IOMS || defined ADJOINT
607 20
FORMAT (/,
' CHECKADJ - unsupported option in adjoint-based', &
608 &
' algorithms: ',a,/,12x,
'REASON: ',a,
'.')
integer, dimension(:), allocatable istvar
type(t_lbc), dimension(:,:,:), allocatable ad_lbc
type(t_adv), dimension(:,:), allocatable tl_hadvection
type(t_adv), dimension(:,:), allocatable tl_vadvection
integer, parameter isouth
integer, parameter inorth
character(len=2048) coptions
character(len(sinp)) function, public uppercase(sinp)