Changeset 5601 for branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_crs.F90
- Timestamp:
- 2015-07-16T11:04:29+02:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_iso_crs.F90
r5105 r5601 19 19 !! the isopycnal or geopotential s-coord. operator 20 20 !!---------------------------------------------------------------------- 21 USE oce ! ocean dynamics and active tracers22 USE dom_oce ! ocean space and time domain23 USE trc_oce ! share passive tracers/Ocean variables24 USE zdf_oce ! ocean vertical physics25 USE ldftra_oce ! ocean active tracers: lateral physics26 !USE ldfslp ! iso-neutral slopes21 ! USE oce ! ocean dynamics and active tracers 22 ! USE dom_oce ! ocean space and time domain 23 ! USE trc_oce ! share passive tracers/Ocean variables 24 ! USE zdf_oce ! ocean vertical physics 25 ! USE ldftra_oce ! ocean active tracers: lateral physics 26 ! USE ldfslp ! iso-neutral slopes 27 27 USE ldfslp_crs ! iso-neutral slopes 28 28 USE diaptr ! poleward transport diagnostics … … 35 35 USE wrk_nemo ! Memory Allocation 36 36 USE timing ! Timing 37 USE crs 37 ! USE crs 38 USE oce_trc 39 USE iom, ONLY : iom_put,iom_swap 38 40 39 41 IMPLICIT NONE … … 94 96 !! ** Action : Update pta arrays with the before rotated diffusion 95 97 !!---------------------------------------------------------------------- 96 USE oce , ONLY: zftu => ua , zftv => va ! (ua,va) used as workspace97 98 ! 98 99 INTEGER , INTENT(in ) :: kt ! ocean time-step index … … 113 114 #endif 114 115 REAL(wp), POINTER, DIMENSION(:,: ) :: zdkt, zdk1t, z2d 115 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, ztfw 116 REAL(wp), POINTER, DIMENSION(:,:,:) :: zdit, zdjt, ztfw , zftu, zftv 116 117 !!---------------------------------------------------------------------- 117 118 ! … … 119 120 ! 120 121 CALL wrk_alloc( jpi, jpj, zdkt, zdk1t, z2d ) 121 CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw )122 CALL wrk_alloc( jpi, jpj, jpk, zdit, zdjt, ztfw , zftu, zftv ) 122 123 ! 123 124 … … 149 150 END DO 150 151 END DO 151 ! WRITE(numout,*) ' test1 ', zdit152 !cc commenté pour le test concluant de TMP16 --> pgu mauvais, correction dans153 !zpshde_crs ( probleme de signe lorsque ze3wu negatif, de mem pour pgv)154 152 IF( ln_zps ) THEN ! partial steps correction at the last ocean level 155 153 DO jj = 1, jpjm1 … … 160 158 END DO 161 159 ENDIF 162 !cc163 ! WRITE(numout,*) ' test2 ', zdit164 160 165 161 !!---------------------------------------------------------------------- … … 183 179 DO jj = 1 , jpjm1 184 180 DO ji = 1, fs_jpim1 ! vector opt. 185 ! zabe1 = ( fsahtu(ji,jj,jk) + pahtb0 ) * e2e3u_msk(ji,jj,jk) / e1u_crs(ji,jj) 186 zabe1 = ( fsahtu(ji,jj,jk) + pahtb0 ) * e2e3u_msk(ji,jj,jk) / e1u_crs(ji,jj) 187 ! zabe2 = ( fsahtv(ji,jj,jk) + pahtb0 ) * e1e3v_msk(ji,jj,jk) / e2v_crs(ji,jj) 188 zabe2 = ( fsahtv(ji,jj,jk) + pahtb0 ) * e1e3v_msk(ji,jj,jk) / e2v_crs(ji,jj) 181 zabe1 = ( fsahtu(ji,jj,jk) + pahtb0 ) * e2e3u_msk(ji,jj,jk) / e1u_crs(ji,jj) 182 zabe2 = ( fsahtv(ji,jj,jk) + pahtb0 ) * e1e3v_msk(ji,jj,jk) / e2v_crs(ji,jj) 189 183 190 184 zmsku = 1. / MAX( tmask_crs(ji+1,jj,jk ) + tmask_crs(ji,jj,jk+1) & … … 194 188 & + tmask_crs(ji,jj+1,jk+1) + tmask_crs(ji,jj,jk ), 1. ) 195 189 ! 196 ! zcof1 = - fsahtu(ji,jj,jk) * e2e3u_msk(ji,jj,jk) * uslp_crs(ji,jj,jk) * zmsku / MAX( 1._wp , e3u_max_crs(ji,jj,jk)) vue avec Gurvan OK 197 zcof1 = - fsahtu(ji,jj,jk) * e2e3u_msk(ji,jj,jk) * uslp_crs(ji,jj,jk) * zmsku / MAX( 1._wp , e3u_max_crs(ji,jj,jk)) 198 ! zcof2 = - fsahtv(ji,jj,jk) * e1e3v_msk(ji,jj,jk) * vslp_crs(ji,jj,jk) * zmskv / MAX( 1._wp , e3v_max_crs(ji,jj,jk)) vue avec Gurvan OK 199 zcof2 = - fsahtv(ji,jj,jk) * e1e3v_msk(ji,jj,jk) * vslp_crs(ji,jj,jk) * zmskv / MAX( 1._wp , e3v_max_crs(ji,jj,jk)) 200 ! zcof1 = - fsahtu(ji,jj,jk) * e2u_crs(ji,jj) * uslp(ji,jj,jk) * zmsku 201 ! zcof2 = - fsahtv(ji,jj,jk) * e1v_crs(ji,jj) * vslp(ji,jj,jk) * zmskv 190 zcof1 = - fsahtu(ji,jj,jk) * e2e3u_msk(ji,jj,jk) * uslp_crs(ji,jj,jk) * zmsku / MAX( 1._wp , e3u_max_crs(ji,jj,jk)) 191 zcof2 = - fsahtv(ji,jj,jk) * e1e3v_msk(ji,jj,jk) * vslp_crs(ji,jj,jk) * zmskv / MAX( 1._wp , e3v_max_crs(ji,jj,jk)) 202 192 ! 203 193 zftu(ji,jj,jk ) = ( zabe1 * zdit(ji,jj,jk) & … … 209 199 END DO 210 200 END DO 201 CALL iom_swap( "nemo_crs" ) 202 CALL iom_put( "zftu" , zftu ) 203 CALL iom_put( "zftv" , zftv ) 204 CALL iom_swap( "nemo" ) 211 205 212 206 ! II.4 Second derivative (divergence) and add to the general trend … … 285 279 zcoef3 = zcoef0 * e1e2w_crs(ji,jj,jk) * zmsku * wslpi_crs(ji,jj,jk) / e1t_crs(ji,jj) 286 280 zcoef4 = zcoef0 * e1e2w_crs(ji,jj,jk) * zmskv * wslpj_crs(ji,jj,jk) / e2t_crs(ji,jj) 287 ! zcoef3 = zcoef0 * e2t_crs(ji,jj) * zmsku * wslpi (ji,jj,jk)288 ! zcoef4 = zcoef0 * e1t_crs(ji,jj) * zmskv * wslpj (ji,jj,jk)289 281 ztfw(ji,jj,jk) = zcoef3 * ( zdit(ji ,jj ,jk-1) + zdit(ji-1,jj ,jk) & 290 282 & + zdit(ji-1,jj ,jk-1) + zdit(ji ,jj ,jk) ) & … … 312 304 ! 313 305 CALL wrk_dealloc( jpi, jpj, zdkt, zdk1t, z2d ) 314 CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt, ztfw )306 CALL wrk_dealloc( jpi, jpj, jpk, zdit, zdjt, ztfw , zftu, zftv ) 315 307 ! 316 308 IF( nn_timing == 1 ) CALL timing_stop('tra_ldf_iso')
Note: See TracChangeset
for help on using the changeset viewer.