Changeset 15087
- Timestamp:
- 2021-07-06T12:32:09+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/DIA/diawri.F90
r15017 r15087 135 135 ENDIF 136 136 137 ! initialize arrays 138 z2d(:,:) = 0._wp 139 z3d(:,:,:) = 0._wp 140 137 141 ! Output of initial vertical scale factor 138 142 CALL iom_put("e3t_0", e3t_0(:,:,:) ) … … 142 146 ! 143 147 IF ( iom_use("tpt_dep") ) THEN 144 DO jk = 1, jpk145 z3d( :,:,jk) = gdept(:,:,jk,Kmm)146 END DO148 DO_3D( 0, 0, 0, 0, 1, jpk ) 149 z3d(ji,jj,jk) = gdept(ji,jj,jk,Kmm) 150 END_3D 147 151 CALL iom_put( "tpt_dep", z3d ) 148 152 ENDIF 149 153 154 ! --- vertical scale factors --- ! 150 155 IF ( iom_use("e3t") .OR. iom_use("e3tdef") ) THEN ! time-varying e3t 151 DO jk = 1, jpk152 z3d( :,:,jk) = e3t(:,:,jk,Kmm)153 END DO156 DO_3D( 0, 0, 0, 0, 1, jpk ) 157 z3d(ji,jj,jk) = e3t(ji,jj,jk,Kmm) 158 END_3D 154 159 CALL iom_put( "e3t", z3d ) 155 160 IF ( iom_use("e3tdef") ) THEN 156 z3d(:,:,:) = ( ( z3d(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100._wp * tmask(:,:,:) ) ** 2 161 DO_3D( 0, 0, 0, 0, 1, jpk ) 162 z3d(ji,jj,jk) = ( ( z3d(ji,jj,jk) - e3t_0(ji,jj,jk) ) / e3t_0(ji,jj,jk) * 100._wp * tmask(ji,jj,jk) ) ** 2 163 END_3D 157 164 CALL iom_put( "e3tdef", z3d ) 158 165 ENDIF 159 166 ENDIF 160 167 IF ( iom_use("e3u") ) THEN ! time-varying e3u 161 DO jk = 1, jpk162 z3d( :,:,jk) = e3u(:,:,jk,Kmm)163 END DO168 DO_3D( 0, 0, 0, 0, 1, jpk ) 169 z3d(ji,jj,jk) = e3u(ji,jj,jk,Kmm) 170 END_3D 164 171 CALL iom_put( "e3u" , z3d ) 165 172 ENDIF 166 173 IF ( iom_use("e3v") ) THEN ! time-varying e3v 167 DO jk = 1, jpk168 z3d( :,:,jk) = e3v(:,:,jk,Kmm)169 END DO174 DO_3D( 0, 0, 0, 0, 1, jpk ) 175 z3d(ji,jj,jk) = e3v(ji,jj,jk,Kmm) 176 END_3D 170 177 CALL iom_put( "e3v" , z3d ) 171 178 ENDIF 172 179 IF ( iom_use("e3w") ) THEN ! time-varying e3w 173 DO jk = 1, jpk174 z3d( :,:,jk) = e3w(:,:,jk,Kmm)175 END DO180 DO_3D( 0, 0, 0, 0, 1, jpk ) 181 z3d(ji,jj,jk) = e3w(ji,jj,jk,Kmm) 182 END_3D 176 183 CALL iom_put( "e3w" , z3d ) 177 184 ENDIF 178 185 IF ( iom_use("e3f") ) THEN ! time-varying e3f caution here at Kaa 179 DO jk = 1, jpk180 z3d( :,:,jk) = e3f(:,:,jk)181 END DO186 DO_3D( 0, 0, 0, 0, 1, jpk ) 187 z3d(ji,jj,jk) = e3f(ji,jj,jk) 188 END_3D 182 189 CALL iom_put( "e3f" , z3d ) 183 190 ENDIF … … 199 206 IF( iom_use("hf") ) CALL iom_put( "hf" , hf_0(:,:)*( 1._wp + r3f(:,:) ) ) ! water column at f-point (caution here at Naa) 200 207 #endif 201 208 209 ! --- tracers T&S --- ! 202 210 CALL iom_put( "toce", ts(:,:,:,jp_tem,Kmm) ) ! 3D temperature 203 211 CALL iom_put( "sst", ts(:,:,1,jp_tem,Kmm) ) ! surface temperature 212 204 213 IF ( iom_use("sbt") ) THEN 205 214 DO_2D( 0, 0, 0, 0 ) … … 222 231 IF( .NOT.lk_SWE ) CALL iom_put( "rhop", rhop(:,:,:) ) ! 3D potential density (sigma0) 223 232 233 ! --- momentum --- ! 224 234 IF ( iom_use("taubot") ) THEN ! bottom stress 225 235 zztmp = rho0 * 0.25_wp … … 257 267 258 268 ! ! vertical velocity 259 IF( ln_zad_Aimp ) THEN ; IF( iom_use('woce') ) CALL iom_put( "woce", ww + wi ) ! explicit plus implicit parts 260 ELSE ; CALL iom_put( "woce", ww ) 269 IF( ln_zad_Aimp ) THEN 270 IF( iom_use('woce') ) THEN 271 DO_3D( 0, 0, 0, 0, 1, jpk ) 272 z3d(ji,jj,jk) = ww(ji,jj,jk) + wi(ji,jj,jk) 273 END_3D 274 CALL iom_put( "woce", z3d ) ! explicit plus implicit parts 275 ENDIF 276 ELSE 277 CALL iom_put( "woce", ww ) 261 278 ENDIF 262 279 263 280 IF( iom_use('w_masstr') .OR. iom_use('w_masstr2') ) THEN ! vertical mass transport & its square value 264 281 ! ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 265 DO jk = 1, jpk 266 IF( ln_zad_Aimp ) THEN 267 z3d(:,:,jk) = rho0 * e1e2t(:,:) * ( ww(:,:,jk) + wi(:,:,jk) ) 268 ELSE 269 z3d(:,:,jk) = rho0 * e1e2t(:,:) * ww(:,:,jk) 270 ENDIF 271 END DO 282 IF( ln_zad_Aimp ) THEN 283 DO_3D( 0, 0, 0, 0, 1, jpk ) 284 z3d(ji,jj,jk) = rho0 * e1e2t(ji,jj) * ( ww(ji,jj,jk) + wi(ji,jj,jk) ) 285 END_3D 286 ELSE 287 DO_3D( 0, 0, 0, 0, 1, jpk ) 288 z3d(ji,jj,jk) = rho0 * e1e2t(ji,jj) * ww(ji,jj,jk) 289 END_3D 290 ENDIF 272 291 CALL iom_put( "w_masstr" , z3d ) 273 292 IF( iom_use('w_masstr2') ) CALL iom_put( "w_masstr2", z3d * z3d ) … … 341 360 ! 342 361 IF ( iom_use("ke") .OR. iom_use("ke_int") ) THEN 343 z3d(:,:,jpk) = 0._wp 344 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 362 DO_3D( 0, 0, 0, 0, 1, jpk ) 345 363 zztmpx = uu(ji-1,jj ,jk,Kmm) + uu(ji,jj,jk,Kmm) 346 364 zztmpy = vv(ji ,jj-1,jk,Kmm) + vv(ji,jj,jk,Kmm) … … 384 402 IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 385 403 386 z3d(:,:,jpk) = 0._wp 387 DO jk = 1, jpkm1 388 z3d(:,:,jk) = rho0 * uu(:,:,jk,Kmm) * e2u(:,:) * e3u(:,:,jk,Kmm) * umask(:,:,jk) 389 END DO 404 DO_3D( 0, 0, 0, 0, 1, jpk ) 405 z3d(ji,jj,jk) = rho0 * uu(ji,jj,jk,Kmm) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) * umask(ji,jj,jk) 406 END_3D 390 407 CALL iom_put( "u_masstr" , z3d ) ! mass transport in i-direction 391 408 … … 393 410 z2d(:,:) = 0._wp 394 411 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 395 z2d( :,:) = z2d(:,:) + z3d(:,:,jk)412 z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) 396 413 END_3D 397 414 CALL iom_put( "u_masstr_vint", z2d ) ! mass transport in i-direction vertical sum … … 417 434 IF( iom_use("v_masstr") .OR. iom_use("v_heattr") .OR. iom_use("v_salttr") ) THEN 418 435 419 z3d(:,:,jpk) = 0._wp 420 DO jk = 1, jpkm1 421 z3d(:,:,jk) = rho0 * vv(:,:,jk,Kmm) * e1v(:,:) * e3v(:,:,jk,Kmm) * vmask(:,:,jk) 422 END DO 436 DO_3D( 0, 0, 0, 0, 1, jpk ) 437 z3d(ji,jj,jk) = rho0 * vv(ji,jj,jk,Kmm) * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) * vmask(ji,jj,jk) 438 END_3D 423 439 CALL iom_put( "v_masstr", z3d ) ! mass transport in j-direction 424 440
Note: See TracChangeset
for help on using the changeset viewer.