347 | | the modification of trasbc and limsbc(_2) modules in order to take into account the above changes (heat content of water exchanges and explicit salt flux) |
348 | | |
349 | | • '''sbcice_if''' : no changes except style as there is no mass flux exchanges in ice-if case. |
350 | | |
351 | | |
352 | | '''(3) introduction of a explicit a salt flux''' |
| 351 | Modification of trasbc and limsbc(_2) modules in order to take into account the above changes (heat content of water exchanges and explicit salt flux) |
| 352 | |
| 353 | • ocean-atmosphere mass exchanges : In the un-approximated case (lk_vvl=T) the ocean receives at its surface (1) a salt flux associate with Freezing and Melting of sea-ice, and (2) a heat flux which includes the budget of the heat content of all mass exchanged with the atmosphere and sea-ice. In the linear free surface case (lk_vvl=F), the model volume of the ocean is assumed to be constant, therefore an extra term appears in both T and S forcing term, the concentration/dilution term : the volume (associated to mass flux) removed or add to the ocean is replaced by a same volume of ocean water at Tn and Sn, so that the model ocean volume remains constant. |
| 354 | |
| 355 | '''trasbc.F90''' T and S forcing terms becomes symmetric. The following lines : |
| 356 | {{{ |
| 357 | DO jj = 2, jpj |
| 358 | DO ji = fs_2, fs_jpim1 ! vector opt. |
| 359 | #if ! defined key_zco |
| 360 | zse3t = 1. / fse3t(ji,jj,1) |
| 361 | #endif |
| 362 | IF( lk_vvl) THEN |
| 363 | zta = ro0cpr * qns(ji,jj) * zse3t & ! temperature : heat flux |
| 364 | & - emp(ji,jj) * zsrau * tn(ji,jj,1) * zse3t ! & cooling/heating effet of EMP flux |
| 365 | zsa = 0.e0 ! No salinity concent./dilut. effect |
| 366 | ELSE |
| 367 | zta = ro0cpr * qns(ji,jj) * zse3t ! temperature : heat flux |
| 368 | zsa = emps(ji,jj) * zsrau * sn(ji,jj,1) * zse3t ! salinity : concent./dilut. effect |
| 369 | ENDIF |
| 370 | ta(ji,jj,1) = ta(ji,jj,1) + zta ! add the trend to the general tracer trend |
| 371 | sa(ji,jj,1) = sa(ji,jj,1) + zsa |
| 372 | END DO |
| 373 | END DO |
| 374 | }}} |
| 375 | becomes |
| 376 | {{{ |
| 377 | IF( lk_vvl ) THEN ! Variable Volume Layers case ===>> heat content of mass flux in qns |
| 378 | DO jj = 2, jpj |
| 379 | DO ji = fs_2, fs_jpim1 ! vector opt. |
| 380 | z1_e3t_rau0 = 1./ ( fse3t(ji,jj,1) * rau0 ) |
| 381 | ta(ji,jj,1) = ta(ji,jj,1) + z1_e3t_rau0 * qns (ji,jj) * r1_rcp ! non solar heat flux |
| 382 | sa(ji,jj,1) = sa(ji,jj,1) + z1_e3t_rau0 * emps(ji,jj) ! salt flux (freezing/melting) |
| 383 | END DO |
| 384 | END DO |
| 385 | ! |
| 386 | ELSE ! Constant Volume layers case ===>> Concentration dillution effect |
| 387 | DO jj = 2, jpj |
| 388 | DO ji = fs_2, fs_jpim1 ! vector opt. |
| 389 | z1_e3t_rau0 = 1./ ( fse3t(ji,jj,1) * rau0 ) |
| 390 | ta(ji,jj,1) = ta(ji,jj,1) + z1_e3t_rau0 * ( qns (ji,jj) * r1_rcp & ! non solar heat flux |
| 391 | & + emp (ji,jj) * tn(ji,jj,1) ) ! concent./dilut. effect |
| 392 | sa(ji,jj,1) = sa(ji,jj,1) + z1_e3t_rau0 * ( emps(ji,jj) & ! salt flux (freezing/melting) |
| 393 | & + emp (ji,jj) * sn(ji,jj,1) ) ! concent./dilut. effect |
| 394 | END DO |
| 395 | END DO |
| 396 | ENDIF |
| 397 | }}} |
| 398 | |
| 399 | |
| 400 | • ocean-ice mass exchanges : |
| 401 | |
| 402 | Ice-IF : '''sbcice_if.F90''' : no changes except style as there is no mass flux exchanges in ice-if case. |
| 403 | |
| 404 | LIM-2 : '''limsbc_2.F90''' : |
| 405 | {{{ |
| 406 | .... lot of things.... |
| 407 | }}} |
| 408 | becomes |
| 409 | {{{ |
| 410 | ! |
| 411 | ! - computation the solar flux at ocean surface |
| 412 | #if defined key_coupled |
| 413 | zqsr = qsr_tot(ji,jj) + ( fstric(ji,jj) - qsr_ice(ji,jj,1) ) * ( 1.0 - pfrld(ji,jj) ) |
| 414 | #else |
| 415 | zqsr = pfrld(ji,jj) * qsr(ji,jj) + ( 1. - pfrld(ji,jj) ) * fstric(ji,jj) |
| 416 | #endif |
| 417 | ! |
| 418 | ! - computation the non solar heat flux at ocean surface |
| 419 | zqns = - ( 1. - thcm(ji,jj) ) * zqsr & ! part of the solar energy used in leads |
| 420 | & + iflt * ( fscmbq(ji,jj) + ffltbif(ji,jj) ) & |
| 421 | & + ifral * ( ial * qcmif(ji,jj) + (1 - ial) * qldif(ji,jj) ) * r1_rdt_ice & |
| 422 | & + ifrdv * ( qfvbq(ji,jj) + qdtcn(ji,jj) ) * r1_rdt_ice |
| 423 | |
| 424 | ! - store residual heat flux (put in the ocean at the next time-step) |
| 425 | fsbbq(ji,jj) = ( 1.0 - ( ifvt + iflt ) ) * fscmbq(ji,jj) ! ??? |
| 426 | ! |
| 427 | ! - heat content of mass exchanged between ocean and sea-ice |
| 428 | zqhc = ( rdq_snw(ji,jj) + rdq_ice(ji,jj) ) * r1_rdt_ice ! heat flux due to sown & ice heat content exchanges |
| 429 | ! |
| 430 | qsr(ji,jj) = zqsr ! solar heat flux |
| 431 | qns(ji,jj) = zqns - fdtcn(ji,jj) + zqhc ! non solar heat flux |
| 432 | |
| 433 | ! !------------------------------------------! |
| 434 | ! ! mass flux at the ocean surface ! |
| 435 | ! !------------------------------------------! |
| 436 | ! |
| 437 | ! mass flux at the ocean-atmosphere interface (open ocean fraction = leads area) |
| 438 | #if defined key_coupled |
| 439 | ! ! coupled mode: |
| 440 | zemp = + emp_tot(ji,jj) & ! net mass flux over the grid cell (ice+ocean area) |
| 441 | & - emp_ice(ji,jj) * ( 1. - pfrld(ji,jj) ) ! minus the mass flux intercepted by sea-ice |
| 442 | #else |
| 443 | ! ! forced mode: |
| 444 | zemp = + emp(ji,jj) * frld(ji,jj) & ! mass flux over open ocean fraction |
| 445 | & - tprecip(ji,jj) * ( 1. - frld(ji,jj) ) & ! liquid precip. over ice reaches directly the ocean |
| 446 | & + sprecip(ji,jj) * ( 1. - pfrld(ji,jj) ) & ! snow is intercepted by sea-ice (previous frld) |
| 447 | #endif |
| 448 | ! |
| 449 | ! mass flux at the ocean/ice interface (sea ice fraction) |
| 450 | zemp_snw = rdm_snw(ji,jj) * r1_rdt_ice ! snow melting = pure water that enters the ocean |
| 451 | zfmm = rdm_ice(ji,jj) * r1_rdt_ice ! Freezing minus Melting (F-M) |
| 452 | |
| 453 | ! salt flux at the ice/ocean interface (sea ice fraction) [PSU*kg/m2/s] |
| 454 | zfsalt = - sice_r(ji,jj) * zfmm ! F-M salt exchange |
| 455 | zcd = soce_r(ji,jj) * zfmm ! concentration/dilution term due to F-M |
| 456 | ! |
| 457 | ! salt flux only : add concentration dilution term in salt flux and no F-M term in volume flux |
| 458 | ! salt and mass fluxes : non concentartion dilution term in salt flux and add F-M term in volume flux |
| 459 | emps(ji,jj) = zfsalt + zswitch * zcd ! salt flux (+ C/D if no ice/ocean mass exchange) |
| 460 | emp (ji,jj) = zemp + zemp_snw + ( 1.- zswitch) * zfmm ! mass flux (- F/M mass flux if no ice/ocean mass exchange) |
| 461 | ! |
| 462 | }}} |
| 463 | |
| 464 | LIM-3 : '''limsbc_2.F90''' : ''' ==>>> TO BE DONE'''. |
| 465 | |
| 466 | |
| 467 | '''(4) change emp and emps names''' |