- Timestamp:
- 2010-11-15T22:20:05+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90
r2287 r2392 21 21 USE traadv_qck ! QUICKEST scheme (tra_adv_qck routine) 22 22 USE traadv_eiv ! eddy induced velocity (tra_adv_eiv routine) 23 USE cla ! cross land advection (cla_traadv routine) 23 24 USE ldftra_oce ! lateral diffusion coefficient on tracers 24 25 USE in_out_manager ! I/O manager … … 29 30 PRIVATE 30 31 31 PUBLIC tra_adv 32 PUBLIC tra_adv_init 32 PUBLIC tra_adv ! routine called by step module 33 PUBLIC tra_adv_init ! routine called by opa module 33 34 34 ! 35 LOGICAL :: ln_traadv_cen2 = .TRUE. 36 LOGICAL :: ln_traadv_tvd = .FALSE. 37 LOGICAL :: ln_traadv_muscl = .FALSE. 38 LOGICAL :: ln_traadv_muscl2 = .FALSE. 39 LOGICAL :: ln_traadv_ubs = .FALSE. 40 LOGICAL :: ln_traadv_qck = .FALSE. 35 ! !!* Namelist namtra_adv * 36 LOGICAL :: ln_traadv_cen2 = .TRUE. ! 2nd order centered scheme flag 37 LOGICAL :: ln_traadv_tvd = .FALSE. ! TVD scheme flag 38 LOGICAL :: ln_traadv_muscl = .FALSE. ! MUSCL scheme flag 39 LOGICAL :: ln_traadv_muscl2 = .FALSE. ! MUSCL2 scheme flag 40 LOGICAL :: ln_traadv_ubs = .FALSE. ! UBS scheme flag 41 LOGICAL :: ln_traadv_qck = .FALSE. ! QUICKEST scheme flag 41 42 42 43 INTEGER :: nadv ! choice of the type of advection scheme 43 44 44 REAL(wp), DIMENSION(jpk) :: r2dt ! vertical profile time-step, = 2 rdttra 45 ! ! except at nit000 (=rdttra) if neuler=0 45 REAL(wp), DIMENSION(jpk) :: r2dt ! vertical profile time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 46 46 47 47 !! * Substitutions … … 51 51 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 52 52 !! $Id$ 53 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)53 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 54 54 !!---------------------------------------------------------------------- 55 56 55 CONTAINS 57 56 … … 65 64 !!---------------------------------------------------------------------- 66 65 INTEGER, INTENT( in ) :: kt ! ocean time-step index 67 ! !66 ! 68 67 INTEGER :: jk ! dummy loop index 69 68 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zun, zvn, zwn ! 3D workspace: effective transport … … 75 74 r2dt(:) = 2. * rdttra(:) ! = 2 rdttra (leapfrog) 76 75 ENDIF 76 ! 77 IF( nn_cla == 1 ) CALL cla_traadv( kt ) !== Cross Land Advection ==! (hor. advection) 78 ! 77 79 ! !== effective transport ==! 78 80 DO jk = 1, jpkm1 … … 84 86 ! 85 87 IF( lk_traldf_eiv .AND. .NOT. ln_traldf_grif ) & 86 & CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRA' )! add the eiv transport (if necessary)88 & CALL tra_adv_eiv( kt, zun, zvn, zwn, 'TRA' ) ! add the eiv transport (if necessary) 87 89 ! 88 90 CALL iom_put( "uoce_eff", zun ) ! output effective transport … … 97 99 CASE ( 5 ) ; CALL tra_adv_ubs ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! UBS 98 100 CASE ( 6 ) ; CALL tra_adv_qck ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts ) ! QUICKEST 99 100 101 ! 101 102 CASE (-1 ) !== esopa: test all possibility with control print ==! … … 118 119 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv6 - Ta: ', mask1=tmask, & 119 120 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 120 !121 121 END SELECT 122 122 ! 123 123 ! ! print mean trends (used for debugging) 124 124 IF(ln_ctl) CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv - Ta: ', mask1=tmask, & … … 137 137 INTEGER :: ioptio 138 138 !! 139 NAMELIST/namtra_adv/ ln_traadv_cen2 , ln_traadv_tvd, &140 & ln_traadv_muscl, ln_traadv_muscl2, &139 NAMELIST/namtra_adv/ ln_traadv_cen2 , ln_traadv_tvd, & 140 & ln_traadv_muscl, ln_traadv_muscl2, & 141 141 & ln_traadv_ubs , ln_traadv_qck 142 142 !!---------------------------------------------------------------------- … … 156 156 WRITE(numout,*) ' UBS advection scheme ln_traadv_ubs = ', ln_traadv_ubs 157 157 WRITE(numout,*) ' QUICKEST advection scheme ln_traadv_qck = ', ln_traadv_qck 158 ENDIF158 ENDIF 159 159 160 160 ioptio = 0 ! Parameter control … … 168 168 169 169 IF( ioptio /= 1 ) CALL ctl_stop( 'Choose ONE advection scheme in namelist namtra_adv' ) 170 171 IF( n_cla == 1 .AND. .NOT. ln_traadv_cen2 ) &172 & CALL ctl_stop( 'cross-land advection only with 2nd order advection scheme' )173 170 174 171 ! ! Set nadv
Note: See TracChangeset
for help on using the changeset viewer.