Changeset 5260 for branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
- Timestamp:
- 2015-05-12T12:37:15+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r4624 r5260 26 26 USE cla ! cross land advection (cla_traadv routine) 27 27 USE ldftra_oce ! lateral diffusion coefficient on tracers 28 ! 28 29 USE in_out_manager ! I/O manager 29 30 USE iom ! I/O module … … 32 33 USE wrk_nemo ! Memory Allocation 33 34 USE timing ! Timing 35 USE sbc_oce 36 USE diaptr ! Poleward heat transport 34 37 35 38 … … 43 46 LOGICAL :: ln_traadv_cen2 ! 2nd order centered scheme flag 44 47 LOGICAL :: ln_traadv_tvd ! TVD scheme flag 48 LOGICAL :: ln_traadv_tvd_zts ! TVD scheme flag with vertical sub time-stepping 45 49 LOGICAL :: ln_traadv_muscl ! MUSCL scheme flag 46 50 LOGICAL :: ln_traadv_muscl2 ! MUSCL2 scheme flag … … 109 113 ! 110 114 IF( ln_mle ) CALL tra_adv_mle( kt, nit000, zun, zvn, zwn, 'TRA' ) ! add the mle transport (if necessary) 115 ! 111 116 CALL iom_put( "uocetr_eff", zun ) ! output effective transport 112 117 CALL iom_put( "vocetr_eff", zvn ) 113 118 CALL iom_put( "wocetr_eff", zwn ) 114 119 ! 120 IF( ln_diaptr ) CALL dia_ptr( zvn ) ! diagnose the effective MSF 121 ! 122 115 123 SELECT CASE ( nadv ) !== compute advection trend and add it to general trend ==! 116 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered 117 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD 118 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts, ln_traadv_msc_ups ) ! MUSCL 119 CASE ( 4 ) ; CALL tra_adv_muscl2( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2 120 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS 121 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST 124 CASE ( 1 ) ; CALL tra_adv_cen2 ( kt, nit000, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! 2nd order centered 125 CASE ( 2 ) ; CALL tra_adv_tvd ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD 126 CASE ( 3 ) ; CALL tra_adv_muscl ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsa, jpts, ln_traadv_msc_ups ) ! MUSCL 127 CASE ( 4 ) ; CALL tra_adv_muscl2 ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! MUSCL2 128 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS 129 CASE ( 6 ) ; CALL tra_adv_qck ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST 130 CASE ( 7 ) ; CALL tra_adv_tvd_zts( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! TVD ZTS 122 131 ! 123 132 CASE (-1 ) !== esopa: test all possibility with control print ==! … … 166 175 & ln_traadv_muscl, ln_traadv_muscl2, & 167 176 & ln_traadv_ubs , ln_traadv_qck, & 168 & ln_traadv_msc_ups 177 & ln_traadv_msc_ups, ln_traadv_tvd_zts 169 178 !!---------------------------------------------------------------------- 170 179 … … 190 199 WRITE(numout,*) ' QUICKEST advection scheme ln_traadv_qck = ', ln_traadv_qck 191 200 WRITE(numout,*) ' upstream scheme within muscl ln_traadv_msc_ups = ', ln_traadv_msc_ups 201 WRITE(numout,*) ' TVD advection scheme with zts ln_traadv_tvd_zts = ', ln_traadv_tvd_zts 192 202 ENDIF 193 203 … … 199 209 IF( ln_traadv_ubs ) ioptio = ioptio + 1 200 210 IF( ln_traadv_qck ) ioptio = ioptio + 1 211 IF( ln_traadv_tvd_zts) ioptio = ioptio + 1 201 212 IF( lk_esopa ) ioptio = 1 213 214 IF( ( ln_traadv_muscl .OR. ln_traadv_muscl2 .OR. ln_traadv_ubs .OR. ln_traadv_qck .OR. ln_traadv_tvd_zts ) & 215 .AND. ln_isfcav ) CALL ctl_stop( 'Only traadv_cen2 and traadv_tvd is compatible with ice shelf cavity') 202 216 203 217 IF( ioptio /= 1 ) CALL ctl_stop( 'Choose ONE advection scheme in namelist namtra_adv' ) … … 210 224 IF( ln_traadv_ubs ) nadv = 5 211 225 IF( ln_traadv_qck ) nadv = 6 226 IF( ln_traadv_tvd_zts) nadv = 7 212 227 IF( lk_esopa ) nadv = -1 213 228 … … 220 235 IF( nadv == 5 ) WRITE(numout,*) ' UBS scheme is used' 221 236 IF( nadv == 6 ) WRITE(numout,*) ' QUICKEST scheme is used' 237 IF( nadv == 7 ) WRITE(numout,*) ' TVD ZTS scheme is used' 222 238 IF( nadv == -1 ) WRITE(numout,*) ' esopa test: use all advection scheme' 223 239 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.