18# ifdef BBL_MODEL_NOT_YET
21# ifdef ADJUST_BOUNDARY
42# if defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \
43 defined opt_observations || defined sensitivity_4dvar || \
47# if defined STEP2D_FB_AB3_AM4 || defined STEP2D_FB_LF_AM3
59# if defined SOLVE3D && defined NONLINEAR
63# if defined WAV_COUPLING_NOT_YET && defined MCT_LIB
83# if defined PROPAGATOR || \
84 (defined masking && (defined read_water || defined write_water))
92 integer,
intent(in) :: ng
96 logical :: update = .false.
98 integer :: Fcount, IniRec, Tindex
99 integer :: thread, tile
101 real(dp) :: my_dstart
103 character (len=*),
parameter :: MyFile = &
111# if defined PERTURBATION
113 10
FORMAT (/,
' <<<< Ensemble/Perturbation Run: ',i5.5,
' >>>>',/)
114# elif defined I4DVAR || defined SENSITIVITY_4DVAR || \
115 defined rbl4dvar || defined r4dvar
117 10
FORMAT (/,
' <<<< 4D Variational Data Assimilation, ', &
118 &
'Outer = ',i3.3,
', Inner = ',i3.3,
' >>>>',/)
120 WRITE (
stdout,20)
'AD_INITIAL: Configuring and ', &
121 &
'initializing adjoint model ...'
122 20
FORMAT (/,1x,a,a,/)
132# if defined STEP2D_FB_AB3_AM4 || defined STEP2D_FB_LF_AM3
148# ifdef FLOATS_NOT_YET
160# ifdef GENERIC_DSTART
171 IF (
initime(ng).lt.0.0_dp)
THEN
174 my_dstart=
initime(ng)/86400.0_dp
206 DO thread=thread_range
211# if defined FOUR_DVAR && \
230# ifdef ADJUST_BOUNDARY
236# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
286# if defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \
287 defined opt_observations || defined so_semi
302# ifdef ADJUST_BOUNDARY
307# elif defined FOUR_DVAR && !defined I4DVAR_ANA_SENSITIVITY
325# ifdef ADJUST_BOUNDARY
332# if defined SOLVE3D && !defined INI_FILE
352 IF (
nrrec(ng).eq.0)
THEN
359# if defined ANA_PASSIVE && defined SOLVE3D
363 IF (
nrrec(ng).eq.0)
THEN
370# if defined ANA_BIOLOGY && defined SOLVE3D
374 IF (
nrrec(ng).eq.0)
THEN
381# if defined ANA_SEDIMENT_NOT_YET && defined SOLVE3D
385 IF (
nrrec(ng).eq.0)
THEN
402 IF (
nrrec(ng).ne.0)
THEN
413# if defined STEP2D_FB_AB3_AM4 || defined STEP2D_FB_LF_AM3
432 IF (
nrrec(ng).ne.0)
THEN
442 CALL wetdry (ng, tile, tindex(ng), .true.)
456# ifdef RBL4DVAR_FCT_SENSITIVITY
466# ifdef RBL4DVAR_FCT_SENSITIVITY
472# if defined ANA_PERTURB && \
473 (defined sanity_check || defined r_symmetry)
560# if defined SOLVE3D && defined ADM_DRIVER
585# if defined PROPAGATOR || \
586 (defined masking && (defined read_water || defined write_water) )
598# if defined AD_SENSITIVITY || defined I4DVAR_ANA_SENSITIVITY || \
599 defined opt_observations || defined sensitivity_4dvar || \
607# ifdef SENSITIVITY_4DVAR
610# if !defined AD_IMPULSE
615# ifdef SENSITIVITY_4DVAR
620# if defined ANA_DRAG && defined UV_DRAG_GRID
644# if defined FLOATS_NOT_YET || defined STATIONS
654# if defined WAV_COUPLING_NOT_YET && defined MCT_LIB
661 CALL ocn2wav_coupling (ng, tile)
678 DO thread=thread_range
subroutine ad_get_data(ng)
subroutine ad_get_idata(ng)
subroutine ad_initial(ng)
subroutine check_multifile(ng, model)
subroutine grid_coords(ng, model)
subroutine, public adsen_initial(ng, tile)
subroutine ana_sediment(ng, tile, model)
subroutine ana_initial(ng, tile, model)
subroutine ana_sponge(ng, tile, model)
subroutine ana_drag(ng, tile, model)
subroutine ana_psource(ng, tile, model)
subroutine ana_perturb(ng, tile, model)
subroutine ana_biology(ng, tile, model)
subroutine ana_passive(ng, tile, model)
subroutine, public close_inp(ng, model)
subroutine, public time_string(mytime, date_string)
subroutine, public get_state(ng, model, msg, s, inirec, tindex)
subroutine, public get_wetdry(ng, tile, model, inirec)
subroutine, public set_zeta_timeavg(ng, tile, model)
subroutine, public ini_hmixcoef(ng, tile, model)
subroutine, public initialize_boundary(ng, tile, model)
subroutine, public initialize_coupling(ng, tile, model)
subroutine, public initialize_forces(ng, tile, model)
logical, dimension(:), allocatable lsenfct
logical, dimension(:), allocatable lsen4dvar
logical, dimension(:), allocatable lobspace
subroutine, public initialize_grid(ng, tile, model)
type(t_io), dimension(:), allocatable iad
subroutine, public initialize_mixing(ng, tile, model)
subroutine, public initialize_ocean(ng, tile, model)
integer, dimension(:), allocatable first_tile
integer, dimension(:), allocatable last_tile
logical, dimension(:), allocatable luvsrc
real(dp), parameter day2sec
integer, dimension(:), allocatable obccount
integer, dimension(:), allocatable nrrec
logical, dimension(:,:), allocatable ltracersrc
integer, dimension(:), allocatable ntimes
integer, dimension(:), allocatable iic
real(dp), dimension(:), allocatable dt
logical, dimension(:), allocatable lsponge
logical, dimension(:), allocatable setgridconfig
integer, dimension(:), allocatable next_kstp
logical, dimension(:), allocatable synchro_flag
logical, dimension(:), allocatable predictor_2d_step
integer, dimension(:), allocatable nfrec
real(dp), dimension(:), allocatable tdays
logical, dimension(:), allocatable ldefadj
logical, dimension(:), allocatable lwrtadj
logical, dimension(:), allocatable lwsrc
real(dp), parameter sec2day
integer, dimension(:), allocatable ntend
integer, dimension(:), allocatable first_time
character(len=22), dimension(:), allocatable time_code
integer, dimension(:), allocatable indx1
integer, dimension(:), allocatable sfcount
integer, dimension(:), allocatable ntfirst
real(dp), dimension(:), allocatable time
integer, dimension(:), allocatable ntstart
integer, dimension(:), allocatable step_counter
integer, dimension(:), allocatable iif
real(dp), dimension(:), allocatable initime
integer, dimension(:), allocatable nfm2
integer, dimension(:), allocatable kstp
integer, dimension(:), allocatable knew
integer, dimension(:), allocatable nfm1
integer, dimension(:), allocatable nrhs
integer, dimension(:), allocatable nf
integer, dimension(:), allocatable nfm3
integer, dimension(:), allocatable nnew
integer, dimension(:), allocatable nfp1
integer, dimension(:), allocatable krhs
integer, dimension(:), allocatable nstp
subroutine, public obs_initial(ng, model, backward)
subroutine, public omega(ng, tile, model)
subroutine, public rho_eos(ng, tile, model)
subroutine, public set_depth(ng, tile, model)
subroutine, public set_masks(ng, tile, model)
subroutine, public set_massflux(ng, tile, model)
subroutine, public stiffness(ng, tile, model)
logical function, public founderror(flag, noerr, line, routine)
subroutine wetdry(ng, tile, tindex, linitialize)
subroutine set_grid(ng, model)
recursive subroutine wclock_off(ng, model, region, line, routine)
recursive subroutine wclock_on(ng, model, region, line, routine)
subroutine wpoints(ng, tile, model)