| 26 |
I kmtj, shsq, dvsq, ustar, msk |
I kmtj, shsq, dvsq, ustar, msk |
| 27 |
I , bo, bosol |
I , bo, bosol |
| 28 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 29 |
I , boplume,SPDepth |
I , boplume,SPDepth |
|
#endif /* ndef SALT_PLUME_VOLUME */ |
|
| 30 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 31 |
I , dbloc, Ritop, coriol |
I , dbloc, Ritop, coriol |
| 32 |
I , diffusKzS, diffusKzT |
I , diffusKzS, diffusKzT |
| 95 |
_RL bo (imt ) |
_RL bo (imt ) |
| 96 |
_RL bosol (imt ) |
_RL bosol (imt ) |
| 97 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 98 |
_RL boplume (imt ) |
_RL boplume (imt ) |
| 99 |
_RL SPDepth (imt ) |
_RL SPDepth (imt ) |
|
#endif /* ndef SALT_PLUME_VOLUME */ |
|
| 100 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 101 |
_RL dbloc (imt,Nr) |
_RL dbloc (imt,Nr) |
| 102 |
_RL Ritop (imt,Nr) |
_RL Ritop (imt,Nr) |
| 191 |
I kmtj |
I kmtj |
| 192 |
I , dvsq, dbloc, Ritop, ustar, bo, bosol |
I , dvsq, dbloc, Ritop, ustar, bo, bosol |
| 193 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 194 |
I , boplume,SPDepth |
I , boplume,SPDepth |
|
#endif /* ndef SALT_PLUME_VOLUME */ |
|
| 195 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 196 |
I , coriol |
I , coriol |
| 197 |
I , ikppkey |
I , ikppkey |
| 270 |
I kmtj |
I kmtj |
| 271 |
I , dvsq, dbloc, Ritop, ustar, bo, bosol |
I , dvsq, dbloc, Ritop, ustar, bo, bosol |
| 272 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 273 |
I , boplume,SPDepth |
I , boplume,SPDepth |
|
#endif /* ndef SALT_PLUME_VOLUME */ |
|
| 274 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 275 |
I , coriol |
I , coriol |
| 276 |
I , ikppkey |
I , ikppkey |
| 339 |
_RL coriol (imt) |
_RL coriol (imt) |
| 340 |
integer ikppkey |
integer ikppkey |
| 341 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 342 |
_RL boplume (imt) |
_RL boplume (imt) |
| 343 |
_RL SPDepth (imt) |
_RL SPDepth (imt) |
|
#endif /* ndef SALT_PLUME_VOLUME */ |
|
| 344 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 345 |
|
|
| 346 |
c output |
c output |
| 440 |
|
|
| 441 |
end do |
end do |
| 442 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 443 |
c compute bfsfc = plume fraction at hbf * zgrid |
c compute bfsfc = plume fraction at hbf * zgrid |
| 444 |
IF ( useSALT_PLUME ) THEN |
IF ( useSALT_PLUME ) THEN |
| 445 |
do i = 1, imt |
do i = 1, imt |
| 446 |
worka(i) = zgrid(kl) |
worka(i) = zgrid(kl) |
| 447 |
enddo |
enddo |
| 448 |
|
#ifndef SALT_PLUME_VOLUME |
| 449 |
|
catn: in original way: accumulate all fractions of boplume above hbl |
| 450 |
call SALT_PLUME_FRAC( |
call SALT_PLUME_FRAC( |
| 451 |
I imt, hbf,SPDepth, |
I imt, hbf,SPDepth, |
| 452 |
U worka, |
U worka, |
| 454 |
do i = 1, imt |
do i = 1, imt |
| 455 |
bfsfc(i) = bfsfc(i) + boplume(i)*(worka(i)) |
bfsfc(i) = bfsfc(i) + boplume(i)*(worka(i)) |
| 456 |
enddo |
enddo |
| 457 |
ENDIF |
#else /* def SALT_PLUME_VOLUME */ |
| 458 |
|
catn: in vol way: need to integrate down to hbl, so first locate |
| 459 |
|
c k level associated with this hbl, then sum up all SPforc[T,S] |
| 460 |
|
DO i = 1, imt |
| 461 |
|
DO k = 1, Nr |
| 462 |
|
IF (hbl.GE.abs(rF(k)) THEN |
| 463 |
|
bfsfc(i) = bfsfc(i) + boplume(i,k) |
| 464 |
|
ENDIF |
| 465 |
|
ENDDO |
| 466 |
|
ENDDO |
| 467 |
#endif /* ndef SALT_PLUME_VOLUME */ |
#endif /* ndef SALT_PLUME_VOLUME */ |
| 468 |
|
ENDIF |
| 469 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 470 |
|
|
| 471 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
| 588 |
end do |
end do |
| 589 |
|
|
| 590 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 591 |
IF ( useSALT_PLUME ) THEN |
IF ( useSALT_PLUME ) THEN |
| 592 |
|
#ifndef SALT_PLUME_VOLUME |
| 593 |
do i = 1, imt |
do i = 1, imt |
| 594 |
worka(i) = hbl(i) |
worka(i) = hbl(i) |
| 595 |
enddo |
enddo |
| 600 |
do i = 1, imt |
do i = 1, imt |
| 601 |
bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i)) |
bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i)) |
| 602 |
enddo |
enddo |
| 603 |
ENDIF |
#else /* def SALT_PLUME_VOLUME */ |
| 604 |
|
DO i = 1, imt |
| 605 |
|
DO k = 1, Nr |
| 606 |
|
IF (hbl.GE.abs(rF(k)) THEN |
| 607 |
|
bfsfc(i) = bfsfc(i) + boplume(i,k) |
| 608 |
|
ENDIF |
| 609 |
|
ENDDO |
| 610 |
|
ENDDO |
| 611 |
#endif /* ndef SALT_PLUME_VOLUME */ |
#endif /* ndef SALT_PLUME_VOLUME */ |
| 612 |
|
ENDIF |
| 613 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 614 |
CADJ store bfsfc = comlev1_kpp |
CADJ store bfsfc = comlev1_kpp |
| 615 |
CADJ & , key=ikppkey, kind=isbyte, |
CADJ & , key=ikppkey, kind=isbyte, |
| 694 |
end do |
end do |
| 695 |
|
|
| 696 |
#ifdef ALLOW_SALT_PLUME |
#ifdef ALLOW_SALT_PLUME |
|
#ifndef SALT_PLUME_VOLUME |
|
| 697 |
IF ( useSALT_PLUME ) THEN |
IF ( useSALT_PLUME ) THEN |
| 698 |
|
#ifndef SALT_PLUME_VOLUME |
| 699 |
do i = 1, imt |
do i = 1, imt |
| 700 |
worka(i) = hbl(i) |
worka(i) = hbl(i) |
| 701 |
enddo |
enddo |
| 706 |
do i = 1, imt |
do i = 1, imt |
| 707 |
bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i)) |
bfsfc(i) = bfsfc(i) + boplume(i) * (worka(i)) |
| 708 |
enddo |
enddo |
| 709 |
ENDIF |
#else /* def SALT_PLUME_VOLUME */ |
| 710 |
|
DO i = 1, imt |
| 711 |
|
DO k = 1, Nr |
| 712 |
|
IF (hbl.GE.abs(rF(k)) THEN |
| 713 |
|
bfsfc(i) = bfsfc(i) + boplume(i,k) |
| 714 |
|
ENDIF |
| 715 |
|
ENDDO |
| 716 |
|
ENDDO |
| 717 |
#endif /* ndef SALT_PLUME_VOLUME */ |
#endif /* ndef SALT_PLUME_VOLUME */ |
| 718 |
|
ENDIF |
| 719 |
#endif /* ALLOW_SALT_PLUME */ |
#endif /* ALLOW_SALT_PLUME */ |
| 720 |
CADJ store bfsfc = comlev1_kpp |
CADJ store bfsfc = comlev1_kpp |
| 721 |
CADJ & , key=ikppkey, kind=isbyte, |
CADJ & , key=ikppkey, kind=isbyte, |