- Timestamp:
- 2015-12-15T10:46:14+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_CMCC_merge_2015/NEMOGCM/NEMO/TOP_SRC/TRP/trcadv.F90
r5836 r6051 32 32 33 33 PUBLIC trc_adv 34 PUBLIC trc_adv_alloc35 34 PUBLIC trc_adv_ini 36 35 … … 58 57 INTEGER :: nadv ! chosen advection scheme 59 58 ! 60 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:) :: r2dt ! vertical profile time-step, = 2 rdttra61 ! ! except at nitrrc000 (=rdt tra) if neuler=059 REAL(wp) :: r2dttrc ! vertical profile time-step, = 2 rdt 60 ! ! except at nitrrc000 (=rdt) if neuler=0 62 61 63 62 !! * Substitutions … … 70 69 !!---------------------------------------------------------------------- 71 70 CONTAINS 72 73 INTEGER FUNCTION trc_adv_alloc()74 !!----------------------------------------------------------------------75 !! *** ROUTINE trc_adv_alloc ***76 !!----------------------------------------------------------------------77 !78 ALLOCATE( r2dt(jpk), STAT=trc_adv_alloc )79 !80 IF( trc_adv_alloc /= 0 ) CALL ctl_warn('trc_adv_alloc : failed to allocate array.')81 !82 END FUNCTION trc_adv_alloc83 84 71 85 72 SUBROUTINE trc_adv( kt ) … … 103 90 ! 104 91 IF( ( neuler == 0 .AND. kt == nittrc000 ) .OR. ln_top_euler ) THEN ! at nittrc000 105 r2dt (:) = rdttrc(:)! = rdttrc (use or restarting with Euler time stepping)92 r2dttrc = rdttrc ! = rdttrc (use or restarting with Euler time stepping) 106 93 ELSEIF( kt <= nittrc000 + nn_dttrc ) THEN ! at nittrc000 or nittrc000+1 107 r2dt (:) = 2. * rdttrc(:)! = 2 rdttrc (leapfrog)94 r2dttrc = 2. * rdttrc ! = 2 rdttrc (leapfrog) 108 95 ENDIF 109 96 ! !== effective transport ==! … … 134 121 CALL tra_adv_cen ( kt, nittrc000,'TRC', zun, zvn, zwn , trn, tra, jptra, nn_cen_h, nn_cen_v ) 135 122 CASE ( np_FCT ) ! FCT : 2nd / 4th order 136 CALL tra_adv_fct ( kt, nittrc000,'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra, nn_fct_h, nn_fct_v )123 CALL tra_adv_fct ( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra, nn_fct_h, nn_fct_v ) 137 124 CASE ( np_FCT_zts ) ! 2nd order FCT with vertical time-splitting 138 CALL tra_adv_fct_zts( kt, nittrc000,'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra , nn_fct_zts )125 CALL tra_adv_fct_zts( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra , nn_fct_zts ) 139 126 CASE ( np_MUS ) ! MUSCL 140 CALL tra_adv_mus ( kt, nittrc000,'TRC', r2dt , zun, zvn, zwn, trb, tra, jptra , ln_mus_ups )127 CALL tra_adv_mus ( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, tra, jptra , ln_mus_ups ) 141 128 CASE ( np_UBS ) ! UBS 142 CALL tra_adv_ubs ( kt, nittrc000,'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra , nn_ubs_v )129 CALL tra_adv_ubs ( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra , nn_ubs_v ) 143 130 CASE ( np_QCK ) ! QUICKEST 144 CALL tra_adv_qck ( kt, nittrc000,'TRC', r2dt , zun, zvn, zwn, trb, trn, tra, jptra )131 CALL tra_adv_qck ( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra ) 145 132 ! 146 133 END SELECT
Note: See TracChangeset
for help on using the changeset viewer.