Changeset 10806 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traldf.F90
- Timestamp:
- 2019-03-27T17:55:22+01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/traldf.F90
r10068 r10806 47 47 CONTAINS 48 48 49 SUBROUTINE tra_ldf( kt )49 SUBROUTINE tra_ldf( kt, ktlev1, ktlev2, kt2lev, pts_rhs ) 50 50 !!---------------------------------------------------------------------- 51 51 !! *** ROUTINE tra_ldf *** … … 53 53 !! ** Purpose : compute the lateral ocean tracer physics. 54 54 !!---------------------------------------------------------------------- 55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 56 INTEGER, INTENT( in ) :: ktlev1, ktlev2 ! time level indices for 3-time-level source terms 57 INTEGER, INTENT( in ) :: kt2lev ! time level index for 2-time-level source terms 58 REAL(wp), INTENT( inout), DIMENSION(jpi,jpj,jpk,jpts) :: pts_rhs ! temperature and salinity trends 56 59 !! 57 60 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrdt, ztrds … … 62 65 IF( l_trdtra ) THEN !* Save ta and sa trends 63 66 ALLOCATE( ztrdt(jpi,jpj,jpk) , ztrds(jpi,jpj,jpk) ) 64 ztrdt(:,:,:) = tsa(:,:,:,jp_tem)65 ztrds(:,:,:) = tsa(:,:,:,jp_sal)67 ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) 68 ztrds(:,:,:) = pts_rhs(:,:,:,jp_sal) 66 69 ENDIF 67 70 ! 68 71 SELECT CASE ( nldf_tra ) !* compute lateral mixing trend and add it to the general trend 69 72 CASE ( np_lap ) ! laplacian: iso-level operator 70 CALL tra_ldf_lap ( kt, nit000, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, tsb, tsa, jpts, 1 )73 CALL tra_ldf_lap ( kt, nit000, ktlev2, kt2lev, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, ts(:,:,:,:,ktlev1), pts_rhs, jpts, 1 ) 71 74 CASE ( np_lap_i ) ! laplacian: standard iso-neutral operator (Madec) 72 CALL tra_ldf_iso ( kt, nit000, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, tsb, tsb, tsa, jpts, 1 )75 CALL tra_ldf_iso ( kt, nit000, ktlev2, kt2lev, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, ts(:,:,:,:,ktlev1), ts(:,:,:,:,ktlev1), pts_rhs, jpts, 1 ) 73 76 CASE ( np_lap_it ) ! laplacian: triad iso-neutral operator (griffies) 74 CALL tra_ldf_triad( kt, nit000, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, tsb, tsb, tsa, jpts, 1 )77 CALL tra_ldf_triad( kt, nit000, ktlev2, kt2lev, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, ts(:,:,:,:,ktlev1), ts(:,:,:,:,ktlev1), pts_rhs, jpts, 1 ) 75 78 CASE ( np_blp , np_blp_i , np_blp_it ) ! bilaplacian: iso-level & iso-neutral operators 76 CALL tra_ldf_blp ( kt, nit000, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, tsb , tsa, jpts, nldf_tra )79 CALL tra_ldf_blp ( kt, nit000, ktlev2, kt2lev, 'TRA', ahtu, ahtv, gtsu, gtsv, gtui, gtvi, ts(:,:,:,:,ktlev1) , pts_rhs, jpts, nldf_tra ) 77 80 END SELECT 78 81 ! 79 82 IF( l_trdtra ) THEN !* save the horizontal diffusive trends for further diagnostics 80 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:)81 ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:)83 ztrdt(:,:,:) = pts_rhs(:,:,:,jp_tem) - ztrdt(:,:,:) 84 ztrds(:,:,:) = pts_rhs(:,:,:,jp_sal) - ztrds(:,:,:) 82 85 CALL trd_tra( kt, 'TRA', jp_tem, jptra_ldf, ztrdt ) 83 86 CALL trd_tra( kt, 'TRA', jp_sal, jptra_ldf, ztrds )
Note: See TracChangeset
for help on using the changeset viewer.