Changeset 7600 for branches/UKMO
- Timestamp:
- 2017-01-23T19:26:11+01:00 (7 years ago)
- Location:
- branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/CONFIG/SHARED/field_def.xml
r5517 r7600 374 374 <field id="uocet" long_name="ocean transport along i-axis times temperature (CRS)" unit="degC*m/s" grid_ref="grid_U_3D" /> 375 375 <field id="uoces" long_name="ocean transport along i-axis times salinity (CRS)" unit="1e-3*m/s" grid_ref="grid_U_3D" /> 376 <field id="ustokes" long_name="Stokes Drift Velocity i-axis" standard_name="StokesDrift_x_velocity" unit="m/s" grid_ref="grid_U_3D" /> 377 <field id="ustokes_e3u" long_name="Stokes Drift Velocity i-axis (thickness weighted)" unit="m/s" grid_ref="grid_U_3D" > ustokes * e3u </field> 376 378 377 379 <!-- variables available with MLE --> … … 409 411 <field id="vocet" long_name="ocean transport along j-axis times temperature (CRS)" unit="degC*m/s" grid_ref="grid_V_3D" /> 410 412 <field id="voces" long_name="ocean transport along j-axis times salinity (CRS)" unit="1e-3*m/s" grid_ref="grid_V_3D" /> 413 <field id="vstokes" long_name="Stokes Drift Velocity j-axis" standard_name="StokesDrift_y_velocity" unit="m/s" grid_ref="grid_V_3D" /> 414 <field id="vstokes_e3v" long_name="Stokes Drift Velocity j-axis (thickness weighted)" unit="m/s" grid_ref="grid_V_3D" > vstokes * e3v </field> 411 415 412 416 <!-- variables available with MLE --> … … 437 441 <field id="woce" long_name="ocean vertical velocity" standard_name="upward_sea_water_velocity" unit="m/s" /> 438 442 <field id="wocetr_eff" long_name="effective ocean vertical transport" unit="m3/s" /> 443 <field id="wstokes" long_name="Stokes Drift vertical velocity" standard_name="upward_StokesDrift_velocity" unit="m/s" /> 439 444 440 445 <!-- woce_eiv: available with key_traldf_eiv and key_diaeiv --> -
branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r7470 r7600 41 41 USE zdfddm ! vertical physics: double diffusion 42 42 USE diahth ! thermocline diagnostics 43 USE sbcwave ! wave parameters 43 44 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 44 45 USE in_out_manager ! I/O manager … … 682 683 CALL histdef( nid_U, "vozocrtx", "Zonal Current" , "m/s" , & ! un 683 684 & jpi, jpj, nh_U, ipk, 1, ipk, nz_U, 32, clop, zsto, zout ) 685 IF( ln_wave .AND. ln_sdw) THEN 686 CALL histdef( nid_U, "sdzocrtx", "Stokes Drift Zonal Current" , "m/s" , & ! usd 687 & jpi, jpj, nh_U, ipk, 1, ipk, nz_U, 32, clop, zsto, zout ) 688 ENDIF 684 689 IF( ln_traldf_gdia ) THEN 685 690 CALL histdef( nid_U, "vozoeivu", "Zonal EIV Current" , "m/s" , & ! u_eiv … … 700 705 CALL histdef( nid_V, "vomecrty", "Meridional Current" , "m/s" , & ! vn 701 706 & jpi, jpj, nh_V, ipk, 1, ipk, nz_V, 32, clop, zsto, zout ) 707 IF( ln_wave .AND. ln_sdw) THEN 708 CALL histdef( nid_V, "sdmecrty", "Stokes Drift Meridional Current" , "m/s" , & ! vsd 709 & jpi, jpj, nh_V, ipk, 1, ipk, nz_V, 32, clop, zsto, zout ) 710 ENDIF 702 711 IF( ln_traldf_gdia ) THEN 703 712 CALL histdef( nid_V, "vomeeivv", "Meridional EIV Current" , "m/s" , & ! v_eiv … … 736 745 & jpi, jpj, nh_W, ipk, 1, ipk, nz_W, 32, clop, zsto, zout ) 737 746 ENDIF 747 748 IF( ln_wave .AND. ln_sdw) THEN 749 CALL histdef( nid_W, "sdvecrtz", "Stokes Drift Vertical Current" , "m/s" , & ! wsd 750 & jpi, jpj, nh_W, ipk, 1, ipk, nz_W, 32, clop, zsto, zout ) 751 ENDIF 738 752 ! !!! nid_W : 2D 739 753 #if defined key_traldf_c2d … … 916 930 #endif 917 931 932 IF( ln_wave .AND. ln_sdw ) THEN 933 CALL histwrite( nid_U, "sdzocrtx", it, usd , ndim_U , ndex_U ) ! i-StokesDrift-current 934 CALL histwrite( nid_V, "sdmecrty", it, vsd , ndim_V , ndex_V ) ! j-StokesDrift-current 935 CALL histwrite( nid_W, "sdvecrtz", it, wsd , ndim_T , ndex_T ) ! StokesDrift vert. current 936 ENDIF 937 918 938 ! 3. Close all files 919 939 ! --------------------------------------- … … 1021 1041 & jpi, jpj, nh_i, jpk, 1, jpk, nz_i, 32, clop, zsto, zout ) 1022 1042 END IF 1043 ! 1044 IF( ln_wave .AND. ln_sdw ) THEN 1045 CALL histdef( id_i, "sdzocrtx", "Stokes Drift Zonal", "m/s" , & ! StokesDrift zonal current 1046 & jpi, jpj, nh_i, jpk, 1, jpk, nz_i, 32, clop, zsto, zout ) 1047 CALL histdef( id_i, "sdmecrty", "Stokes Drift Merid", "m/s" , & ! StokesDrift meridonal current 1048 & jpi, jpj, nh_i, jpk, 1, jpk, nz_i, 32, clop, zsto, zout ) 1049 CALL histdef( id_i, "sdvecrtz", "Stokes Drift Vert", "m/s" , & ! StokesDrift vertical current 1050 & jpi, jpj, nh_i, jpk, 1, jpk, nz_i, 32, clop, zsto, zout ) 1051 ENDIF 1023 1052 1024 1053 #if defined key_lim2 … … 1054 1083 CALL histwrite( id_i, "vovvle3t", kt, fse3t_n (:,:,:), jpi*jpj*jpk, idex )! T-cell thickness 1055 1084 END IF 1085 1086 IF( ln_wave .AND. ln_sdw ) THEN 1087 CALL histwrite( id_i, "sdzocrtx", kt, usd , jpi*jpj*jpk, idex) ! now StokesDrift i-velocity 1088 CALL histwrite( id_i, "sdmecrty", kt, vsd , jpi*jpj*jpk, idex) ! now StokesDrift j-velocity 1089 CALL histwrite( id_i, "sdvecrtz", kt, wsd , jpi*jpj*jpk, idex) ! now StokesDrift k-velocity 1090 ENDIF 1056 1091 1057 1092 ! 3. Close the file -
branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r7481 r7600 34 34 USE sbcwave ! surface wave 35 35 ! 36 USE sbcwave ! surface wave37 36 USE lib_mpp ! distributed memory computing library 38 37 USE lbclnk ! ocean lateral boundary conditions (or mpp link) … … 334 333 END DO 335 334 END DO 335 336 !!gm Question here when removing the Vertically integrated trends, we remove the vertically integrated NL trends on momentum.... 337 !!gm Is it correct to do so ? I think so... 338 339 336 340 ! !* barotropic Coriolis trends (vorticity scheme dependent) 337 341 ! ! -------------------------------------------------------- … … 463 467 & + fwfisf(:,:) + fwfisf_b(:,:) ) 464 468 ENDIF 469 ! 470 IF( ln_sdw ) THEN ! Stokes drift divergence added if necessary 471 zssh_frc(:,:) = zssh_frc(:,:) + div_sd(:,:) 472 ENDIF 473 ! 465 474 ! 466 475 IF( ln_sdw ) THEN ! Stokes drift divergence added if necessary -
branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r7481 r7600 16 16 !! 3.3 ! 2010-10 (C. Ethe, G. Madec) reorganisation of initialisation phase 17 17 !! 3.7 ! 2014-04 (G. Madec) trend simplification: suppress jpdyn_trd_dat vorticity 18 !! - ! 2016-12 (G. Madec, E. Clementi) add Stokes-Coriolis trends (ln_stcor=T) 18 19 !!---------------------------------------------------------------------- 19 20 … … 222 223 !!---------------------------------------------------------------------- 223 224 ! 224 INTEGER , INTENT(in ) :: kt ! ocean time-step index225 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ;226 ! ! =nrvm (relative vorticity or metric)227 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend228 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend225 INTEGER , INTENT(in ) :: kt ! ocean time-step index 226 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ; 227 ! ! =nrvm (relative vorticity or metric) 228 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend 229 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 229 230 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pun, pvn ! now velocities 230 231 ! … … 259 260 DO ji = 1, fs_jpim1 ! vector opt. 260 261 zwz(ji,jj) = ( e2v(ji+1,jj ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk) & 261 & - e1u(ji ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) * r1_e12f(ji,jj)262 & - e1u(ji ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 262 263 END DO 263 264 END DO … … 267 268 zwz(ji,jj) = ( ( pvn(ji+1,jj ,jk) + pvn(ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 268 269 & - ( pun(ji ,jj+1,jk) + pun(ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 269 & * 0.5 * r1_e12f(ji,jj)270 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) 270 271 END DO 271 272 END DO … … 275 276 zwz(ji,jj) = ff(ji,jj) + ( e2v(ji+1,jj ) * pvn(ji+1,jj ,jk) - e2v(ji,jj) * pvn(ji,jj,jk) & 276 277 & - e1u(ji ,jj+1) * pun(ji ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) & 277 & * r1_e12f(ji,jj)278 & / ( e1f(ji,jj) * e2f(ji,jj) ) 278 279 END DO 279 280 END DO … … 284 285 & + ( ( pvn(ji+1,jj ,jk) + pvn(ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 285 286 & - ( pun(ji ,jj+1,jk) + pun(ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 286 & * 0.5 * r1_e12f(ji,jj)287 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) 287 288 END DO 288 289 END DO 289 290 END SELECT 290 291 291 zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 292 zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 293 zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 292 IF( ln_sco ) THEN 293 zwz(:,:) = zwz(:,:) / fse3f(:,:,jk) 294 zwx(:,:) = e2u(:,:) * fse3u(:,:,jk) * pun(:,:,jk) 295 zwy(:,:) = e1v(:,:) * fse3v(:,:,jk) * pvn(:,:,jk) 296 ELSE 297 zwx(:,:) = e2u(:,:) * pun(:,:,jk) 298 zwy(:,:) = e1v(:,:) * pvn(:,:,jk) 299 ENDIF 294 300 295 301 ! Compute and add the vorticity term trend … … 459 465 !!---------------------------------------------------------------------- 460 466 ! 461 INTEGER , INTENT(in ) :: kt ! ocean time-step index462 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ;463 ! ! =nrvm (relative vorticity or metric)464 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend465 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend467 INTEGER , INTENT(in ) :: kt ! ocean time-step index 468 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ; 469 ! ! =nrvm (relative vorticity or metric) 470 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend 471 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 466 472 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pun, pvn ! now velocities 467 473 ! … … 496 502 DO ji = 1, fs_jpim1 ! vector opt. 497 503 zwz(ji,jj) = ( e2v(ji+1,jj ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk) & 498 & - e1u(ji ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) * r1_e12f(ji,jj)504 & - e1u(ji ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) / ( e1f(ji,jj) * e2f(ji,jj) ) 499 505 END DO 500 506 END DO … … 504 510 zwz(ji,jj) = ( ( pvn(ji+1,jj ,jk) + pvn(ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 505 511 & - ( pun(ji ,jj+1,jk) + pun(ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 506 & * 0.5 * r1_e12f(ji,jj)512 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) 507 513 END DO 508 514 END DO … … 512 518 zwz(ji,jj) = ff(ji,jj) + ( e2v(ji+1,jj ) * pvn(ji+1,jj ,jk) - e2v(ji,jj) * pvn(ji,jj,jk) & 513 519 & - e1u(ji ,jj+1) * pun(ji ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) & 514 & * r1_e12f(ji,jj)520 & / ( e1f(ji,jj) * e2f(ji,jj) ) 515 521 END DO 516 522 END DO … … 521 527 & + ( ( pvn(ji+1,jj ,jk) + pvn(ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 522 528 & - ( pun(ji ,jj+1,jk) + pun(ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 523 & * 0.5 * r1_e12f(ji,jj)529 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) 524 530 END DO 525 531 END DO 526 532 END SELECT 527 ! !== horizontal fluxes ==! 528 zwz(:,:) = zwz(:,:) / e3f_n(:,:,jk) 529 zwx(:,:) = e2u(:,:) * e3u_n(:,:,jk) * pun(:,:,jk) 530 zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * pvn(:,:,jk) 533 ! 534 IF( ln_sco ) THEN 535 DO jj = 1, jpj ! caution: don't use (:,:) for this loop 536 DO ji = 1, jpi ! it causes optimization problems on NEC in auto-tasking 537 zwz(ji,jj) = zwz(ji,jj) / fse3f(ji,jj,jk) 538 zwx(ji,jj) = e2u(ji,jj) * fse3u(ji,jj,jk) * pun(ji,jj,jk) 539 zwy(ji,jj) = e1v(ji,jj) * fse3v(ji,jj,jk) * pvn(ji,jj,jk) 540 END DO 541 END DO 542 ELSE 543 DO jj = 1, jpj ! caution: don't use (:,:) for this loop 544 DO ji = 1, jpi ! it causes optimization problems on NEC in auto-tasking 545 zwx(ji,jj) = e2u(ji,jj) * pun(ji,jj,jk) 546 zwy(ji,jj) = e1v(ji,jj) * pvn(ji,jj,jk) 547 END DO 548 END DO 549 ENDIF 550 531 551 ! 532 552 ! Compute and add the vorticity term trend … … 570 590 !!---------------------------------------------------------------------- 571 591 ! 572 INTEGER , INTENT(in ) :: kt ! ocean time-step index573 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ;574 ! ! =nrvm (relative vorticity or metric)575 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend576 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend592 INTEGER , INTENT(in ) :: kt ! ocean time-step index 593 INTEGER , INTENT(in ) :: kvor ! =ncor (planetary) ; =ntot (total) ; 594 ! ! =nrvm (relative vorticity or metric) 595 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pua ! total u-trend 596 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pva ! total v-trend 577 597 REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) :: pun, pvn ! now velocities 578 598 !! … … 664 684 zwz(ji,jj) = ( e2v(ji+1,jj ) * pvn(ji+1,jj,jk) - e2v(ji,jj) * pvn(ji,jj,jk) & 665 685 & - e1u(ji ,jj+1) * pun(ji,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) & 666 & * r1_e12f(ji,jj) * ze3f(ji,jj)667 END DO 668 END DO 669 CASE ( 3 ) ! metric term686 & / ( e1f(ji,jj) * e2f(ji,jj) ) * ze3f(ji,jj) 687 END DO 688 END DO 689 CASE ( 3 ) ! metric term 670 690 DO jj = 1, jpjm1 671 691 DO ji = 1, fs_jpim1 ! vector opt. 672 692 zwz(ji,jj) = ( ( pvn(ji+1,jj ,jk) + pvn(ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 673 693 & - ( pun(ji ,jj+1,jk) + pun(ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 674 & * 0.5 * r1_e12f(ji,jj) * ze3f(ji,jj)675 END DO 676 END DO 677 CASE ( 4 ) ! total (relative + planetary vorticity)694 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) * ze3f(ji,jj) 695 END DO 696 END DO 697 CASE ( 4 ) ! total (relative + planetary vorticity) 678 698 DO jj = 1, jpjm1 679 699 DO ji = 1, fs_jpim1 ! vector opt. 680 700 zwz(ji,jj) = ( ff(ji,jj) + ( e2v(ji+1,jj ) * pvn(ji+1,jj ,jk) - e2v(ji,jj) * pvn(ji,jj,jk) & 681 701 & - e1u(ji ,jj+1) * pun(ji ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk) ) & 682 & * r1_e12f(ji,jj) ) * ze3f(ji,jj)702 & / ( e1f(ji,jj) * e2f(ji,jj) ) ) * ze3f(ji,jj) 683 703 END DO 684 704 END DO … … 689 709 & + ( ( pvn(ji+1,jj ,jk) + pvn(ji,jj,jk) ) * ( e2v(ji+1,jj ) - e2v(ji,jj) ) & 690 710 & - ( pun(ji ,jj+1,jk) + pun(ji,jj,jk) ) * ( e1u(ji ,jj+1) - e1u(ji,jj) ) ) & 691 & * 0.5 * r1_e12f(ji,jj)) * ze3f(ji,jj)711 & * 0.5 / ( e1f(ji,jj) * e2f(ji,jj) ) ) * ze3f(ji,jj) 692 712 END DO 693 713 END DO -
branches/UKMO/r6232_INGV1_WAVE-coupling/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r7481 r7600 180 180 END DO 181 181 ! 182 CALL iom_put( "ustokes", usd ) 183 CALL iom_put( "vstokes", vsd ) 184 CALL iom_put( "wstokes", wsd ) 185 ! 182 186 CALL wrk_dealloc( jpi,jpj,jpk, ze3divh ) 183 187 CALL wrk_dealloc( jpi,jpj, zk_t, zk_u, zk_v, zu0_sd, zv0_sd )
Note: See TracChangeset
for help on using the changeset viewer.