- Timestamp:
- 2015-12-16T10:25:22+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r5836 r6060 12 12 13 13 !!---------------------------------------------------------------------- 14 !! tra_ldf : update the tracer trend with the lateral diffusion 15 !! tra_ldf_init : initialization, namelist read, and parameters control 16 !!---------------------------------------------------------------------- 17 USE oce ! ocean dynamics and tracers 18 USE dom_oce ! ocean space and time domain 19 USE phycst ! physical constants 20 USE ldftra ! lateral diffusion: eddy diffusivity & EIV coeff. 21 USE ldfslp ! lateral diffusion: iso-neutral slope 22 USE traldf_lap ! lateral diffusion: laplacian iso-level operator (tra_ldf_lap routine) 23 USE traldf_iso ! lateral diffusion: laplacian iso-neutral standard operator (tra_ldf_iso routine) 24 USE traldf_triad ! lateral diffusion: laplacian iso-neutral triad operator (tra_ldf_triad routine) 25 USE traldf_blp ! lateral diffusion (iso-level lap/blp) (tra_ldf_lap routine) 26 USE trd_oce ! trends: ocean variables 27 USE trdtra ! ocean active tracers trends 14 !! tra_ldf : update the tracer trend with the lateral diffusion trend 15 !! tra_ldf_init : initialization, namelist read, and parameters control 16 !!---------------------------------------------------------------------- 17 USE oce ! ocean dynamics and tracers 18 USE dom_oce ! ocean space and time domain 19 USE phycst ! physical constants 20 USE ldftra ! lateral diffusion: eddy diffusivity & EIV coeff. 21 USE ldfslp ! lateral diffusion: iso-neutral slope 22 USE traldf_lap_blp ! lateral diffusion: laplacian iso-level operator (tra_ldf_lap/_blp routines) 23 USE traldf_iso ! lateral diffusion: laplacian iso-neutral standard operator (tra_ldf_iso routine ) 24 USE traldf_triad ! lateral diffusion: laplacian iso-neutral triad operator (tra_ldf_triad routine ) 25 USE trd_oce ! trends: ocean variables 26 USE trdtra ! ocean active tracers trends 28 27 ! 29 28 USE prtctl ! Print control … … 43 42 44 43 !! * Substitutions 45 # include "domzgr_substitute.h90"46 44 # include "vectopt_loop_substitute.h90" 47 45 !!---------------------------------------------------------------------- … … 72 70 ! 73 71 SELECT CASE ( nldf ) !* compute lateral mixing trend and add it to the general trend 74 !75 72 CASE ( np_lap ) ! laplacian: iso-level operator 76 73 CALL tra_ldf_lap ( kt, nit000,'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, tsb, tsa, jpts, 1 ) … … 82 79 CALL tra_ldf_blp ( kt, nit000,'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, tsb , tsa, jpts, nldf ) 83 80 END SELECT 84 81 ! 85 82 IF( l_trdtra ) THEN !* save the horizontal diffusive trends for further diagnostics 86 83 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) … … 114 111 WRITE(numout,*) 'tra_ldf_init : lateral tracer diffusive operator' 115 112 WRITE(numout,*) '~~~~~~~~~~~' 116 WRITE(numout,*) ' Namelist namtra_ldf already read in ldftra module'117 WRITE(numout,*) ' see ldf_tra_init report for lateral mixing parameters'113 WRITE(numout,*) ' Namelist namtra_ldf: already read in ldftra module' 114 WRITE(numout,*) ' see ldf_tra_init report for lateral mixing parameters' 118 115 WRITE(numout,*) 119 116 ENDIF … … 178 175 ENDIF 179 176 ! 180 IF( ierr == 1 ) CALL ctl_stop( ' iso-level in z-coordinate -partial step, not allowed' )177 IF( ierr == 1 ) CALL ctl_stop( 'iso-level in z-partial step, not allowed' ) 181 178 IF( ln_ldfeiv .AND. .NOT.( ln_traldf_iso .OR. ln_traldf_triad ) ) & 182 & CALL ctl_stop( ' eddy induced velocity on tracers requires isopycnal', &183 & ' laplacian diffusion' )179 & CALL ctl_stop( 'eddy induced velocity on tracers requires iso-neutral laplacian diffusion' ) 180 ! 184 181 IF( nldf == np_lap_i .OR. nldf == np_lap_it .OR. & 185 182 & nldf == np_blp_i .OR. nldf == np_blp_it ) l_ldfslp = .TRUE. ! slope of neutral surfaces required … … 187 184 IF(lwp) THEN 188 185 WRITE(numout,*) 189 IF( nldf == np_no_ldf ) WRITE(numout,*) ' NO lateral diffusion' 190 IF( nldf == np_lap ) WRITE(numout,*) ' laplacian iso-level operator' 191 IF( nldf == np_lap_i ) WRITE(numout,*) ' Rotated laplacian operator (standard)' 192 IF( nldf == np_lap_it ) WRITE(numout,*) ' Rotated laplacian operator (triad)' 193 IF( nldf == np_blp ) WRITE(numout,*) ' bilaplacian iso-level operator' 194 IF( nldf == np_blp_i ) WRITE(numout,*) ' Rotated bilaplacian operator (standard)' 195 IF( nldf == np_blp_it ) WRITE(numout,*) ' Rotated bilaplacian operator (triad)' 186 SELECT CASE( nldf ) 187 CASE( np_no_ldf ) ; WRITE(numout,*) ' NO lateral diffusion' 188 CASE( np_lap ) ; WRITE(numout,*) ' laplacian iso-level operator' 189 CASE( np_lap_i ) ; WRITE(numout,*) ' Rotated laplacian operator (standard)' 190 CASE( np_lap_it ) ; WRITE(numout,*) ' Rotated laplacian operator (triad)' 191 CASE( np_blp ) ; WRITE(numout,*) ' bilaplacian iso-level operator' 192 CASE( np_blp_i ) ; WRITE(numout,*) ' Rotated bilaplacian operator (standard)' 193 CASE( np_blp_it ) ; WRITE(numout,*) ' Rotated bilaplacian operator (triad)' 194 END SELECT 196 195 ENDIF 197 196 !
Note: See TracChangeset
for help on using the changeset viewer.