Changeset 15463
- Timestamp:
- 2021-10-29T16:39:40+02:00 (2 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_FOAMv14_Hs_CO2/NEMOGCM/NEMO/TOP_SRC/MEDUSA
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14_Hs_CO2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/air_sea.F90
r12102 r15463 69 69 USE in_out_manager, ONLY: lwp, numout 70 70 USE par_kind, ONLY: wp 71 USE par_oce, ONLY: jpi, jpim1, jpj, jpjm1 72 USE sbc_oce, ONLY: fr_i, qsr, wndm 71 USE par_oce, ONLY: jpi, jpim1, jpj, jpjm1, jp_tem, jp_sal 72 USE sbc_oce, ONLY: fr_i, qsr, wndm, taum 73 73 USE sms_medusa, ONLY: jdms, jdms_input, jdms_model, & 74 74 jriver_alk, jriver_c, & … … 79 79 zn_dms_mld, zn_dms_qsr, & 80 80 f2_pco2w, f2_fco2w, & 81 xnln, xnld 81 xnln, xnld, input_swh 82 82 USE trc, ONLY: med_diag 83 83 USE zdfmxl, ONLY: hmld 84 USE oce, ONLY: tsn 84 85 85 86 # if defined key_roam … … 169 170 !! 170 171 CALL gas_transfer( wndm(ji,jj), 1, 7, & ! inputs 172 input_swh(ji,jj), taum(ji,jj), & 173 tsn(ji,jj,1,jp_tem) + 273.15, tsn(ji,jj,1,jp_sal), & 171 174 f_kw660(ji,jj) ) ! outputs 172 175 ENDIF -
branches/UKMO/dev_r5518_GO6_package_FOAMv14_Hs_CO2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/gas_transfer.F90
r6715 r15463 14 14 USE prtctl_trc ! Print control for debugging 15 15 USE in_out_manager ! I/O manager 16 USE phycst, ONLY: grav 16 17 17 18 IMPLICIT NONE … … 30 31 CONTAINS 31 32 32 subroutine gas_transfer(wind, N, eqn, kw660)33 subroutine gas_transfer(wind, N, eqn, swh, tau, sst, sss, kw660) 33 34 ! -------------------------------------------------------------------- 34 35 ! Gas transfer velocity … … 83 84 ! Input variables 84 85 ! real(kind=wp), INTENT(in), DIMENSION(N) :: wind 85 real(wp), INTENT(in) :: wind 86 real(wp), INTENT(in) :: wind, swh, tau, sst, sss 86 87 ! 87 88 ! Output variables … … 97 98 ! real(wp), DIMENSION(N) :: tmp_k 98 99 real(wp) :: tmp_k 100 real(wp) :: ln_k_0, k_0, a_b, a_nb, r, u_star 99 101 ! 100 102 ! Values of coefficients … … 119 121 ! 120 122 ! Calculate gas transfer velocity (cm/h) 121 tmp_k = (a(eqn) * wind**2) + (b(eqn) * wind) 123 124 if ( (swh < 0.0) .OR. (swh > 100.0) ) then 125 ! Wanninkhof (2014) 126 tmp_k = (a(eqn) * wind**2) + (b(eqn) * wind) 127 !write(numout,*) 'swh, wind, tmp_k = ', swh, wind, tmp_k 122 128 ! 123 129 ! Convert tmp_k from cm/h to m/s 124 kw660 = tmp_k / (100. * 3600.) 130 kw660 = tmp_k / (100. * 3600.) 131 else 132 ! Deike and Melville (2018) 133 ln_k_0 = -60.2409 + & 134 & 93.4517 * (100.0 / sst) + & 135 & 23.3585 * LOG(sst/100.0) + & 136 & sss * & 137 & (0.023517 - & 138 & 0.023656 * (sst/100.0) + & 139 & 0.0047036 * (sst/100.0) * (sst/100.0)) 140 k_0 = EXP(ln_k_0) ! solubility 141 !tmp = 9345.17d0/tk0 - 60.2409d0 + 23.3585d0 * LOG(tk0/100.0d0) 142 !nK0we74 = tmp + s*(0.023517d0 - 0.00023656d0*tk0 + 0.0047036e-4_wp*tk0*tk0) 143 !K0(i) = EXP(nK0we74) 144 a_b = 0.00001 ! bubble coefficient 145 a_nb = 0.000155 ! non-bubble coefficient 146 r = 83.14472 ! gas constant 147 u_star = SQRT(tau/1.22) ! friction velocity = wind shear / air density 148 149 tmp_k = (a_b / (k_0 * r * sst)) * u_star**(5.0/3.0) * (grav * swh)**(2.0/3.0) + & 150 & a_nb * u_star 151 !write(numout,*) 'swh, wind, tau, sst, sss, ln_k_0, k_0, u_star, tmp_k = ', swh, wind, tau, sst, sss, ln_k_0, k_0, u_star, tmp_k 152 kw660 = tmp_k 153 endif 154 155 ! 156 ! Convert tmp_k from cm/h to m/s 157 ! kw660 = tmp_k / (100. * 3600.) 125 158 ! 126 159 return … … 139 172 CONTAINS 140 173 141 SUBROUTINE gas_transfer(wind, N, eqn, kw660)174 SUBROUTINE gas_transfer(wind, N, eqn, swh, tau, sst, sss, kw660) 142 175 USE par_kind 143 176 144 REAL(wp), INTENT( in ) :: wind 177 REAL(wp), INTENT( in ) :: wind, swh, tau, sst, sss 145 178 REAL(wp), INTENT( in ) :: kw660 146 179 INTEGER, INTENT(in) :: N, eqn -
branches/UKMO/dev_r5518_GO6_package_FOAMv14_Hs_CO2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/sms_medusa.F90
r13725 r15463 266 266 !! 267 267 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: ocal_ccd !: CCD depth 268 269 !!---------------------------------------------------------------------- 270 !! SWH 271 !!---------------------------------------------------------------------- 272 !! 273 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: input_swh !: SWH 268 274 269 275 !!---------------------------------------------------------------------- … … 426 432 !* 2D fields of miscellaneous parameters 427 433 ALLOCATE( ocal_ccd(jpi,jpj) , dust(jpi,jpj) , & 428 & zirondep(jpi,jpj) 434 & zirondep(jpi,jpj) , input_swh(jpi,jpj) , & 429 435 & riv_n(jpi,jpj) , & 430 436 & riv_si(jpi,jpj) , riv_c(jpi,jpj) , & -
branches/UKMO/dev_r5518_GO6_package_FOAMv14_Hs_CO2/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcini_medusa.F90
r10302 r15463 44 44 45 45 INTEGER :: & 46 numccd 46 numccd, numswh 47 47 48 48 !! AXY (25/02/10) … … 295 295 & 'CCD: min ', fq0, ' max ', fq1 296 296 !! 297 IF(lwp) WRITE(numout,*) ' trc_ini_medusa: initialising input_swh array' 298 CALL trc_ini_medusa_swh( nit000 ) 299 !! 297 300 IF(lwp) WRITE(numout,*) ' trc_ini_medusa: initialising riverine nutrient arrays' 298 301 riv_n(:,:) = 0.0 … … 391 394 392 395 END SUBROUTINE trc_ini_medusa_ccd 396 397 !! ====================================================================== 398 !! ====================================================================== 399 !! ====================================================================== 400 401 !! AXY (25/02/10) 402 SUBROUTINE trc_ini_medusa_swh(kt) 403 404 !!---------------------------------------------------------------------- 405 !! *** ROUTINE trc_ini_medusa_swh *** 406 !! 407 !! ** Purpose : Read Hs field 408 !! 409 !! ** Method : Read the file 410 !! 411 !! ** input : external netcdf files 412 !! 413 !!---------------------------------------------------------------------- 414 !! * arguments 415 INTEGER, INTENT( in ) :: kt ! ocean time step 416 417 !!--------------------------------------------------------------------- 418 419 !! Open the file 420 !! ------------- 421 IF(lwp) WRITE(numout,*) ' ' 422 IF(lwp) WRITE(numout,*) ' **** Routine trc_ini_medusa_swh' 423 CALL iom_open ( 'gridded_swh.nc', numswh ) 424 IF(lwp) WRITE(numout,*) ' **** trc_ini_medusa_swh: gridded_swh.nc opened' 425 426 !! Read the data 427 !! ------------- 428 !! 429 CALL iom_get ( numswh, jpdom_data, 'swh', input_swh ) 430 IF(lwp) WRITE(numout,*) ' **** trc_ini_medusa_swh: data read' 431 432 !! Close the file 433 !! -------------- 434 !! 435 CALL iom_close ( numswh ) 436 IF(lwp) WRITE(numout,*) ' **** trc_ini_medusa_swh: gridded_swh.nc closed' 437 IF(lwp) CALL flush(numout) 438 439 END SUBROUTINE trc_ini_medusa_swh 393 440 394 441 !! ======================================================================
Note: See TracChangeset
for help on using the changeset viewer.