Changeset 1531
- Timestamp:
- 2009-07-24T08:48:42+02:00 (15 years ago)
- Location:
- trunk/NEMO
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/C1D_SRC/diawri_c1d.F90
r1465 r1531 221 221 CALL histdef( nid_T, "sometauy", "Wind Stress along j-axis" , "N/m2" , & ! vtau 222 222 & jpi, jpj, nh_T, 1 , 1, 1 , - 99, 32, clop, zsto, zout ) 223 #if defined key_zdftke 223 #if defined key_zdftke_old 224 224 CALL histdef( nid_T, "votlsdis", " Dissipation Turbulent Lenght Scale", "m" , & ! e_dis 225 225 & jpi, jpj, nh_T, ipk, 1, ipk, nz_T, 32, clop, zsto, zout ) … … 321 321 CALL histwrite( nid_T, "vomecrty", it, vn , ndim_T , ndex_T ) ! j-current 322 322 CALL histwrite( nid_T, "sometauy", it, vtau , ndim_hT, ndex_hT ) ! j-wind stress 323 #if defined key_zdftke 323 #if defined key_zdftke_old 324 324 CALL histwrite( nid_T, "votlsdis", it, e_dis , ndim_T , ndex_T ) ! Diss. Turb. lenght scale 325 325 CALL histwrite( nid_T, "votlsmix", it, e_mix , ndim_T , ndex_T ) ! Mixing Turb. lenght scale -
trunk/NEMO/OPA_SRC/DYN/dynzdf.F90
r1239 r1531 116 116 117 117 ! Force implicit schemes 118 IF( lk_zdftke .OR. lk_zdftke2 .OR. lk_zdfkpp )nzdf = 1 ! TKE or KPP physics119 IF( ln_dynldf_iso )nzdf = 1 ! iso-neutral lateral physics120 IF( ln_dynldf_hor .AND. ln_sco )nzdf = 1 ! horizontal lateral physics in s-coordinate118 IF( lk_zdftke_old .OR. lk_zdftke .OR. lk_zdfkpp ) nzdf = 1 ! TKE or KPP physics 119 IF( ln_dynldf_iso ) nzdf = 1 ! iso-neutral lateral physics 120 IF( ln_dynldf_hor .AND. ln_sco ) nzdf = 1 ! horizontal lateral physics in s-coordinate 121 121 122 122 IF( lk_esopa ) nzdf = -1 ! Esopa key: All schemes used -
trunk/NEMO/OPA_SRC/TRA/trazdf.F90
r1438 r1531 139 139 140 140 ! Force implicit schemes 141 IF( lk_zdftke .OR. lk_zdftke2 .OR. lk_zdfkpp )nzdf = 1 ! TKE or KPP physics142 IF( ln_traldf_iso )nzdf = 1 ! iso-neutral lateral physics143 IF( ln_traldf_hor .AND. ln_sco )nzdf = 1 ! horizontal lateral physics in s-coordinate141 IF( lk_zdftke_old .OR. lk_zdftke .OR. lk_zdfkpp ) nzdf = 1 ! TKE or KPP physics 142 IF( ln_traldf_iso ) nzdf = 1 ! iso-neutral lateral physics 143 IF( ln_traldf_hor .AND. ln_sco ) nzdf = 1 ! horizontal lateral physics in s-coordinate 144 144 145 145 IF( ln_zdfexp .AND. nzdf == 1 ) THEN -
trunk/NEMO/OPA_SRC/ZDF/zdfini.F90
r1239 r1531 101 101 ioptio = ioptio+1 102 102 ENDIF 103 IF( lk_zdftke ) THEN103 IF( lk_zdftke_old ) THEN 104 104 IF(lwp) WRITE(numout,*) ' TKE dependent eddy coefficients' 105 105 ioptio = ioptio+1 106 106 ENDIF 107 IF( lk_zdftke 2) THEN107 IF( lk_zdftke ) THEN 108 108 IF(lwp) WRITE(numout,*) ' TKE2 dependent eddy coefficients' 109 109 ioptio = ioptio+1 … … 128 128 ioptio = ioptio+1 129 129 ENDIF 130 IF( lk_zdftke .OR. lk_zdftke2) THEN130 IF( lk_zdftke_old .OR. lk_zdftke ) THEN 131 131 IF(lwp) WRITE(numout,*) ' use the 1.5 turbulent closure' 132 132 ENDIF … … 140 140 IF ( ioptio > 1 .AND. .NOT. lk_esopa ) & 141 141 CALL ctl_stop( ' chose between ln_zdfnpc', ' and ln_zdfevd' ) 142 IF( ioptio == 0 .AND. .NOT.( lk_zdftke .OR. lk_zdftke2.OR. lk_zdfkpp ) ) &142 IF( ioptio == 0 .AND. .NOT.( lk_zdftke_old .OR. lk_zdftke .OR. lk_zdfkpp ) ) & 143 143 CALL ctl_stop( ' except for TKE sor KPP physics, a convection scheme is', & 144 144 & ' required: ln_zdfevd or ln_zdfnpc logicals' ) -
trunk/NEMO/OPA_SRC/ZDF/zdftke.F90
r1438 r1531 1 MODULE zdftke 1 MODULE zdftke_old 2 2 !!====================================================================== 3 !! *** MODULE zdftke ***3 !! *** MODULE zdftke_old *** 4 4 !! Ocean physics: vertical mixing coefficient computed from the tke 5 5 !! turbulent closure parameterization … … 24 24 !! - ! 2008-06 (G. Madec) style + DOCTOR name for namelist parameters 25 25 !!---------------------------------------------------------------------- 26 #if defined key_zdftke || defined key_esopa26 #if defined key_zdftke_old || defined key_esopa 27 27 !!---------------------------------------------------------------------- 28 !! 'key_zdftke 'TKE vertical physics28 !! 'key_zdftke_old' TKE vertical physics 29 29 !!---------------------------------------------------------------------- 30 30 !!---------------------------------------------------------------------- 31 !! zdf_tke 31 !! zdf_tke_old : update momentum and tracer Kz from a tke scheme 32 32 !! zdf_tke_init : initialization, namelist read, and parameters control 33 33 !! tke_rst : read/write tke restart in ocean restart file … … 48 48 PRIVATE 49 49 50 PUBLIC zdf_tke 51 52 LOGICAL , PUBLIC, PARAMETER :: lk_zdftke = .TRUE. !: TKE vertical mixing flag50 PUBLIC zdf_tke_old ! routine called in step module 51 52 LOGICAL , PUBLIC, PARAMETER :: lk_zdftke_old = .TRUE. !: TKE vertical mixing flag 53 53 REAL(wp), PUBLIC :: eboost !: multiplicative coeff of the shear product. 54 54 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) :: en !: now turbulent kinetic energy … … 102 102 CONTAINS 103 103 104 SUBROUTINE zdf_tke ( kt )104 SUBROUTINE zdf_tke_old( kt ) 105 105 !!---------------------------------------------------------------------- 106 !! *** ROUTINE zdf_tke ***106 !! *** ROUTINE zdf_tke_old *** 107 107 !! 108 108 !! ** Purpose : Compute the vertical eddy viscosity and diffusivity … … 704 704 ENDIF 705 705 ! 706 END SUBROUTINE zdf_tke 706 END SUBROUTINE zdf_tke_old 707 707 708 708 … … 754 754 IF(lwp) THEN 755 755 WRITE(numout,*) 756 WRITE(numout,*) 'zdf_tke_init : tke turbulent closure scheme '756 WRITE(numout,*) 'zdf_tke_init : tke turbulent closure scheme (old scheme)' 757 757 WRITE(numout,*) '~~~~~~~~~~~~' 758 758 WRITE(numout,*) ' Namelist namtke : set tke mixing parameters' … … 920 920 en (:,:,:) = rn_emin * tmask(:,:,:) 921 921 DO jit = 2, nn_itke + 1 922 CALL zdf_tke ( jit )922 CALL zdf_tke_old( jit ) 923 923 END DO 924 924 ENDIF … … 936 936 !! Dummy module : NO TKE scheme 937 937 !!---------------------------------------------------------------------- 938 LOGICAL, PUBLIC, PARAMETER :: lk_zdftke = .FALSE. !: TKE flag938 LOGICAL, PUBLIC, PARAMETER :: lk_zdftke_old = .FALSE. !: TKE flag 939 939 CONTAINS 940 SUBROUTINE zdf_tke ( kt ) ! Empty routine941 WRITE(*,*) 'zdf_tke : You should not have seen this print! error?', kt942 END SUBROUTINE zdf_tke 940 SUBROUTINE zdf_tke_old( kt ) ! Empty routine 941 WRITE(*,*) 'zdf_tke_old: You should not have seen this print! error?', kt 942 END SUBROUTINE zdf_tke_old 943 943 #endif 944 944 945 945 !!====================================================================== 946 END MODULE zdftke 946 END MODULE zdftke_old -
trunk/NEMO/OPA_SRC/ZDF/zdftke2.F90
r1492 r1531 1 MODULE zdftke 21 MODULE zdftke 2 2 !!====================================================================== 3 !! *** MODULE zdftke 2***3 !! *** MODULE zdftke *** 4 4 !! Ocean physics: vertical mixing coefficient computed from the tke 5 5 !! turbulent closure parameterization … … 27 27 !! ! + cleaning of the parameters + bugs correction 28 28 !!---------------------------------------------------------------------- 29 #if defined key_zdftke 2|| defined key_esopa29 #if defined key_zdftke || defined key_esopa 30 30 !!---------------------------------------------------------------------- 31 !! 'key_zdftke 2'TKE vertical physics31 !! 'key_zdftke' TKE vertical physics 32 32 !!---------------------------------------------------------------------- 33 !! zdf_tke 2: update momentum and tracer Kz from a tke scheme33 !! zdf_tke : update momentum and tracer Kz from a tke scheme 34 34 !! tke_tke : tke time stepping: update tke at now time step (en) 35 35 !! tke_avn : compute mixing length scale and deduce avm and avt 36 36 !! tke_init : initialization, namelist read, and parameters control 37 !! tke 2_rst: read/write tke restart in ocean restart file37 !! tke_rst : read/write tke restart in ocean restart file 38 38 !!---------------------------------------------------------------------- 39 39 USE oce ! ocean dynamics and active tracers … … 53 53 PRIVATE 54 54 55 PUBLIC zdf_tke 2! routine called in step module56 PUBLIC tke 2_rst! routine called in step module57 58 LOGICAL , PUBLIC, PARAMETER :: lk_zdftke 2= .TRUE. !: TKE vertical mixing flag55 PUBLIC zdf_tke ! routine called in step module 56 PUBLIC tke_rst ! routine called in step module 57 58 LOGICAL , PUBLIC, PARAMETER :: lk_zdftke = .TRUE. !: TKE vertical mixing flag 59 59 60 60 #if defined key_c1d … … 99 99 100 100 REAL(wp), DIMENSION(jpi,jpj) :: htau ! depth of tke penetration (nn_htau) 101 REAL(wp), DIMENSION(jpi,jpj) :: avtb_2d ! set in tke 2_init, for other modif than ice101 REAL(wp), DIMENSION(jpi,jpj) :: avtb_2d ! set in tke_init, for other modif than ice 102 102 REAL(wp), DIMENSION(jpi,jpj,jpk) :: en ! now turbulent kinetic energy [m2/s2] 103 103 REAL(wp), DIMENSION(jpi,jpj,jpk) :: dissl ! now mixing lenght of dissipation … … 114 114 CONTAINS 115 115 116 SUBROUTINE zdf_tke 2( kt )116 SUBROUTINE zdf_tke( kt ) 117 117 !!---------------------------------------------------------------------- 118 !! *** ROUTINE zdf_tke 2***118 !! *** ROUTINE zdf_tke *** 119 119 !! 120 120 !! ** Purpose : Compute the vertical eddy viscosity and diffusivity … … 168 168 CALL tke_avn ! now avt, avm, avmu, avmv 169 169 ! 170 END SUBROUTINE zdf_tke 2170 END SUBROUTINE zdf_tke 171 171 172 172 … … 627 627 SUBROUTINE tke_init 628 628 !!---------------------------------------------------------------------- 629 !! *** ROUTINE zdf_tke2_init ***629 !! *** ROUTINE tke_init *** 630 630 !! 631 631 !! ** Purpose : Initialization of the vertical eddy diffivity and … … 654 654 IF(lwp) THEN !* Control print 655 655 WRITE(numout,*) 656 WRITE(numout,*) 'zdf_tke 2: tke turbulent closure scheme - initialisation'656 WRITE(numout,*) 'zdf_tke : tke turbulent closure scheme - initialisation' 657 657 WRITE(numout,*) '~~~~~~~~' 658 658 WRITE(numout,*) ' Namelist namtke : set tke mixing parameters' … … 738 738 dissl(:,:,:) = 1.e-12 739 739 ! !* read or initialize all required files 740 CALL tke 2_rst( nit000, 'READ' )740 CALL tke_rst( nit000, 'READ' ) 741 741 ! 742 742 END SUBROUTINE tke_init 743 743 744 744 745 SUBROUTINE tke 2_rst( kt, cdrw )745 SUBROUTINE tke_rst( kt, cdrw ) 746 746 !!--------------------------------------------------------------------- 747 !! *** ROUTINE t s_rst ***747 !! *** ROUTINE tke_rst *** 748 748 !! 749 749 !! ** Purpose : Read or write TKE file (en) in restart file … … 785 785 en (:,:,:) = rn_emin * tmask(:,:,:) 786 786 CALL tke_avn ! recompute avt, avm, avmu, avmv and dissl (approximation) 787 DO jit = nit000 + 1, nit000 + 10 ; CALL zdf_tke 2( jit ) ; END DO787 DO jit = nit000 + 1, nit000 + 10 ; CALL zdf_tke( jit ) ; END DO 788 788 ENDIF 789 789 ELSE !* Start from rest … … 799 799 ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN ! Create restart file 800 800 ! ! ------------------- 801 IF(lwp) WRITE(numout,*) '---- tke 2-rst ----'801 IF(lwp) WRITE(numout,*) '---- tke-rst ----' 802 802 CALL iom_rstput( kt, nitrst, numrow, 'en' , en ) 803 803 CALL iom_rstput( kt, nitrst, numrow, 'avt' , avt ) … … 809 809 ENDIF 810 810 ! 811 END SUBROUTINE tke 2_rst811 END SUBROUTINE tke_rst 812 812 813 813 #else … … 815 815 !! Dummy module : NO TKE scheme 816 816 !!---------------------------------------------------------------------- 817 LOGICAL, PUBLIC, PARAMETER :: lk_zdftke 2= .FALSE. !: TKE flag817 LOGICAL, PUBLIC, PARAMETER :: lk_zdftke = .FALSE. !: TKE flag 818 818 CONTAINS 819 SUBROUTINE zdf_tke 2( kt ) ! Empty routine820 WRITE(*,*) 'zdf_tke 2: You should not have seen this print! error?', kt821 END SUBROUTINE zdf_tke 2822 SUBROUTINE tke 2_rst( kt, cdrw )819 SUBROUTINE zdf_tke( kt ) ! Empty routine 820 WRITE(*,*) 'zdf_tke: You should not have seen this print! error?', kt 821 END SUBROUTINE zdf_tke 822 SUBROUTINE tke_rst( kt, cdrw ) 823 823 CHARACTER(len=*) :: cdrw 824 WRITE(*,*) 'tke 2_rst: You should not have seen this print! error?', kt, cdwr825 END SUBROUTINE tke 2_rst824 WRITE(*,*) 'tke_rst: You should not have seen this print! error?', kt, cdwr 825 END SUBROUTINE tke_rst 826 826 #endif 827 827 828 828 !!====================================================================== 829 END MODULE zdftke 2829 END MODULE zdftke -
trunk/NEMO/OPA_SRC/restart.F90
r1483 r1531 150 150 !! ** Purpose : Read files for restart (format fixed by jprstlib ) 151 151 !! 152 !! ** Method : Read the previous fields on the NetCDF/binary file 153 !! the first record indicates previous characterics 154 !! after control with the present run, we read : 155 !! - prognostic variables on the second record 156 !! - elliptic solver arrays 157 !! - barotropic stream function arrays ("key_dynspg_rl" defined) 158 !! or free surface arrays 159 !! - tke arrays (lk_zdftke=T .OR. lk_zdftke2=T) 160 !! for this last three records, the previous characteristics 161 !! could be different with those used in the present run. 152 !! ** Method : Read in restart.nc file fields which are necessary for restart 162 153 !!---------------------------------------------------------------------- 163 154 REAL(wp) :: zrdt, zrdttra1 -
trunk/NEMO/OPA_SRC/step.F90
r1528 r1531 87 87 USE zdftmx ! tide-induced vertical mixing (zdf_tmx routine) 88 88 USE zdfbfr ! bottom friction (zdf_bfr routine) 89 USE zdftke_old ! old TKE vertical mixing (zdf_tke_old routine) 89 90 USE zdftke ! TKE vertical mixing (zdf_tke routine) 90 USE zdftke2 ! TKE2 vertical mixing (zdf_tke2 routine)91 91 USE zdfkpp ! KPP vertical mixing (zdf_kpp routine) 92 92 USE zdfddm ! double diffusion mixing (zdf_ddm routine) … … 200 200 ! VERTICAL PHYSICS 201 201 ! ! Vertical eddy viscosity and diffusivity coefficients 202 IF( lk_zdfric ) CALL zdf_ric( kstp )! Richardson number dependent Kz203 IF( lk_zdftke ) CALL zdf_tke ( kstp ) ! TKE closure scheme for Kz204 IF( lk_zdftke 2 ) CALL zdf_tke2( kstp ) ! TKE2closure scheme for Kz205 IF( lk_zdfkpp ) CALL zdf_kpp( kstp )! KPP closure scheme for Kz206 IF( lk_zdfcst ) THEN! Constant Kz (reset avt, avm[uv] to the background value)202 IF( lk_zdfric ) CALL zdf_ric ( kstp ) ! Richardson number dependent Kz 203 IF( lk_zdftke_old ) CALL zdf_tke_old( kstp ) ! TKE closure scheme for Kz (old scheme) 204 IF( lk_zdftke ) CALL zdf_tke ( kstp ) ! TKE closure scheme for Kz 205 IF( lk_zdfkpp ) CALL zdf_kpp ( kstp ) ! KPP closure scheme for Kz 206 IF( lk_zdfcst ) THEN ! Constant Kz (reset avt, avm[uv] to the background value) 207 207 avt (:,:,:) = avt0 * tmask(:,:,:) 208 208 avmu(:,:,:) = avm0 * umask(:,:,:) … … 223 223 CALL zdf_mxl( kstp ) ! mixed layer depth 224 224 225 ! write tke 2information in the restart file226 IF( lrst_oce .AND. lk_zdftke 2 ) CALL tke2_rst( kstp, 'WRITE' )225 ! write tke information in the restart file 226 IF( lrst_oce .AND. lk_zdftke ) CALL tke_rst( kstp, 'WRITE' ) 227 227 ! 228 228 ! LATERAL PHYSICS -
trunk/NEMO/TOP_SRC/TRP/trctrp_ctl.F90
r1239 r1531 249 249 ! ... vertical mixing 250 250 ! time stepping scheme (N.B. TKE && KPP scheme => force the use of implicit scheme) 251 #if defined key_zdftke || defined key_zdftke 2|| defined key_zdfkpp251 #if defined key_zdftke || defined key_zdftke_old || defined key_zdfkpp 252 252 l_trczdf_exp = .FALSE. ! use implicit scheme 253 253 l_trczdf_imp = .TRUE.
Note: See TracChangeset
for help on using the changeset viewer.