18# ifdef BBL_MODEL_NOT_YET
37# ifdef ADJUST_BOUNDARY
40# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
57# if defined SOLVE3D && defined NONLINEAR
61# ifdef I4DVAR_ANA_SENSITIVITY
64# if defined WAV_COUPLING_NOT_YET && defined MCT_LIB
78# if defined RBL4DVAR || defined R4DVAR || \
79 defined sensitivity_4dvar || defined tl_rbl4dvar || \
98# if defined PROPAGATOR || \
99 (defined masking && (defined read_water || defined write_water))
100 USE wpoints_mod,
ONLY :
wpoints
107 integer,
intent(in) :: ng
111 logical :: update = .false.
113 integer :: Fcount, IniRec, Tindex, wrtRec
114 integer :: thread, tile
116 real(dp) :: my_dstart
118 character (len=*),
parameter :: MyFile = &
126# if defined PERTURBATION
128 10
FORMAT (/,
' <<<< Ensemble/Perturbation Run: ',i5.5,
' >>>>',/)
129# elif defined I4DVAR || defined RBL4DVAR || \
130 defined r4dvar || defined sensitivity_4dvar || \
131 defined tl_rbl4dvar || defined tl_r4dvar
133 10
FORMAT (/,
' <<<< 4D Variational Data Assimilation, ', &
134 &
'Outer = ',i3.3,
', Inner = ',i3.3,
' >>>>',/)
136 WRITE (
stdout,20)
'TL_INITIAL: Configuring and ', &
137 &
'initializing tangent linear model ...'
138 20
FORMAT (/,1x,a,a,/)
157# ifdef FLOATS_NOT_YET
171# if defined GENERIC_DSTART
182 IF (
initime(ng).lt.0.0_dp)
THEN
185 my_dstart=
initime(ng)/86400.0_dp
213 DO thread=thread_range
218# if defined OPT_OBSERVATIONS
228# elif defined FOUR_DVAR && \
230 defined hessian_fsv) || defined tlm_check
237# ifndef I4DVAR_ANA_SENSITIVITY
265# ifndef WEAK_CONSTRAINT
276 inirec=
itl(ng)%Rindex
278# ifdef ADJUST_BOUNDARY
284# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
290# if !defined WEAK_CONSTRAINT
297 fcount=
tlm(ng)%Fcount
298 tlm(ng)%Nrec(fcount)=0
346# if defined FOUR_DVAR && \
349 defined hessian_so || \
351# if defined OPT_OBSERVATIONS || defined TLM_CHECK || \
352 defined weak_constraint
368# ifndef WEAK_CONSTRAINT
379# ifdef ADJUST_BOUNDARY
382# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
406# if defined RBL4DVAR || defined R4DVAR || \
407 defined sensitivity_4dvar || defined tl_rbl4dvar || \
427 IF (
nrrec(ng).eq.0)
THEN
434# if defined ANA_PASSIVE && defined SOLVE3D
438 IF (
nrrec(ng).eq.0)
THEN
445# if defined ANA_BIOLOGY && defined SOLVE3D
449 IF (
nrrec(ng).eq.0)
THEN
456# if defined ANA_SEDIMENT_NOT_YET && defined SOLVE3D
460 IF (
nrrec(ng).eq.0)
THEN
467# ifdef I4DVAR_ANA_SENSITIVITY
485 IF (
nrrec(ng).ne.0)
THEN
501 IF (
nrrec(ng).ne.0)
THEN
511 CALL wetdry (ng, tile, tindex(ng), .true.)
530# if defined ANA_PERTURB && defined SANITY_CHECK
631# if defined SOLVE3D && defined TLM_DRIVER
656# if defined PROPAGATOR || \
657 (defined masking && (defined read_water || defined write_water ))
669# ifdef WEAK_CONSTRAINT
687# if defined ANA_DRAG && defined UV_DRAG_GRID
711# if defined FLOATS_NOT_YET || defined STATIONS
721# if defined WAV_COUPLING_NOT_YET && defined MCT_LIB
728 CALL ocn2wav_coupling (ng, tile)
745 DO thread=thread_range
subroutine check_multifile(ng, model)
subroutine grid_coords(ng, model)
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 tl_ini_perturb(ng, tile, linp, lout)
subroutine, public set_zeta_timeavg(ng, tile, model)
subroutine, public ini_hmixcoef(ng, tile, model)
subroutine, public ini_lanczos(ng, tile, ladj, lini)
subroutine, public initialize_boundary(ng, tile, model)
subroutine, public initialize_coupling(ng, tile, model)
subroutine, public initialize_forces(ng, tile, model)
type(t_io), dimension(:), allocatable tlf
type(t_io), dimension(:), allocatable tlm
type(t_io), dimension(:), allocatable itl
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
logical, dimension(:), allocatable ldefitl
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
real(dp), dimension(:), allocatable tdays
logical, dimension(:), allocatable lwsrc
integer, dimension(:), allocatable ntend
integer, dimension(:), allocatable first_time
character(len=22), dimension(:), allocatable time_code
integer, dimension(:), allocatable indx1
integer, dimension(:), allocatable sfcount
logical, dimension(:,:), allocatable tl_volcons
integer, dimension(:), allocatable ntfirst
logical, dimension(:), allocatable lwrttlm
real(dp), dimension(:), allocatable time
logical, dimension(:), allocatable ldeftlm
integer, dimension(:), allocatable ntstart
integer, dimension(:), allocatable step_counter
integer, dimension(:), allocatable nadj
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 lnew
integer, dimension(:), allocatable krhs
integer, dimension(:), allocatable nstp
subroutine, public obs_initial(ng, model, backward)
subroutine, public set_depth(ng, tile, model)
subroutine, public set_masks(ng, tile, model)
subroutine, public stiffness(ng, tile, model)
logical function, public founderror(flag, noerr, line, routine)
subroutine, public tl_def_ini(ng)
subroutine, public tl_omega(ng, tile, model)
subroutine, public tl_rho_eos(ng, tile, model)
subroutine, public tl_bath(ng, tile)
subroutine, public tl_set_depth(ng, tile, model)
subroutine, public tl_set_massflux(ng, tile, model)
subroutine, public tl_wrt_ini(ng, tile, tindex, outrec)
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 tl_get_data(ng)
subroutine tl_get_idata(ng)
subroutine tl_initial(ng)
subroutine wpoints(ng, tile, model)