Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90
- Timestamp:
- 2011-03-30T17:58:35+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_lap.F90
r2528 r2715 24 24 USE diaptr ! poleward transport diagnostics 25 25 USE trc_oce ! share passive tracers/Ocean variables 26 USE lib_mpp ! MPP library 26 27 27 28 IMPLICIT NONE … … 30 31 PUBLIC tra_ldf_lap ! routine called by step.F90 31 32 32 REAL(wp), DIMENSION(jpi,jpj) :: e1ur, e2vr ! scale factor coefficients33 REAL(wp), SAVE, ALLOCATABLE, DIMENSION(:,:) :: e1ur, e2vr ! scale factor coefficients 33 34 34 35 !! * Substitutions … … 62 63 !! harmonic mixing trend. 63 64 !!---------------------------------------------------------------------- 64 USE oce , ztu => ua ! use ua as workspace 65 USE oce , ztv => va ! use va as workspace 66 !! 65 USE oce, ONLY: ztu => ua , ztv => va ! (ua,va) used as workspace 66 ! 67 67 INTEGER , INTENT(in ) :: kt ! ocean time-step index 68 68 CHARACTER(len=3) , INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) … … 71 71 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in ) :: ptb ! before and now tracer fields 72 72 REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(inout) :: pta ! tracer trend 73 ! !73 ! 74 74 INTEGER :: ji, jj, jk, jn ! dummy loop indices 75 INTEGER :: iku, ikv 75 INTEGER :: iku, ikv, ierr ! local integers 76 76 REAL(wp) :: zabe1, zabe2, zbtr ! local scalars 77 77 !!---------------------------------------------------------------------- … … 81 81 IF(lwp) WRITE(numout,*) 'tra_ldf_lap : iso-level laplacian diffusion on ', cdtype 82 82 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~ ' 83 ! 84 ALLOCATE( e1ur(jpi,jpj), e2vr(jpi,jpj), STAT=ierr ) 85 IF( lk_mpp ) CALL mpp_sum( ierr ) 86 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'tra_ldf_lap : unable to allocate arrays' ) 87 ! 83 88 e1ur(:,:) = e2u(:,:) / e1u(:,:) 84 89 e2vr(:,:) = e1v(:,:) / e2v(:,:) … … 123 128 DO jj = 2, jpjm1 124 129 DO ji = fs_2, fs_jpim1 ! vector opt. 125 zbtr = 1. 0 / ( e1t(ji,jj) *e2t(ji,jj) * fse3t(ji,jj,jk) )130 zbtr = 1._wp / ( e1t(ji,jj) *e2t(ji,jj) * fse3t(ji,jj,jk) ) 126 131 ! horizontal diffusive trends added to the general tracer trends 127 132 pta(ji,jj,jk,jn) = pta(ji,jj,jk,jn) + zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) &
Note: See TracChangeset
for help on using the changeset viewer.