Changeset 503 for trunk/NEMO/OPA_SRC/TRA/traldf_iso.F90
- Timestamp:
- 2006-09-27T10:52:29+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/TRA/traldf_iso.F90
r457 r503 1 1 MODULE traldf_iso 2 !!====================================================================== ========2 !!====================================================================== 3 3 !! *** MODULE traldf_iso *** 4 4 !! Ocean active tracers: horizontal component of the lateral tracer mixing trend 5 !!============================================================================== 5 !!====================================================================== 6 !! History : ! 94-08 (G. Madec, M. Imbard) 7 !! ! 97-05 (G. Madec) split into traldf and trazdf 8 !! 8.5 ! 02-08 (G. Madec) Free form, F90 9 !! 9.0 ! 05-11 (G. Madec) merge traldf and trazdf :-) 10 !!---------------------------------------------------------------------- 6 11 #if defined key_ldfslp || defined key_esopa 7 12 !!---------------------------------------------------------------------- 8 13 !! 'key_ldfslp' slope of the lateral diffusive direction 14 !!---------------------------------------------------------------------- 9 15 !!---------------------------------------------------------------------- 10 16 !! tra_ldf_iso : update the tracer trend with the horizontal … … 14 20 !! vector optimization, use k-j-i loops. 15 21 !!---------------------------------------------------------------------- 16 !! * Modules used17 22 USE oce ! ocean dynamics and active tracers 18 23 USE dom_oce ! ocean space and time domain … … 26 31 USE prtctl ! Print control 27 32 28 29 33 IMPLICIT NONE 30 34 PRIVATE 31 35 32 !! * Accessibility 33 PUBLIC tra_ldf_iso ! routine called by step.F90 36 PUBLIC tra_ldf_iso ! routine called by step.F90 34 37 35 38 !! * Substitutions … … 39 42 !!---------------------------------------------------------------------- 40 43 !! OPA 9.0 , LOCEAN-IPSL (2005) 44 !! $Header$ 45 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 41 46 !!---------------------------------------------------------------------- 42 47 … … 81 86 !! ta = ta + difft 82 87 !! 83 !! ** Action : 84 !! Update (ta,sa) arrays with the before rotated diffusion trend 85 !! (except the dk[ dk[.] ] term) 86 !! 87 !! History : 88 !! ! 94-08 (G. Madec, M. Imbard) 89 !! ! 97-05 (G. Madec) split into traldf and trazdf 90 !! 8.5 ! 02-08 (G. Madec) Free form, F90 91 !! 9.0 ! 04-08 (C. Talandier) New trends organization 92 !! ! 05-11 (G. Madec) merge traldf and trazdf :-) 93 !!---------------------------------------------------------------------- 94 !! * Modules used 95 USE oce , zftv => ua, & ! use ua as workspace 96 & zfsv => va ! use va as workspace 97 98 !! * Arguments 99 INTEGER, INTENT( in ) :: kt ! ocean time-step index 100 101 !! * Local declarations 102 INTEGER :: ji, jj, jk ! dummy loop indices 103 INTEGER :: iku, ikv ! temporary integer 104 REAL(wp) :: & 105 zabe1, zabe2, zcof1, zcof2, & ! temporary scalars 106 zmsku, zta, & ! " " 107 zmskv, zsa, zbtr, & ! " " 108 zcoef0, zcoef3, zcoef4 ! " " 109 REAL(wp), DIMENSION(jpi,jpj) :: & ! temporary workspace 110 zdkt , zdk1t, zftu, & ! " " 111 zdks , zdk1s, zfsu ! " " 112 REAL(wp), DIMENSION(jpi,jpj,jpk) :: & 113 zdit, zdjt, ztfw, & ! temporary workspace 114 zdis, zdjs, zsfw ! " " 88 !! ** Action : Update (ta,sa) arrays with the before rotated diffusion 89 !! trend (except the dk[ dk[.] ] term) 90 !!---------------------------------------------------------------------- 91 USE oce , zftv => ua ! use ua as workspace 92 USE oce , zfsv => va ! use va as workspace 93 !! 94 INTEGER, INTENT( in ) :: kt ! ocean time-step index 95 !! 96 INTEGER :: ji, jj, jk ! dummy loop indices 97 INTEGER :: iku, ikv ! temporary integer 98 REAL(wp) :: zmsku, zabe1, zcof1, zcoef3, zta ! temporary scalars 99 REAL(wp) :: zmskv, zabe2, zcof2, zcoef4, zsa ! " " 100 REAL(wp) :: zcoef0, zbtr ! " " 101 REAL(wp), DIMENSION(jpi,jpj) :: zdkt , zdk1t, zftu ! 2D workspace 102 REAL(wp), DIMENSION(jpi,jpj) :: zdks , zdk1s, zfsu ! " " 103 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdit, zdjt, ztfw ! 3D workspace 104 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zdis, zdjs, zsfw ! " " 115 105 !!---------------------------------------------------------------------- 116 106 … … 130 120 zdjs (1,:,:) = 0.e0 ; zdjs (jpi,:,:) = 0.e0 131 121 !!end 132 133 122 134 123 ! Horizontal temperature and salinity gradient … … 217 206 ! II.4 Second derivative (divergence) and add to the general trend 218 207 ! ---------------------------------------------------------------- 219 220 208 DO jj = 2 , jpjm1 221 209 DO ji = fs_2, fs_jpim1 ! vector opt. … … 231 219 ! ! =============== 232 220 233 IF( ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN 234 ! "zonal" mean lateral diffusive heat and salt transports 221 IF( ln_diaptr .AND. ( MOD( kt, nf_ptr ) == 0 ) ) THEN ! Poleward diffusive heat and salt transports 235 222 pht_ldf(:) = ptr_vj( zftv(:,:,:) ) 236 223 pst_ldf(:) = ptr_vj( zfsv(:,:,:) ) … … 297 284 END DO 298 285 END DO 299 286 ! 300 287 END SUBROUTINE tra_ldf_iso 301 288 … … 306 293 CONTAINS 307 294 SUBROUTINE tra_ldf_iso( kt ) ! Empty routine 308 INTEGER :: kt309 295 WRITE(*,*) 'tra_ldf_iso: You should not have seen this print! error?', kt 310 296 END SUBROUTINE tra_ldf_iso
Note: See TracChangeset
for help on using the changeset viewer.