- Timestamp:
- 2010-09-17T14:35:46+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/DYN/dynzdf.F90
r2027 r2104 4 4 !! Ocean dynamics : vertical component of the momentum mixing trend 5 5 !!============================================================================== 6 !! History : 9.0 ! 05-11 (G. Madec) Original code 6 !! History : 1.0 ! 2005-11 (G. Madec) Original code 7 !! 3.3 ! 2010-10 (C. Ethe, G. Madec) reorganisation of initialisation phase 7 8 !!---------------------------------------------------------------------- 8 9 9 10 !!---------------------------------------------------------------------- 10 11 !! dyn_zdf : Update the momentum trend with the vertical diffusion 11 !! zdf_ctl: initializations of the vertical diffusion scheme12 !! dyn_zdf_init : initializations of the vertical diffusion scheme 12 13 !!---------------------------------------------------------------------- 13 14 USE oce ! ocean dynamics and tracers variables … … 30 31 PUBLIC dyn_zdf_init ! routine called by opa.F90 31 32 32 INTEGER :: nzdf = 0 ! type vertical diffusion algorithm used 33 ! ! defined from ln_zdf... namlist logicals) 34 35 REAL(wp) :: r2dt ! time-step, = 2 rdttra 36 ! ! except at nit000 (=rdttra) if neuler=0 33 INTEGER :: nzdf = 0 ! type vertical diffusion algorithm used, defined from ln_zdf... namlist logicals 34 REAL(wp) :: r2dt ! time-step, = 2 rdttra except at nit000 (=rdttra) if neuler=0 37 35 38 36 !! * Substitutions … … 41 39 # include "vectopt_loop_substitute.h90" 42 40 !!---------------------------------------------------------------------- 43 !! OPA 9.0 , LOCEAN-IPSL (2005)41 !! NEMO/OPA 3,3 , LOCEAN-IPSL (2010) 44 42 !! $Id$ 45 43 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) … … 60 58 61 59 ! ! set time step 62 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdtra (restartingwith Euler time stepping)63 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2. * rdt! = 2 rdttra (leapfrog)60 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdtra (restart with Euler time stepping) 61 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt = 2. * rdt ! = 2 rdttra (leapfrog) 64 62 ENDIF 65 63 … … 71 69 SELECT CASE ( nzdf ) ! compute lateral mixing trend and add it to the general trend 72 70 ! 73 CASE ( 0 ) ; CALL dyn_zdf_exp 74 CASE ( 1 ) ; CALL dyn_zdf_imp 71 CASE ( 0 ) ; CALL dyn_zdf_exp( kt, r2dt ) ! explicit scheme 72 CASE ( 1 ) ; CALL dyn_zdf_imp( kt, r2dt ) ! implicit scheme 75 73 ! 76 74 CASE ( -1 ) ! esopa: test all possibility with control print 77 CALL dyn_zdf_exp 75 CALL dyn_zdf_exp( kt, r2dt ) 78 76 CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf0 - Ua: ', mask1=umask, & 79 77 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 80 CALL dyn_zdf_imp 78 CALL dyn_zdf_imp( kt, r2dt ) 81 79 CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf1 - Ua: ', mask1=umask, & 82 80 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) … … 108 106 USE zdfkpp 109 107 !!---------------------------------------------------------------------- 110 108 ! 111 109 ! Choice from ln_zdfexp read in namelist in zdfini 112 110 IF( ln_zdfexp ) THEN ; nzdf = 0 ! use explicit scheme 113 111 ELSE ; nzdf = 1 ! use implicit scheme 114 112 ENDIF 115 113 ! 116 114 ! Force implicit schemes 117 115 IF( lk_zdftke_old .OR. lk_zdftke .OR. lk_zdfkpp ) nzdf = 1 ! TKE or KPP physics 118 116 IF( ln_dynldf_iso ) nzdf = 1 ! iso-neutral lateral physics 119 117 IF( ln_dynldf_hor .AND. ln_sco ) nzdf = 1 ! horizontal lateral physics in s-coordinate 120 118 ! 121 119 IF( lk_esopa ) nzdf = -1 ! Esopa key: All schemes used 122 120 ! 123 121 IF(lwp) THEN ! Print the choice 124 122 WRITE(numout,*)
Note: See TracChangeset
for help on using the changeset viewer.