Changeset 1546 for trunk/NEMO/OPA_SRC/ZDF/zdfevd.F90
- Timestamp:
- 2009-07-27T15:39:29+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/ZDF/zdfevd.F90
r1537 r1546 45 45 !! sivity coefficients when a static instability is encountered. 46 46 !! 47 !! ** Method : avt, a nd the 4 neighbouring avmu, avmv coefficients47 !! ** Method : avt, avm, and the 4 neighbouring avmu, avmv coefficients 48 48 !! are set to avevd (namelist parameter) if the water column is 49 49 !! statically unstable (i.e. if rn2 < -1.e-12 ) 50 50 !! 51 !! ** Action : Update avt, avmu, avmv in statically instablecases52 !! and avt_evd which is avt due to convection51 !! ** Action : avt, avm, avmu, avmv updted in static instability cases 52 !! 53 53 !! References : Lazar, A., these de l'universite Paris VI, France, 1997 54 54 !!---------------------------------------------------------------------- 55 USE oce, zav_evd => ua ! use ua as workspace 56 !! 55 57 INTEGER, INTENT( in ) :: kt ! ocean time-step indexocean time step 56 58 !! … … 65 67 ENDIF 66 68 67 ! Initialisation of avt_evd (vertical diffusion due to convection) to avt and avmu_evd to avmu 68 avt_evd (:,:,:) = avt(:,:,:) 69 avmu_evd (:,:,:) = avmu(:,:,:) 69 zav_evd(:,:,:) = avt(:,:,:) ! set avt prior to evd application 70 70 71 71 SELECT CASE ( nn_evdm ) 72 72 73 73 CASE ( 1 ) ! enhance vertical eddy viscosity and diffusivity (if rn2<-1.e-12) 74 ! ! =============== 75 DO jk = 1, jpkm1 ! Horizontal slab 76 ! ! =============== 74 DO jk = 1, jpkm1 77 75 #if defined key_vectopt_loop 78 76 DO jj = 1, 1 ! big loop forced … … 83 81 #endif 84 82 #if defined key_zdfkpp 85 !! no implicitmixing in the boundary layer with KPP83 ! no evd mixing in the boundary layer with KPP 86 84 IF( ( MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 ) .AND. ( fsdepw(ji,jj,jk) > hkpp(ji,jj) ) ) THEN 87 85 #else … … 97 95 END DO 98 96 END DO 99 ! ! =============== 100 END DO ! End of slab 101 ! ! =============== 102 103 ! Lateral boundary conditions on ( avt, avmu, avmv ) (unchanged sign) 104 ! -------------------------------=================== 105 CALL lbc_lnk( avt , 'W', 1. ) 106 CALL lbc_lnk( avm , 'W', 1. ) 107 CALL lbc_lnk( avmu, 'U', 1. ) 108 CALL lbc_lnk( avmv, 'V', 1. ) 109 97 END DO 98 CALL lbc_lnk( avt , 'W', 1. ) ; CALL lbc_lnk( avm , 'W', 1. ) ! Lateral boundary conditions (unchanged sign) 99 CALL lbc_lnk( avmu, 'U', 1. ) ; CALL lbc_lnk( avmv, 'V', 1. ) 100 ! 110 101 CASE DEFAULT ! enhance vertical eddy diffusivity only (if rn2<-1.e-12) 111 ! ! =============== 112 DO jk = 1, jpkm1 ! Horizontal slab 113 ! ! =============== 114 !!! WHERE( rn2(:,:,jk) <= -1.e-12 ) avt(:,:,jk) = tmask(:,:,jk) * rn_avevd ! agissant sur T SEUL! 102 DO jk = 1, jpkm1 103 !!! WHERE( rn2(:,:,jk) <= -1.e-12 ) avt(:,:,jk) = tmask(:,:,jk) * avevd ! agissant sur T SEUL! 115 104 #if defined key_vectopt_loop 116 105 DO jj = 1, 1 ! big loop forced … … 121 110 #endif 122 111 #if defined key_zdfkpp 123 !! no implicitmixing in the boundary layer with KPP112 ! no evd mixing in the boundary layer with KPP 124 113 IF( ( MIN( rn2(ji,jj,jk), rn2b(ji,jj,jk) ) <= -1.e-12 ) .AND. ( fsdepw(ji,jj,jk) > hkpp(ji,jj) ) ) & 125 114 #else … … 129 118 END DO 130 119 END DO 131 ! ! =============== 132 END DO ! End of slab 133 ! ! =============== 120 END DO 121 ! 134 122 END SELECT 135 123 136 ! update of avt_evd and avmu_evd 137 avt_evd (:,:,:) = avt (:,:,:) - avt_evd (:,:,:) 138 avmu_evd(:,:,:) = avmu(:,:,:) - avmu_evd(:,:,:) 139 CALL iom_put( "avt_evd", avt_evd ) ! T enhan. vert. eddy diff. coef. 140 CALL iom_put( "avm_evd", avmu_evd ) ! T enhan. vert. eddy visc. coef. 141 124 zav_evd(:,:,:) = avt(:,:,:) - zav_evd(:,:,:) ! change in avt due to evd 125 CALL iom_put( "avt_evd", zav_evd ) ! output this change 126 ! 142 127 END SUBROUTINE zdf_evd 143 128
Note: See TracChangeset
for help on using the changeset viewer.