- Timestamp:
- 2018-11-13T18:21:16+01:00 (6 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90
r6486 r10302 1302 1302 1303 1303 SUBROUTINE dia_dct_init ! Dummy routine 1304 WRITE(*,*) 'dia_dct_init: You should not have seen this print! error?', kt 1304 IMPLICIT NONE 1305 WRITE(*,*) 'dia_dct_init: You should not have seen this print! error?' 1305 1306 END SUBROUTINE dia_dct_init 1306 1307 1307 1308 SUBROUTINE dia_dct( kt ) ! Dummy routine 1309 IMPLICIT NONE 1308 1310 INTEGER, INTENT( in ) :: kt ! ocean time-step index 1309 1311 WRITE(*,*) 'dia_dct: You should not have seen this print! error?', kt -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90
r6487 r10302 254 254 IF(lwp) WRITE(numout,*) ' dia_hsb_rst at it= ', kt,' date= ', ndastp 255 255 IF(lwp) WRITE(numout,*) '~~~~~~~' 256 IF(nn_timing == 2) CALL timing_start('iom_rstget') 256 257 CALL iom_get( numror, 'frc_v', frc_v ) 257 258 CALL iom_get( numror, 'frc_t', frc_t ) … … 269 270 CALL iom_get( numror, jpdom_autoglo, 'ssh_sc_loc_ini', ssh_sc_loc_ini ) 270 271 ENDIF 272 IF(nn_timing == 2) CALL timing_stop('iom_rstget') 271 273 ELSE 272 274 IF(lwp) WRITE(numout,*) '~~~~~~~' … … 304 306 IF(lwp) WRITE(numout,*) ' dia_hsb_rst at it= ', kt,' date= ', ndastp 305 307 IF(lwp) WRITE(numout,*) '~~~~~~~' 306 308 IF(nn_timing == 2) CALL timing_start('iom_rstput') 307 309 CALL iom_rstput( kt, nitrst, numrow, 'frc_v' , frc_v ) 308 310 CALL iom_rstput( kt, nitrst, numrow, 'frc_t' , frc_t ) … … 320 322 CALL iom_rstput( kt, nitrst, numrow, 'ssh_sc_loc_ini', ssh_sc_loc_ini ) 321 323 ENDIF 324 IF(nn_timing == 2) CALL timing_stop('iom_rstput') 322 325 ! 323 326 ENDIF -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diahth.F90
r6486 r10302 343 343 CONTAINS 344 344 SUBROUTINE dia_hth( kt ) ! Empty routine 345 WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 345 IMPLICIT NONE 346 INTEGER, INTENT( in ) :: kt ! ocean time-step index 347 WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 346 348 END SUBROUTINE dia_hth 347 349 #endif -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90
r7747 r10302 84 84 REAL(wp), DIMENSION(jpi,jpj) :: z2d ! 2D workspace 85 85 REAL(wp), DIMENSION(jpi,jpj,jpk) :: z3d ! 3D workspace 86 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zvn ! 3D workspace 86 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zmask ! 3D workspace 87 88 REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) :: zts ! 3D workspace … … 93 94 REAL(wp), DIMENSION(jpj,jpk,nptr) :: sjk , r1_sjk ! i-mean i-k-surface and its inverse 94 95 REAL(wp), DIMENSION(jpj,jpk,nptr) :: v_msf, sn_jk , tn_jk ! i-mean T and S, j-Stream-Function 95 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zvn ! 3D workspace96 96 97 97 … … 102 102 103 103 ! 104 z2d(:,:) = 0._wp 104 105 z3d(:,:,:) = 0._wp 105 106 IF( PRESENT( pvtr ) ) THEN … … 130 131 zmask(:,:,:) = 0._wp 131 132 zts(:,:,:,:) = 0._wp 132 zvn(:,:,:) = 0._wp133 133 DO jk = 1, jpkm1 134 134 DO jj = 1, jpjm1 … … 138 138 zts(ji,jj,jk,jp_tem) = (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * 0.5 * zvfc !Tracers averaged onto V grid 139 139 zts(ji,jj,jk,jp_sal) = (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) * 0.5 * zvfc 140 zvn(ji,jj,jk) = vn(ji,jj,jk) * zvfc141 140 ENDDO 142 141 ENDDO … … 151 150 tn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_tem) ) * r1_sjk(:,:,1) 152 151 sn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_sal) ) * r1_sjk(:,:,1) 153 v_msf(:,:,1) = ptr_sjk( zvn(:,:,:) )152 v_msf(:,:,1) = ptr_sjk( pvtr(:,:,:) ) 154 153 155 154 htr_ove(:,1) = SUM( v_msf(:,:,1)*tn_jk(:,:,1) ,2 ) … … 177 176 tn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 178 177 sn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 179 v_msf(:,:,jn) = ptr_sjk( zvn(:,:,:), btmsk(:,:,jn) )178 v_msf(:,:,jn) = ptr_sjk( pvtr(:,:,:), btmsk(:,:,jn) ) 180 179 htr_ove(:,jn) = SUM( v_msf(:,:,jn)*tn_jk(:,:,jn) ,2 ) 181 180 str_ove(:,jn) = SUM( v_msf(:,:,jn)*sn_jk(:,:,jn) ,2 ) … … 202 201 WHERE( sjk(:,1,1) /= 0._wp ) r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 203 202 204 vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,1))203 vsum = ptr_sj( pvtr(:,:,:), btmsk(:,:,1)) 205 204 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 206 205 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) … … 224 223 r1_sjk(:,1,jn) = 0._wp 225 224 WHERE( sjk(:,1,jn) /= 0._wp ) r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 226 vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,jn))225 vsum = ptr_sj( pvtr(:,:,:), btmsk(:,:,jn)) 227 226 tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 228 227 tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) … … 248 247 ! 249 248 IF( iom_use("zotemglo") ) THEN ! i-mean i-k-surface 249 zmask(:,:,:) = 0._wp 250 zts(:,:,:,:) = 0._wp 250 251 DO jk = 1, jpkm1 251 252 DO jj = 1, jpj … … 408 409 ENDIF 409 410 IF( iom_use("zomsfeivglo") ) THEN 410 z3d(1,:,:) = ptr_sjk( v_eiv(:,:,:) ) ! zonal cumulative effective transport 411 DO jk=1,jpk 412 DO jj=1,jpj 413 DO ji=1,jpi 414 zvn(ji,jj,jk) = v_eiv(ji,jj,jk) * fse3v(ji,jj,jk) * e1v(ji,jj) 415 ENDDO 416 ENDDO 417 ENDDO 418 z3d(1,:,:) = ptr_sjk( zvn(:,:,:) ) ! zonal cumulative effective transport 411 419 DO jk = jpkm1,1,-1 412 420 z3d(1,:,jk) = z3d(1,:,jk+1) - z3d(1,:,jk) ! effective j-Stream-Function (MSF) … … 419 427 IF( ln_subbas ) THEN 420 428 DO jn = 2, nptr ! by sub-basins 421 z3d(1,:,:) = ptr_sjk( v_eiv(:,:,:), btmsk(:,:,jn) )429 z3d(1,:,:) = ptr_sjk( zvn(:,:,:), btmsk(:,:,jn) ) 422 430 DO jk = jpkm1,1,-1 423 431 z3d(1,:,jk) = z3d(1,:,jk+1) - z3d(1,:,jk) ! effective j-Stream-Function (MSF) … … 492 500 493 501 IF( ln_subbas ) THEN ! load sub-basin mask 494 CALL iom_open( 'subbasins', inum, ldstop = . FALSE. )502 CALL iom_open( 'subbasins', inum, ldstop = .TRUE. ) 495 503 CALL iom_get( inum, jpdom_data, 'atlmsk', btmsk(:,:,2) ) ! Atlantic basin 496 504 CALL iom_get( inum, jpdom_data, 'pacmsk', btmsk(:,:,3) ) ! Pacific basin -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r8400 r10302 246 246 z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:) 247 247 END DO 248 CALL lbc_lnk( z3d(:,:,:), 'W', 1. ) 248 249 CALL iom_put( "w_masstr" , z3d ) 249 250 IF( iom_use('w_masstr2') ) CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) … … 252 253 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. 253 254 CALL iom_put( "avm" , avmu ) ! T vert. eddy visc. coef. 255 #if defined key_zdftke 254 256 IF( lk_zdftke ) THEN 255 257 CALL iom_put( "tke" , en ) ! TKE budget: Turbulent Kinetic Energy 256 258 CALL iom_put( "tke_niw" , e_niw ) ! TKE budget: Near-inertial waves 257 259 ENDIF 260 #endif 258 261 CALL iom_put( "avs" , fsavs(:,:,:) ) ! S vert. eddy diff. coef. (useful only with key_zdfddm) 259 262 ! Log of eddy diff coef … … 334 337 z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 335 338 END DO 339 CALL lbc_lnk( z3d(:,:,:), 'U', -1. ) 336 340 CALL iom_put( "u_masstr", z3d ) ! mass transport in i-direction 341 CALL lbc_lnk( z2d(:,:), 'U', -1. ) 337 342 CALL iom_put( "u_masstr_vint", z2d ) ! mass transport in i-direction vertical sum 338 343 ENDIF … … 370 375 z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk) 371 376 END DO 377 CALL lbc_lnk( z3d(:,:,:), 'V', -1. ) 372 378 CALL iom_put( "v_masstr", z3d ) ! mass transport in j-direction 373 379 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.