2#if defined TL_IOMS && defined SOLVE3D
22# if defined MODEL_COUPLING && defined MCT_LIB
33# ifdef TIDE_GENERATING_FORCES
36# if defined ATM_COUPLING_NOT_YET && defined MCT_LIB
39# if defined WAV_COUPLING_NOT_YET && defined MCT_LIB
51# ifdef BBL_MODEL_NOT_YET
54# if defined BULK_FLUXES_NOT_YET && !defined PRIOR_BULK_FLUXES
57# ifdef BVF_MIXING_NOT_YET
61# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
64# ifdef GLS_MIXING_NOT_YET
68# ifdef LMD_MIXING_NOT_YET
75# ifdef ADJUST_BOUNDARY
82# ifdef NEARSHORE_MELLOR_NOT_YET
89# ifdef SEDIMENT_NOT_YET
94# if defined SSH_TIDES_NOT_YET || defined UV_TIDES_NOT_YET
104# ifdef FLOATS_NOT_YET
107# ifdef WEAK_CONSTRAINT
119 real(dp),
intent(in) :: RunInterval
124 integer :: my_iif, next_indx1
125# ifdef FLOATS_NOT_YET
126 integer :: Lend, Lstr, chunk_size
129 real(r8) :: MaxDT, my_StepTime
131 character (len=*),
parameter :: MyFile = &
141 step_loop :
DO WHILE (my_steptime.le.(runinterval+0.5_r8*maxdt))
143 my_steptime=my_steptime+maxdt
201# ifdef WEAK_CONSTRAINT
246# ifdef TIDE_GENERATING_FORCES
247 CALL equilibrium_tide (ng, tile,
itlm)
258# if defined ATM_COUPLING_NOT_YET && defined MCT_LIB
269 CALL ocn2atm_coupling (ng, tile)
276# if defined WAV_COUPLING_NOT_YET && defined MCT_LIB
287 CALL ocn2wav_coupling (ng, tile)
294# ifdef NEARSHORE_MELLOR_NOT_YET
302 CALL rp_radiation_stress (ng, tile)
315# if defined BULK_FLUXES_NOT_YET && !defined PRIOR_BULK_FLUXES
318# ifdef BBL_MODEL_NOT_YET
319 CALL rp_bblm (ng, tile)
322# if defined SSH_TIDES_NOT_YET || defined UV_TIDES_NOT_YET
323 CALL rp_set_tides (ng, tile)
329# ifdef ADJUST_BOUNDARY
348# if defined ADJUST_STFLUX || defined ADJUST_WSTRESS
373# if defined ANA_VMIX_NOT_YET
374 CALL rp_ana_vmix (ng, tile)
375# elif defined LMD_MIXING_NOT_YET
376 CALL rp_lmd_vmix (ng, tile)
377# elif defined BVF_MIXING_NOT_YET
378 CALL rp_bvf_mix (ng, tile)
427# ifdef MY25_MIXING_NOT_YET
428 CALL rp_my25_prestep (ng, tile)
429# elif defined GLS_MIXING_NOT_YET
430 CALL rp_gls_prestep (ng, tile)
441 loop_2d :
DO my_iif=1,maxval(
nfast)+1
447 next_indx1=3-
indx1(ng)
449 & my_iif.le.(
nfast(ng)+1))
THEN
452 IF (first_2d_step)
THEN
467 IF (my_iif.le.(
nfast(ng)+1))
THEN
534# ifdef MY25_MIXING_NOT_YET
535 CALL rp_my25_corstep (ng, tile)
536# elif defined GLS_MIXING_NOT_YET
537 CALL rp_gls_corstep (ng, tile)
542# ifdef SEDIMENT_NOT_YET
543 CALL rp_sediment (ng, tile)
563# ifdef FLOATS_NOT_YET
577 lstr=1+my_thread*chunk_size
578 lend=min(
nfloats(ng),lstr+chunk_size-1)
583 CALL rp_step_floats (ng, lstr, lend)
subroutine ana_vmix(ng, tile, model)
subroutine, public time_string(mytime, date_string)
integer, dimension(:,:), allocatable couplesteps
integer, dimension(:), allocatable first_tile
integer, dimension(:), allocatable last_tile
integer, dimension(:), allocatable nfloats
logical, dimension(:), allocatable lfloats
integer, dimension(:), allocatable iic
real(dp), dimension(:), allocatable dt
logical, dimension(:), allocatable predictor_2d_step
real(dp), dimension(:), allocatable tdays
logical, dimension(:), allocatable frequentimpulse
integer, dimension(:), allocatable nfast
real(dp), parameter sec2day
integer, dimension(:), allocatable ntend
character(len=22), dimension(:), allocatable time_code
integer, dimension(:), allocatable indx1
real(dp), dimension(:), allocatable time
integer, dimension(:), allocatable ntstart
integer, dimension(:), allocatable iif
integer, dimension(:), allocatable nfm2
integer, dimension(:), allocatable kstp
integer, dimension(:), allocatable knew
integer, dimension(:), allocatable nfm1
integer, dimension(:), allocatable nrhs
integer, dimension(:), allocatable lfinp
integer, dimension(:), allocatable lbinp
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 omega(ng, tile, model)
subroutine, public rp_biology(ng, tile)
subroutine, public rp_bulk_flux(ng, tile)
subroutine, public rp_diag(ng, tile)
subroutine, public rp_frc_adjust(ng, tile, linp)
subroutine, public rp_obc2d_adjust(ng, tile, linp)
subroutine, public rp_obc_adjust(ng, tile, linp)
subroutine, public rp_omega(ng, tile, model)
subroutine, public rp_post_initial(ng, model)
subroutine, public rp_rho_eos(ng, tile, model)
subroutine, public rp_rhs3d(ng, tile)
subroutine, public rp_set_depth_bry(ng, tile, model)
subroutine, public rp_set_depth(ng, tile, model)
subroutine, public rp_set_massflux(ng, tile, model)
subroutine, public rp_set_vbc(ng, tile)
subroutine, public rp_set_zeta(ng, tile)
subroutine, public rp_step2d(ng, tile)
subroutine, public rp_step3d_t(ng, tile)
subroutine, public rp_step3d_uv(ng, tile)
subroutine, public set_depth(ng, tile, model)
subroutine, public set_massflux(ng, tile, model)
logical function, public founderror(flag, noerr, line, routine)
subroutine, public tl_forcing(ng, tile, kfrc, nfrc)
subroutine, public tl_set_avg(ng, tile)
subroutine rp_get_data(ng)
subroutine rp_main3d(runinterval)
subroutine rp_set_data(ng, tile)