Changeset 5260 for branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
- Timestamp:
- 2015-05-12T12:37:15+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO10_Tidally_Meaned_Diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90
r4488 r5260 23 23 USE traldf_iso_grif ! lateral mixing (tra_ldf_iso_grif routine) 24 24 USE traldf_lap ! lateral mixing (tra_ldf_lap routine) 25 USE trdmod_oce ! ocean space and time domain 26 USE trdtra ! ocean active tracers trends 25 USE trd_oce ! trends: ocean variables 26 USE trdtra ! trends manager: tracers 27 ! 27 28 USE prtctl ! Print control 28 29 USE in_out_manager ! I/O manager … … 35 36 PRIVATE 36 37 37 PUBLIC tra_ldf 38 PUBLIC tra_ldf_init 38 PUBLIC tra_ldf ! called by step.F90 39 PUBLIC tra_ldf_init ! called by opa.F90 39 40 ! 40 41 INTEGER :: nldf = 0 ! type of lateral diffusion used defined from ln_traldf_... namlist logicals) … … 75 76 76 77 SELECT CASE ( nldf ) ! compute lateral mixing trend and add it to the general trend 77 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) ! iso-level laplacian 78 CASE ( 0 ) ; CALL tra_ldf_lap ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi, & 79 & tsb, tsa, jpts ) ! iso-level laplacian 78 80 CASE ( 1 ) ! rotated laplacian 79 81 IF( ln_traldf_grif ) THEN 80 82 CALL tra_ldf_iso_grif( kt, nit000,'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) ! Griffies operator 81 83 ELSE 82 CALL tra_ldf_iso ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) ! Madec operator 83 ENDIF 84 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) ! iso-level bilaplacian 84 CALL tra_ldf_iso ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi, & 85 & tsb, tsa, jpts, ahtb0 ) ! Madec operator 86 ENDIF 87 CASE ( 2 ) ; CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi, & 88 & tsb, tsa, jpts ) ! iso-level bilaplacian 85 89 CASE ( 3 ) ; CALL tra_ldf_bilapg ( kt, nit000, 'TRA', tsb, tsa, jpts ) ! s-coord. geopot. bilap. 86 90 ! 87 91 CASE ( -1 ) ! esopa: test all possibility with control print 88 CALL tra_ldf_lap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) 92 CALL tra_ldf_lap ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi, & 93 & tsb, tsa, jpts ) 89 94 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf0 - Ta: ', mask1=tmask, & 90 95 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) … … 92 97 CALL tra_ldf_iso_grif( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) 93 98 ELSE 94 CALL tra_ldf_iso ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts, ahtb0 ) 99 CALL tra_ldf_iso ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi, & 100 & tsb, tsa, jpts, ahtb0 ) 95 101 ENDIF 96 102 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf1 - Ta: ', mask1=tmask, & 97 103 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) 98 CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, tsb, tsa, jpts ) 104 CALL tra_ldf_bilap ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi, & 105 & tsb, tsa, jpts ) 99 106 CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' ldf2 - Ta: ', mask1=tmask, & 100 107 & tab3d_2=tsa(:,:,:,jp_sal), clinfo2= ' Sa: ', mask2=tmask, clinfo3='tra' ) … … 112 119 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 113 120 ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:) 114 CALL trd_tra( kt, 'TRA', jp_tem, jptra_ trd_ldf, ztrdt )115 CALL trd_tra( kt, 'TRA', jp_sal, jptra_ trd_ldf, ztrds )121 CALL trd_tra( kt, 'TRA', jp_tem, jptra_ldf, ztrdt ) 122 CALL trd_tra( kt, 'TRA', jp_sal, jptra_ldf, ztrds ) 116 123 CALL wrk_dealloc( jpi, jpj, jpk, ztrdt, ztrds ) 117 124 ENDIF … … 174 181 IF ( ln_traldf_iso ) nldf = 1 ! isoneutral ( rotation) 175 182 ENDIF 176 IF ( ln_zps ) THEN ! z -coordinate183 IF ( ln_zps ) THEN ! zps-coordinate 177 184 IF ( ln_traldf_level ) ierr = 1 ! iso-level not allowed 178 185 IF ( ln_traldf_hor ) nldf = 0 ! horizontal (no rotation) 179 186 IF ( ln_traldf_iso ) nldf = 1 ! isoneutral ( rotation) 180 187 ENDIF 181 IF ( ln_sco ) THEN ! z-coordinate188 IF ( ln_sco ) THEN ! s-coordinate 182 189 IF ( ln_traldf_level ) nldf = 0 ! iso-level (no rotation) 183 190 IF ( ln_traldf_hor ) nldf = 1 ! horizontal ( rotation) … … 192 199 IF ( ln_traldf_iso ) ierr = 2 ! isoneutral ( rotation) 193 200 ENDIF 194 IF ( ln_zps ) THEN ! z -coordinate201 IF ( ln_zps ) THEN ! zps-coordinate 195 202 IF ( ln_traldf_level ) ierr = 1 ! iso-level not allowed 196 203 IF ( ln_traldf_hor ) nldf = 2 ! horizontal (no rotation) 197 204 IF ( ln_traldf_iso ) ierr = 2 ! isoneutral ( rotation) 198 205 ENDIF 199 IF ( ln_sco ) THEN ! z-coordinate206 IF ( ln_sco ) THEN ! s-coordinate 200 207 IF ( ln_traldf_level ) nldf = 2 ! iso-level (no rotation) 201 208 IF ( ln_traldf_hor ) nldf = 3 ! horizontal ( rotation) … … 283 290 IF(lwp) WRITE(numout,*) ' homogeneous ocean T = ', zt0, ' S = ',zs0 284 291 292 ! Initialisation of gtui/gtvi in case of no cavity 293 IF ( .NOT. ln_isfcav ) THEN 294 gtui(:,:,:) = 0.0_wp 295 gtvi(:,:,:) = 0.0_wp 296 END IF 285 297 ! ! T & S profile (to be coded +namelist parameter 286 298
Note: See TracChangeset
for help on using the changeset viewer.