36#if defined FOUR_DVAR && !defined CORRELATION
49#if defined SOLVE3D && defined NONLINEAR
53#if defined WAV_COUPLING && defined MCT_LIB
65#if defined OBSERVATIONS && !defined RBL4DVAR_FCT_SENSITIVITY
76#if defined PROPAGATOR || \
77 (defined masking && (defined read_water || defined write_water))
85 logical :: update = .false.
88 integer :: ng, thread, tile
94 integer,
dimension(Ngrids) :: IniRec, Tindex
96#if defined ADJUST_BOUNDARY || \
97 defined adjust_stflux || defined adjust_wstress
102 real(dp) :: my_dstart
106 character (len=*),
parameter :: MyFile = &
115#if defined PERTURBATION
117 10
FORMAT (/,
' <<<< Ensemble/Perturbation Run: ',i5.5,
' >>>>',/)
118#elif defined I4DVAR || defined RBL4DVAR || \
119 defined r4dvar || defined sensitivity_4dvar || \
120 defined tl_rbl4dvar || defined tl_r4dvar
122 10
FORMAT (/,
' <<<< 4D Variational Data Assimilation, ', &
123 &
'Outer = ',i3.3,
', Inner = ',i3.3,
' >>>>',/)
125 WRITE (
stdout,20)
'INITIAL: Configuring and initializing ', &
126 &
'forward nonlinear model ...'
127 20
FORMAT (/,1x,a,a,/,1x,
'*******')
162 IF (
initime(ng).lt.0.0_dp)
THEN
165 my_dstart=
initime(ng)/86400.0_dp
194 DO thread=thread_range
223 ini(ng)%Rindex=inirec(ng)
225 inirec(ng)=
ini(ng)%Rindex
229# ifdef ADJUST_BOUNDARY
237# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
252 fcount=
his(ng)%Fcount
253 his(ng)%Nrec(fcount)=0
332#if defined SOLVE3D && !defined INI_FILE
356 IF (
nrrec(ng).eq.0)
THEN
365#if defined ANA_PASSIVE && defined SOLVE3D
370 IF (
nrrec(ng).eq.0)
THEN
379#if defined ANA_BIOLOGY && defined SOLVE3D
384 IF (
nrrec(ng).eq.0)
THEN
393#if defined ANA_SEDIMENT && defined SOLVE3D
399 IF (
nrrec(ng).eq.0)
THEN
408#if defined INI_FILE && !defined RBL4DVAR_FCT_SENSITIVITY
428 IF (
nrrec(ng).ne.0)
THEN
430 CALL get_state (ng, 0, 1,
ini(ng), inirec(ng), tindex(ng))
452 IF (
nrrec(ng).ne.0)
THEN
467 CALL wetdry (ng, tile, tindex(ng), .true.)
474#if defined OBSERVATIONS && !defined RBL4DVAR_FCT_SENSITIVITY
493#if (defined ADJUST_BOUNDARY || \
494 defined adjust_stflux || \
495 defined adjust_wstress) && \
496 (defined rbl4dvar || \
497 defined rbl4dvar_ana_sensitivity || \
498 defined rbl4dvar_fct_sensitivity || \
510 CALL get_state (ng, 5, 5,
ini(ng), inirec(ng), tindex(ng))
602#if defined FOUR_DVAR || !defined TANGENT || !defined ADJOINT
610# ifdef ADJUST_BOUNDARY
627# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
644# if !defined CORRELATION
695#if !defined CORRELATION
697# if defined MASKING || defined WET_DRY
752#if defined PROPAGATOR || \
753 (defined masking && (defined read_water || defined write_water ))
768#if defined NLM_OUTER || \
769 defined rbl4dvar || \
770 defined rbl4dvar_ana_sensitivity || \
771 defined rbl4dvar_fct_sensitivity || \
794#if defined ANA_DRAG && defined UV_DRAG_GRID
824#if defined FLOATS || defined STATIONS
839# if defined WAV_COUPLING && defined MCT_LIB
847 CALL ocn2wav_coupling (ng, tile)
872 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_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 def_ini(ng)
subroutine, public get_state(ng, model, msg, s, inirec, tindex)
subroutine, public get_wetdry(ng, tile, model, inirec)
subroutine, public ini_perturb(ng, tile, linp, lout)
subroutine, public set_zeta_timeavg(ng, tile, model)
subroutine, public ini_hmixcoef(ng, tile, model)
type(t_io), dimension(:), allocatable his
type(t_io), dimension(:), allocatable tlf
type(t_io), dimension(:), allocatable ini
subroutine, public initialize_ocean(ng, tile, model)
integer, dimension(:), allocatable first_tile
integer, dimension(:), allocatable last_tile
integer, dimension(:,:), allocatable gridnumber
integer, dimension(:), allocatable gridsinlayer
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
integer, dimension(:), allocatable nobc
logical, dimension(:), allocatable lsponge
logical, dimension(:), allocatable setgridconfig
integer, dimension(:), allocatable next_kstp
logical, dimension(:), allocatable synchro_flag
integer, dimension(:), allocatable frcrec
logical, dimension(:), allocatable predictor_2d_step
integer, dimension(:), allocatable nfrec
logical, dimension(:), allocatable ldefini
real(dp), dimension(:), allocatable tdays
logical, dimension(:), allocatable lwrtavg
logical, dimension(:), allocatable lwsrc
integer, dimension(:), allocatable ntend
integer, dimension(:), allocatable first_time
character(len=22), dimension(:), allocatable time_code
integer, dimension(:), allocatable indx1
logical, dimension(:,:), allocatable compositegrid
integer, dimension(:), allocatable sfcount
real(dp), dimension(:,:), allocatable obc_time
logical, dimension(:), allocatable sporadicimpulse
logical, dimension(:), allocatable lwrthis
integer, dimension(:), allocatable ntfirst
logical, dimension(:), allocatable lwrtrst
real(dp), dimension(:), allocatable time
integer, dimension(:), allocatable nsff
integer, dimension(:), allocatable ntstart
integer, dimension(:), allocatable step_counter
real(dp), dimension(:,:), allocatable sf_time
integer, dimension(:), allocatable nbrec
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 nesting(ng, model, isection)
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_depth0(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)