Changeset 15336
- Timestamp:
- 2021-10-06T12:56:13+02:00 (3 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.1_coast_wdcpl/src/OCE
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_coast_wdcpl/src/OCE/SBC/sbccpl.F90
r11715 r15336 8 8 !! 3.1 ! 2009_02 (G. Madec, S. Masson, E. Maisonave, A. Caubel) generic coupled interface 9 9 !! 3.4 ! 2011_11 (C. Harris) more flexibility + multi-category fields 10 !! x.y ! 2021_10 (J. M. Edwards) Thermal coupling to sea bed 10 11 !!---------------------------------------------------------------------- 11 12 … … 32 33 USE cpl_oasis3 ! OASIS3 coupling 33 34 USE geo2ocean ! 34 USE oce , ONLY : tsn, un, vn, sshn, ub, vb, sshb, fraqsr_1lev 35 USE oce , ONLY : tsn, un, vn, sshn, ub, vb, sshb, fraqsr_1lev, t_bed, & 36 gfx_bed 35 37 USE ocealb ! 36 38 USE eosbn2 ! … … 116 118 INTEGER, PARAMETER :: jpr_tauwy = 56 ! y component of the ocean stress from waves 117 119 INTEGER, PARAMETER :: jpr_ts_ice = 57 ! Sea ice surface temp 118 119 INTEGER, PARAMETER :: jprcv = 57 ! total number of fields received 120 INTEGER, PARAMETER :: jpr_t_bed = 58 ! Sea bed temperature 121 122 INTEGER, PARAMETER :: jprcv = 58 ! total number of fields received 120 123 121 124 INTEGER, PARAMETER :: jps_fice = 1 ! ice fraction sent to the atmosphere … … 157 160 INTEGER, PARAMETER :: jps_sstfrz = 37 ! sea surface freezing temperature 158 161 INTEGER, PARAMETER :: jps_ttilyr = 38 ! sea ice top layer temp 159 160 INTEGER, PARAMETER :: jpsnd = 38 ! total number of fields sent 162 INTEGER, PARAMETER :: jps_gfx_bed = 39 ! sea ice top layer temp 163 164 INTEGER, PARAMETER :: jpsnd = 39 ! total number of fields sent 161 165 162 166 ! !!** namelist namsbc_cpl ** … … 170 174 ! ! Send to the atmosphere 171 175 TYPE(FLD_C) :: sn_snd_temp , sn_snd_alb , sn_snd_thick, sn_snd_crt , sn_snd_co2, & 172 & sn_snd_thick1, sn_snd_cond, sn_snd_mpnd , sn_snd_sstfrz, sn_snd_ttilyr 176 & sn_snd_thick1, sn_snd_cond, sn_snd_mpnd , sn_snd_sstfrz, sn_snd_ttilyr, & 177 & sn_snd_gfx_bed 173 178 ! ! Received from the atmosphere 174 179 TYPE(FLD_C) :: sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_tauw, sn_rcv_dqnsdt, sn_rcv_qsr, & 175 & sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf, sn_rcv_ts_ice 180 & sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf, sn_rcv_ts_ice, sn_rcv_t_bed 176 181 TYPE(FLD_C) :: sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2, sn_rcv_mslp, sn_rcv_icb, sn_rcv_isf 177 182 ! Send to waves … … 250 255 NAMELIST/namsbc_cpl/ sn_snd_temp , sn_snd_alb , sn_snd_thick, sn_snd_crt , sn_snd_co2 , & 251 256 & sn_snd_ttilyr, sn_snd_cond , sn_snd_mpnd , sn_snd_sstfrz, sn_snd_thick1, & 252 & sn_snd_ifrac , sn_snd_crtw , sn_snd_wlev , sn_rcv_hsig , sn_rcv_phioc, & 257 & sn_snd_ifrac , sn_snd_crtw , sn_snd_wlev , sn_snd_gfx_bed, & 258 & sn_rcv_t_bed, sn_rcv_hsig , sn_rcv_phioc, & 253 259 & sn_rcv_w10m , sn_rcv_taumod, sn_rcv_tau , sn_rcv_dqnsdt, sn_rcv_qsr , & 254 260 & sn_rcv_sdrfx , sn_rcv_sdrfy , sn_rcv_wper , sn_rcv_wnum , sn_rcv_tauwoc, & … … 307 313 WRITE(numout,*)' Neutral surf drag coefficient = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')' 308 314 WRITE(numout,*)' Sea ice surface skin temperature= ', TRIM(sn_rcv_ts_ice%cldes), ' (', TRIM(sn_rcv_ts_ice%clcat), ')' 315 WRITE(numout,*)' Sea bed temperature = ', TRIM(sn_rcv_t_bed%cldes ), ' (', TRIM(sn_rcv_t_bed%clcat ), ')' 309 316 WRITE(numout,*)' sent fields (multiple ice categories)' 310 317 WRITE(numout,*)' surface temperature = ', TRIM(sn_snd_temp%cldes ), ' (', TRIM(sn_snd_temp%clcat ), ')' … … 322 329 WRITE(numout,*)' sea surface freezing temp = ', TRIM(sn_snd_sstfrz%cldes), ' (', TRIM(sn_snd_sstfrz%clcat), ')' 323 330 WRITE(numout,*)' water level = ', TRIM(sn_snd_wlev%cldes ), ' (', TRIM(sn_snd_wlev%clcat ), ')' 331 WRITE(numout,*)' Heat flux to sea bed = ', TRIM(sn_snd_gfx_bed%cldes ), ' (', TRIM(sn_snd_gfx_bed%clcat ), ')' 324 332 WRITE(numout,*)' mean sea level pressure = ', TRIM(sn_rcv_mslp%cldes ), ' (', TRIM(sn_rcv_mslp%clcat ), ')' 325 333 WRITE(numout,*)' surface current to waves = ', TRIM(sn_snd_crtw%cldes ), ' (', TRIM(sn_snd_crtw%clcat ), ')' … … 574 582 575 583 ! ! ------------------------- ! 584 ! ! sea bed temperature ! 585 ! ! ------------------------- ! 586 srcv(jpr_ts_ice)%clname = 'OT_bed' ! needed by Met Office 587 IF ( TRIM( sn_rcv_t_bed%cldes ) == 'coupled' ) srcv(jpr_ts_ice)%laction = .TRUE. 588 589 ! ! ------------------------- ! 576 590 ! ! Wave breaking ! 577 591 ! ! ------------------------- ! … … 950 964 ! ! ------------------------- ! 951 965 ssnd(jps_wlev)%clname = 'O_Wlevel' ; IF( TRIM(sn_snd_wlev%cldes) == 'coupled' ) ssnd(jps_wlev)%laction = .TRUE. 966 967 ! 968 ! ! ------------------------- ! 969 ! ! Sea bed heat flux ! 970 ! ! ------------------------- ! 971 ssnd(jps_gfx_bed)%clname = 'O_Gfx' ; IF( TRIM(sn_snd_gfx_bed%cldes) == 'coupled' ) ssnd(jps_gfx_bed)%laction = .TRUE. 952 972 953 973 ! ! ------------------------------- ! … … 1093 1113 !! qsr solar ocean heat fluxes (ocean only case) 1094 1114 !! emp upward mass flux [evap. - precip. (- runoffs) (- calving)] (ocean only case) 1115 !! t_bed temperature of sea bed 1095 1116 !!---------------------------------------------------------------------- 1096 1117 USE zdf_oce, ONLY : ln_zdfswm … … 1108 1129 REAL(wp) :: zcdrag = 1.5e-3 ! drag coefficient 1109 1130 REAL(wp) :: zzx, zzy ! temporary variables 1110 REAL(wp), DIMENSION(jpi,jpj) :: ztx, zty, zmsk, zemp, zqns, zqsr 1131 REAL(wp), DIMENSION(jpi,jpj) :: ztx, zty, zmsk, zemp, zqns, zqsr, zt_bed 1111 1132 !!---------------------------------------------------------------------- 1112 1133 ! … … 1237 1258 ! 1238 1259 ENDIF 1260 1261 ! ! ================== ! 1262 ! ! Sea bed temperature! 1263 ! ! ================== ! 1264 IF( srcv(jpr_t_bed)%laction ) t_bed(:,:) = frcv(jpr_t_bed)%z3(:,:,1) 1239 1265 1240 1266 ! ! ================== ! … … 2469 2495 END IF 2470 2496 ! ! ------------------------- ! 2497 ! ! Sea bed heat flux ! 2498 ! ! ------------------------- ! 2499 IF( ssnd(jps_gfx_bed)%laction ) THEN 2500 !@! Modified from following block -- what do we need? 2501 !@! IF( ln_apr_dyn ) THEN 2502 !@! IF( kt /= nit000 ) THEN 2503 !@! ztmp1(:,:) = sshb(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 2504 !@! ELSE 2505 !@! ztmp1(:,:) = sshb(:,:) 2506 !@! ENDIF 2507 !@! ELSE 2508 ztmp1(:,:) = gfx_bed(:,:) 2509 !@! ENDIF 2510 CALL cpl_snd( jps_gfx_bed , isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 2511 END IF 2512 ! ! ------------------------- ! 2471 2513 ! ! Water levels to waves ! 2472 2514 ! ! ------------------------- ! -
NEMO/branches/UKMO/NEMO_4.0.1_coast_wdcpl/src/OCE/TRA/trabbc.F90
r11715 r15336 9 9 !! 3.3 ! 2010-10 (G. Madec) dynamical allocation + suppression of key_trabbc 10 10 !! - ! 2010-11 (G. Madec) use mbkt array (deepest ocean t-level) 11 !! x.y ! 2021-10 (J. M. Edwards) Add bottom coupling 11 12 !!---------------------------------------------------------------------- 12 13 … … 89 90 DO ji = 2, jpim1 90 91 tsa(ji,jj,mbkt(ji,jj),jp_tem) = tsa(ji,jj,mbkt(ji,jj),jp_tem) + qgh_trd0(ji,jj) / e3t_n(ji,jj,mbkt(ji,jj)) 92 !@! Provisional dummy calculation 93 gfx_bed(ji, jj) = 1.0e2 * ( tsa(ji,jj,mbkt(ji,jj),jp_tem) - t_bed(ji,jj)) 91 94 END DO 92 95 END DO -
NEMO/branches/UKMO/NEMO_4.0.1_coast_wdcpl/src/OCE/oce.F90
r11715 r15336 69 69 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fraqsr_1lev !: fraction of solar net radiation absorbed in the first ocean level [-] 70 70 71 !! Thermal coupling to sea bed 72 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_bed 73 !: Temperature of soil level in land surface model 74 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: gfx_bed 75 !: Temperature of soil level in land surface model 71 76 !!---------------------------------------------------------------------- 72 77 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 102 107 & riceload(jpi,jpj) , STAT=ierr(2) ) 103 108 ! 104 ALLOCATE( fraqsr_1lev(jpi,jpj) , STAT=ierr(3) )109 ALLOCATE( fraqsr_1lev(jpi,jpj), t_bed(jpi,jpj), gfx_bed(jpi,jpj) , STAT=ierr(3) ) 105 110 ! 106 111 ALLOCATE( ssha_e(jpi,jpj), sshn_e(jpi,jpj), sshb_e(jpi,jpj), sshbb_e(jpi,jpj), &
Note: See TracChangeset
for help on using the changeset viewer.