- Timestamp:
- 2015-10-01T14:48:08+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_blp.F90
r5758 r5770 8 8 9 9 !!---------------------------------------------------------------------- 10 !! traldf_blp : update the tracer trend with the bilaplacian lateral mixing trend10 !! traldf_blp : update the tracer trend with the bilaplacian lateral mixing trend 11 11 !!---------------------------------------------------------------------- 12 USE oce ! ocean dynamics and active tracers13 USE dom_oce ! ocean space and time domain14 USE phycst ! physical constants15 USE trc_oce ! share passive tracers/Ocean variables16 USE zdf_oce ! ocean vertical physics17 USE ldftra ! lateral physics: eddy diffusivity18 USE ldfslp ! lateral physics: iso-neutral slopes19 USE traldf_lap ! lateral diffusion (Standard operator) (tra_ldf_lap routine)20 USE traldf_iso ! lateral diffusion (Standard operator) (tra_ldf_iso routine)21 USE traldf_triad ! lateral diffusion (Standard operator) (tra_ldf_triad routine)22 USE diaptr ! poleward transport diagnostics23 USE zpshde ! partial step: hor. derivative (zps_hde routine)12 USE oce ! ocean dynamics and active tracers 13 USE dom_oce ! ocean space and time domain 14 USE phycst ! physical constants 15 USE trc_oce ! share passive tracers/Ocean variables 16 USE zdf_oce ! ocean vertical physics 17 USE ldftra ! lateral physics: eddy diffusivity 18 USE ldfslp ! lateral physics: iso-neutral slopes 19 USE traldf_lap ! lateral diffusion (Standard operator) (tra_ldf_lap routine) 20 USE traldf_iso ! lateral diffusion (Standard operator) (tra_ldf_iso routine) 21 USE traldf_triad ! lateral diffusion (Standard operator) (tra_ldf_triad routine) 22 USE diaptr ! poleward transport diagnostics 23 USE zpshde ! partial step: hor. derivative (zps_hde routine) 24 24 ! 25 25 USE in_out_manager ! I/O manager … … 33 33 PRIVATE 34 34 35 PUBLIC tra_ldf_blp 35 PUBLIC tra_ldf_blp ! routine called by traldf.F90 36 36 37 ! 38 INTEGER, PARAMETER, PUBLIC :: n _no_ldf = 00! without operator (i.e. no lateral diffusive trend)39 ! !! laplacian ! bilaplacian!40 INTEGER, PARAMETER, PUBLIC :: n _lap = 10 , n_blp = 20 ! iso-level operator41 INTEGER, PARAMETER, PUBLIC :: n _lap_i = 11 , n_blp_i = 21 ! standard iso-neutral or geopotential operator42 INTEGER, PARAMETER, PUBLIC :: n _lap_it = 12 , n_blp_it = 22 ! triad iso-neutral or geopotential operator37 ! ! Flag to control the type of lateral diffusive operator 38 INTEGER, PARAMETER, PUBLIC :: np_no_ldf = 00 ! without operator (i.e. no lateral diffusive trend) 39 ! !! laplacian ! bilaplacian ! 40 INTEGER, PARAMETER, PUBLIC :: np_lap = 10 , np_blp = 20 ! iso-level operator 41 INTEGER, PARAMETER, PUBLIC :: np_lap_i = 11 , np_blp_i = 21 ! standard iso-neutral or geopotential operator 42 INTEGER, PARAMETER, PUBLIC :: np_lap_it = 12 , np_blp_it = 22 ! triad iso-neutral or geopotential operator 43 43 44 44 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE :: zdkt3d !: vertical tracer gradient at 2 levels … … 94 94 WRITE(numout,*) 95 95 SELECT CASE ( kldf ) 96 CASE ( n _blp ) ; WRITE(numout,*) 'tra_ldf_blp : iso-level bilaplacian operator on ', cdtype97 CASE ( n _blp_i ) ; WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (Standard)'98 CASE ( n _blp_it ) ; WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (triad)'96 CASE ( np_blp ) ; WRITE(numout,*) 'tra_ldf_blp : iso-level bilaplacian operator on ', cdtype 97 CASE ( np_blp_i ) ; WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (Standard)' 98 CASE ( np_blp_it ) ; WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (triad)' 99 99 END SELECT 100 100 WRITE(numout,*) '~~~~~~~~~~~' … … 105 105 SELECT CASE ( kldf ) !== 1st laplacian applied to ptb (output in zlap) ==! 106 106 ! 107 CASE ( n _blp )! iso-level bilaplacian107 CASE ( np_blp ) ! iso-level bilaplacian 108 108 CALL tra_ldf_lap ( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, zlap, kjpt, 1 ) 109 109 ! 110 CASE ( n _blp_i )! rotated bilaplacian : standard operator (Madec)110 CASE ( np_blp_i ) ! rotated bilaplacian : standard operator (Madec) 111 111 CALL tra_ldf_iso ( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, ptb, zlap, kjpt, 1 ) 112 112 ! 113 CASE ( n _blp_it )! rotated bilaplacian : triad operator (griffies)113 CASE ( np_blp_it ) ! rotated bilaplacian : triad operator (griffies) 114 114 CALL tra_ldf_triad( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, ptb, zlap, kjpt, 1 ) 115 115 ! … … 126 126 SELECT CASE ( kldf ) !== 2nd laplacian applied to zlap (output in pta) ==! 127 127 ! 128 CASE ( n _blp )! iso-level bilaplacian128 CASE ( np_blp ) ! iso-level bilaplacian 129 129 CALL tra_ldf_lap ( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, pta, kjpt, 2 ) 130 130 ! 131 CASE ( n _blp_i )! rotated bilaplacian : standard operator (Madec)131 CASE ( np_blp_i ) ! rotated bilaplacian : standard operator (Madec) 132 132 CALL tra_ldf_iso ( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, ptb, pta, kjpt, 2 ) 133 133 ! 134 CASE ( n _blp_it )! rotated bilaplacian : triad operator (griffies)134 CASE ( np_blp_it ) ! rotated bilaplacian : triad operator (griffies) 135 135 CALL tra_ldf_triad( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, ptb, pta, kjpt, 2 ) 136 136 !
Note: See TracChangeset
for help on using the changeset viewer.