- Timestamp:
- 2017-12-13T18:08:50+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_merge_2017/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r9019 r9023 109 109 INTEGER, PARAMETER :: jpr_wper = 48 ! Mean wave period 110 110 INTEGER, PARAMETER :: jpr_wnum = 49 ! Mean wavenumber 111 INTEGER, PARAMETER :: jpr_ wstrf= 50 ! Stress fraction adsorbed by waves111 INTEGER, PARAMETER :: jpr_tauoc = 50 ! Stress fraction adsorbed by waves 112 112 INTEGER, PARAMETER :: jpr_wdrag = 51 ! Neutral surface drag coefficient 113 113 INTEGER, PARAMETER :: jpr_isf = 52 114 114 INTEGER, PARAMETER :: jpr_icb = 53 115 INTEGER, PARAMETER :: jpr_ts_ice = 54 ! Sea ice surface temp 116 117 INTEGER, PARAMETER :: jprcv = 54 ! total number of fields received 115 INTEGER, PARAMETER :: jpr_wfreq = 54 ! Wave peak frequency 116 INTEGER, PARAMETER :: jpr_tauwx = 55 ! x component of the ocean stress from waves 117 INTEGER, PARAMETER :: jpr_tauwy = 56 ! y component of the ocean stress from waves 118 INTEGER, PARAMETER :: jpr_ts_ice = 57 ! Sea ice surface temp 119 120 INTEGER, PARAMETER :: jprcv = 57 ! total number of fields received 118 121 119 122 INTEGER, PARAMETER :: jps_fice = 1 ! ice fraction sent to the atmosphere … … 170 173 & sn_snd_thick1, sn_snd_cond, sn_snd_mpnd , sn_snd_sstfrz, sn_snd_ttilyr 171 174 ! ! Received from the atmosphere 172 TYPE(FLD_C) :: sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_ dqnsdt, sn_rcv_qsr, &175 TYPE(FLD_C) :: sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau, sn_rcv_tauw, sn_rcv_dqnsdt, sn_rcv_qsr, & 173 176 & sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf, sn_rcv_ts_ice 174 177 TYPE(FLD_C) :: sn_rcv_cal, sn_rcv_iceflx, sn_rcv_co2, sn_rcv_mslp, sn_rcv_icb, sn_rcv_isf … … 176 179 TYPE(FLD_C) :: sn_snd_ifrac, sn_snd_crtw, sn_snd_wlev 177 180 ! Received from waves 178 TYPE(FLD_C) :: sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_wstrf, sn_rcv_wdrag 181 TYPE(FLD_C) :: sn_rcv_hsig, sn_rcv_phioc, sn_rcv_sdrfx, sn_rcv_sdrfy, sn_rcv_wper, sn_rcv_wnum, sn_rcv_tauoc, & 182 sn_rcv_wdrag, sn_rcv_wfreq 179 183 ! ! Other namelist parameters 180 184 INTEGER :: nn_cplmodel ! Maximum number of models to/from which NEMO is potentialy sending/receiving data … … 251 255 & sn_rcv_wdrag , sn_rcv_qns , sn_rcv_emp , sn_rcv_rnf , sn_rcv_cal , & 252 256 & sn_rcv_iceflx, sn_rcv_co2 , nn_cplmodel , ln_usecplmask, sn_rcv_mslp , & 253 & sn_rcv_icb , sn_rcv_isf , nn_cats_cpl257 & sn_rcv_icb , sn_rcv_isf , sn_rcv_wfreq , sn_rcv_tauw, nn_cats_cpl 254 258 255 259 !!--------------------------------------------------------------------- … … 299 303 WRITE(numout,*)' Mean wave period = ', TRIM(sn_rcv_wper%cldes ), ' (', TRIM(sn_rcv_wper%clcat ), ')' 300 304 WRITE(numout,*)' Mean wave number = ', TRIM(sn_rcv_wnum%cldes ), ' (', TRIM(sn_rcv_wnum%clcat ), ')' 301 WRITE(numout,*)' Stress frac adsorbed by waves = ', TRIM(sn_rcv_wstrf%cldes ), ' (', TRIM(sn_rcv_wstrf%clcat ), ')' 305 WRITE(numout,*)' Wave peak frequency = ', TRIM(sn_rcv_wfreq%cldes ), ' (', TRIM(sn_rcv_wfreq%clcat ), ')' 306 WRITE(numout,*)' Stress frac adsorbed by waves = ', TRIM(sn_rcv_tauoc%cldes ), ' (', TRIM(sn_rcv_tauoc%clcat ), ')' 307 WRITE(numout,*)' Stress components by waves = ', TRIM(sn_rcv_tauw%cldes ), ' (', TRIM(sn_rcv_tauw%clcat ), ')' 302 308 WRITE(numout,*)' Neutral surf drag coefficient = ', TRIM(sn_rcv_wdrag%cldes ), ' (', TRIM(sn_rcv_wdrag%clcat ), ')' 303 309 WRITE(numout,*)' Sea ice surface skin temperature= ', TRIM(sn_rcv_ts_ice%cldes), ' (', TRIM(sn_rcv_ts_ice%clcat), ')' … … 596 602 cpl_wper = .TRUE. 597 603 ENDIF 604 srcv(jpr_wfreq)%clname = 'O_WFreq' ! wave peak frequency 605 IF( TRIM(sn_rcv_wfreq%cldes ) == 'coupled' ) THEN 606 srcv(jpr_wfreq)%laction = .TRUE. 607 cpl_wfreq = .TRUE. 608 ENDIF 598 609 srcv(jpr_wnum)%clname = 'O_WNum' ! mean wave number 599 610 IF( TRIM(sn_rcv_wnum%cldes ) == 'coupled' ) THEN … … 601 612 cpl_wnum = .TRUE. 602 613 ENDIF 603 srcv(jpr_wstrf)%clname = 'O_WStrf' ! stress fraction adsorbed by the wave 604 IF( TRIM(sn_rcv_wstrf%cldes ) == 'coupled' ) THEN 605 srcv(jpr_wstrf)%laction = .TRUE. 606 cpl_wstrf = .TRUE. 614 srcv(jpr_tauoc)%clname = 'O_TauOce' ! stress fraction adsorbed by the wave 615 IF( TRIM(sn_rcv_tauoc%cldes ) == 'coupled' ) THEN 616 srcv(jpr_tauoc)%laction = .TRUE. 617 cpl_tauoc = .TRUE. 618 ENDIF 619 srcv(jpr_tauwx)%clname = 'O_Tauwx' ! ocean stress from wave in the x direction 620 srcv(jpr_tauwy)%clname = 'O_Tauwy' ! ocean stress from wave in the y direction 621 IF( TRIM(sn_rcv_tauw%cldes ) == 'coupled' ) THEN 622 srcv(jpr_tauwx)%laction = .TRUE. 623 srcv(jpr_tauwy)%laction = .TRUE. 624 cpl_tauw = .TRUE. 607 625 ENDIF 608 626 srcv(jpr_wdrag)%clname = 'O_WDrag' ! neutral surface drag coefficient … … 611 629 cpl_wdrag = .TRUE. 612 630 ENDIF 631 IF( srcv(jpr_tauoc)%laction .AND. srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction ) & 632 CALL ctl_stop( 'More than one method for modifying the ocean stress has been selected ', & 633 '(sn_rcv_tauoc=coupled and sn_rcv_tauw=coupled)' ) 634 ! 613 635 ! ! ------------------------------- ! 614 636 ! ! OPA-SAS coupling - rcv by opa ! … … 1253 1275 ! 1254 1276 IF( ln_sdw ) THEN ! Stokes Drift correction activated 1255 ! ! ========================= ! 1256 ! ! Stokes drift u ! 1257 ! ! ========================= ! 1258 IF( srcv(jpr_sdrftx)%laction ) ut0sd(:,:) = frcv(jpr_sdrftx)%z3(:,:,1) 1259 ! 1260 ! ! ========================= ! 1261 ! ! Stokes drift v ! 1262 ! ! ========================= ! 1263 IF( srcv(jpr_sdrfty)%laction ) vt0sd(:,:) = frcv(jpr_sdrfty)%z3(:,:,1) 1264 ! 1265 ! ! ========================= ! 1266 ! ! Wave mean period ! 1267 ! ! ========================= ! 1268 IF( srcv(jpr_wper)%laction ) wmp(:,:) = frcv(jpr_wper)%z3(:,:,1) 1269 ! 1270 ! ! ========================= ! 1271 ! ! Significant wave height ! 1272 ! ! ========================= ! 1273 IF( srcv(jpr_hsig)%laction ) hsw(:,:) = frcv(jpr_hsig)%z3(:,:,1) 1274 ! 1275 ! ! ========================= ! 1276 ! ! surface wave mixing ! 1277 ! ! ========================= ! 1278 IF( srcv(jpr_wnum)%laction .AND. ln_zdfswm ) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 1277 ! ! ========================= ! 1278 ! ! Stokes drift u ! 1279 ! ! ========================= ! 1280 IF( srcv(jpr_sdrftx)%laction ) ut0sd(:,:) = frcv(jpr_sdrftx)%z3(:,:,1) 1281 ! 1282 ! ! ========================= ! 1283 ! ! Stokes drift v ! 1284 ! ! ========================= ! 1285 IF( srcv(jpr_sdrfty)%laction ) vt0sd(:,:) = frcv(jpr_sdrfty)%z3(:,:,1) 1286 ! 1287 ! ! ========================= ! 1288 ! ! Wave mean period ! 1289 ! ! ========================= ! 1290 IF( srcv(jpr_wper)%laction ) wmp(:,:) = frcv(jpr_wper)%z3(:,:,1) 1291 ! 1292 ! ! ========================= ! 1293 ! ! Significant wave height ! 1294 ! ! ========================= ! 1295 IF( srcv(jpr_hsig)%laction ) hsw(:,:) = frcv(jpr_hsig)%z3(:,:,1) 1296 ! 1297 ! ! ========================= ! 1298 ! ! Wave peak frequency ! 1299 ! ! ========================= ! 1300 IF( srcv(jpr_wfreq)%laction ) wfreq(:,:) = frcv(jpr_wfreq)%z3(:,:,1) 1301 ! 1302 ! ! ========================= ! 1303 ! ! Vertical mixing Qiao ! 1304 ! ! ========================= ! 1305 IF( srcv(jpr_wnum)%laction .AND. ln_zdfqiao ) wnum(:,:) = frcv(jpr_wnum)%z3(:,:,1) 1279 1306 1280 1307 ! Calculate the 3D Stokes drift both in coupled and not fully uncoupled mode 1281 1308 IF( srcv(jpr_sdrftx)%laction .OR. srcv(jpr_sdrfty)%laction .OR. srcv(jpr_wper)%laction & 1282 & .OR. srcv(jpr_hsig)%laction) THEN1309 .OR. srcv(jpr_hsig)%laction .OR. srcv(jpr_wfreq)%laction) THEN 1283 1310 CALL sbc_stokes() 1284 1311 ENDIF … … 1287 1314 ! ! Stress adsorbed by waves ! 1288 1315 ! ! ========================= ! 1289 IF( srcv(jpr_wstrf)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_wstrf)%z3(:,:,1) 1316 IF( srcv(jpr_tauoc)%laction .AND. ln_tauoc ) tauoc_wave(:,:) = frcv(jpr_tauoc)%z3(:,:,1) 1317 1318 ! ! ========================= ! 1319 ! ! Stress component by waves ! 1320 ! ! ========================= ! 1321 IF( srcv(jpr_tauwx)%laction .AND. srcv(jpr_tauwy)%laction .AND. ln_tauw ) THEN 1322 tauw_x(:,:) = frcv(jpr_tauwx)%z3(:,:,1) 1323 tauw_y(:,:) = frcv(jpr_tauwy)%z3(:,:,1) 1324 ENDIF 1290 1325 1291 1326 ! ! ========================= !
Note: See TracChangeset
for help on using the changeset viewer.