Changeset 2528 for trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90
- Timestamp:
- 2010-12-27T18:33:53+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf.F90
- Property svn:eol-style deleted
r1533 r2528 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 … … 27 28 PRIVATE 28 29 29 PUBLIC dyn_zdf ! routine called by step.F90 30 PUBLIC dyn_zdf ! routine called by step.F90 31 PUBLIC dyn_zdf_init ! routine called by opa.F90 30 32 31 INTEGER :: nzdf = 0 ! type vertical diffusion algorithm used 32 ! ! defined from ln_zdf... namlist logicals) 33 34 REAL(wp) :: r2dt ! time-step, = 2 rdttra 35 ! ! 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 36 35 37 36 !! * Substitutions … … 40 39 # include "vectopt_loop_substitute.h90" 41 40 !!---------------------------------------------------------------------- 42 !! OPA 9.0 , LOCEAN-IPSL (2005)41 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 43 42 !! $Id$ 44 !! Software governed by the CeCILL licence ( modipsl/doc/NEMO_CeCILL.txt)43 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 45 44 !!---------------------------------------------------------------------- 46 45 … … 58 57 !!--------------------------------------------------------------------- 59 58 60 IF( kt == nit000 ) CALL zdf_ctl ! initialisation & control of options61 62 59 ! ! set time step 63 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt = rdt ! = rdtra (restartingwith Euler time stepping)64 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) 65 62 ENDIF 66 63 … … 72 69 SELECT CASE ( nzdf ) ! compute lateral mixing trend and add it to the general trend 73 70 ! 74 CASE ( 0 ) ; CALL dyn_zdf_exp 75 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 76 73 ! 77 74 CASE ( -1 ) ! esopa: test all possibility with control print 78 CALL dyn_zdf_exp 75 CALL dyn_zdf_exp( kt, r2dt ) 79 76 CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf0 - Ua: ', mask1=umask, & 80 77 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) 81 CALL dyn_zdf_imp 78 CALL dyn_zdf_imp( kt, r2dt ) 82 79 CALL prt_ctl( tab3d_1=ua, clinfo1=' zdf1 - Ua: ', mask1=umask, & 83 80 & tab3d_2=va, clinfo2= ' Va: ', mask2=vmask, clinfo3='dyn' ) … … 96 93 97 94 98 SUBROUTINE zdf_ctl95 SUBROUTINE dyn_zdf_init 99 96 !!---------------------------------------------------------------------- 100 !! *** ROUTINE zdf_ctl***97 !! *** ROUTINE dyn_zdf_init *** 101 98 !! 102 99 !! ** Purpose : initializations of the vertical diffusion scheme … … 105 102 !! explicit (time-splitting) scheme if ln_zdfexp=T 106 103 !!---------------------------------------------------------------------- 107 USE zdftke_old108 104 USE zdftke 105 USE zdfgls 109 106 USE zdfkpp 110 107 !!---------------------------------------------------------------------- 111 108 ! 112 109 ! Choice from ln_zdfexp read in namelist in zdfini 113 110 IF( ln_zdfexp ) THEN ; nzdf = 0 ! use explicit scheme 114 111 ELSE ; nzdf = 1 ! use implicit scheme 115 112 ENDIF 116 113 ! 117 114 ! Force implicit schemes 118 IF( lk_zdftke _old .OR. lk_zdftke .OR. lk_zdfkpp ) nzdf = 1 ! TKEor KPP physics119 IF( ln_dynldf_iso 120 IF( ln_dynldf_hor .AND. ln_sco 121 115 IF( lk_zdftke .OR. lk_zdfgls .OR. lk_zdfkpp ) nzdf = 1 ! TKE, GLS or KPP physics 116 IF( ln_dynldf_iso ) nzdf = 1 ! iso-neutral lateral physics 117 IF( ln_dynldf_hor .AND. ln_sco ) nzdf = 1 ! horizontal lateral physics in s-coordinate 118 ! 122 119 IF( lk_esopa ) nzdf = -1 ! Esopa key: All schemes used 123 120 ! 124 121 IF(lwp) THEN ! Print the choice 125 122 WRITE(numout,*) 126 WRITE(numout,*) 'dyn :zdf_ctl: vertical dynamics physics scheme'123 WRITE(numout,*) 'dyn_zdf_init : vertical dynamics physics scheme' 127 124 WRITE(numout,*) '~~~~~~~~~~~' 128 125 IF( nzdf == -1 ) WRITE(numout,*) ' ESOPA test All scheme used' … … 131 128 ENDIF 132 129 ! 133 END SUBROUTINE zdf_ctl130 END SUBROUTINE dyn_zdf_init 134 131 135 132 !!==============================================================================
Note: See TracChangeset
for help on using the changeset viewer.