Changeset 2715 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.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/tranxt.F90
r2528 r2715 56 56 PUBLIC tra_nxt_vvl ! to be used in trcnxt 57 57 58 REAL(wp) :: rbcp ! Brown & Campana parameters for semi-implicit hpg 59 REAL(wp), DIMENSION(jpk) :: r2dt ! vertical profile time step, =2*rdttra (leapfrog) or =rdttra (Euler) 58 REAL(wp) :: rbcp ! Brown & Campana parameters for semi-implicit hpg 60 59 61 60 !! * Substitutions … … 63 62 !!---------------------------------------------------------------------- 64 63 !! NEMO/OPA 3.3 , NEMO-Consortium (2010) 65 !! $Id 66 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)64 !! $Id$ 65 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 67 66 !!---------------------------------------------------------------------- 68 67 CONTAINS … … 104 103 IF(lwp) WRITE(numout,*) '~~~~~~~' 105 104 ! 106 rbcp = 0.25 * (1. + atfp) * (1. + atfp) * ( 1. - atfp)! Brown & Campana parameter for semi-implicit hpg105 rbcp = 0.25 * (1. + atfp) * (1. + atfp) * ( 1. - atfp) ! Brown & Campana parameter for semi-implicit hpg 107 106 ENDIF 108 107 … … 131 130 132 131 ! set time step size (Euler/Leapfrog) 133 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dt (:) = rdttra(:) ! at nit000 (Euler)134 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dt (:) = 2.* rdttra(:) ! at nit000 or nit000+1 (Leapfrog)132 IF( neuler == 0 .AND. kt == nit000 ) THEN ; r2dtra(:) = rdttra(:) ! at nit000 (Euler) 133 ELSEIF( kt <= nit000 + 1 ) THEN ; r2dtra(:) = 2.* rdttra(:) ! at nit000 or nit000+1 (Leapfrog) 135 134 ENDIF 136 135 … … 153 152 ENDIF 154 153 ENDIF 155 154 ! 156 155 #if defined key_agrif 157 156 ! Update tracer at AGRIF zoom boundaries … … 160 159 CALL tra_swap 161 160 #endif 162 161 ! 163 162 ! trends computation 164 163 IF( l_trdtra ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt 165 164 DO jk = 1, jpkm1 166 zfact = 1.e0 / r2dt (jk)165 zfact = 1.e0 / r2dtra(jk) 167 166 ztrdt(:,:,jk) = ( tsb(:,:,jk,jp_tem) - ztrdt(:,:,jk) ) * zfact 168 167 ztrds(:,:,jk) = ( tsb(:,:,jk,jp_sal) - ztrds(:,:,jk) ) * zfact … … 172 171 DEALLOCATE( ztrdt ) ; DEALLOCATE( ztrds ) 173 172 END IF 174 173 ! 175 174 ! ! control print 176 175 IF(ln_ctl) CALL prt_ctl( tab3d_1=tsn(:,:,:,jp_tem), clinfo1=' nxt - Tn: ', mask1=tmask, & … … 203 202 !! - (ta,sa) time averaged (t,s) (ln_dynhpg_imp = T) 204 203 !!---------------------------------------------------------------------- 205 INTEGER , INTENT(in ) :: kt ! ocean time-step index206 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator)207 INTEGER , INTENT(in ) :: kjpt ! number of tracers208 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb ! before tracer fields209 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptn ! now tracer fields210 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend211 ! !204 INTEGER , INTENT(in ) :: kt ! ocean time-step index 205 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 206 INTEGER , INTENT(in ) :: kjpt ! number of tracers 207 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb ! before tracer fields 208 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptn ! now tracer fields 209 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend 210 ! 212 211 INTEGER :: ji, jj, jk, jn ! dummy loop indices 213 212 LOGICAL :: ll_tra_hpg ! local logical … … 270 269 !! - (ta,sa) time averaged (t,s) (ln_dynhpg_imp = T) 271 270 !!---------------------------------------------------------------------- 272 INTEGER , INTENT(in ) :: kt ! ocean time-step index273 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator)274 INTEGER , INTENT(in ) :: kjpt ! number of tracers275 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb ! before tracer fields276 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptn ! now tracer fields277 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend271 INTEGER , INTENT(in ) :: kt ! ocean time-step index 272 CHARACTER(len=3), INTENT(in ) :: cdtype ! =TRA or TRC (tracer indicator) 273 INTEGER , INTENT(in ) :: kjpt ! number of tracers 274 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptb ! before tracer fields 275 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: ptn ! now tracer fields 276 REAL(wp) , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt) :: pta ! tracer trend 278 277 !! 279 278 LOGICAL :: ll_tra, ll_tra_hpg, ll_traqsr ! local logical 280 279 INTEGER :: ji, jj, jk, jn ! dummy loop indices 281 REAL(wp) :: ztc_a , ztc_n , ztc_b ! local scalar 282 REAL(wp) :: ztc_f , ztc_d ! - - 283 REAL(wp) :: ze3t_b, ze3t_n, ze3t_a ! - - 284 REAL(wp) :: ze3t_f, ze3t_d ! - - 285 REAL(wp) :: zfact1, zfact2 ! - - 280 REAL(wp) :: zfact1, ztc_a , ztc_n , ztc_b , ztc_f , ztc_d ! local scalar 281 REAL(wp) :: zfact2, ze3t_b, ze3t_n, ze3t_a, ze3t_f, ze3t_d ! - - 286 282 !!---------------------------------------------------------------------- 287 283
Note: See TracChangeset
for help on using the changeset viewer.