New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
isfnxt.F90 in NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF – NEMO

source: NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfnxt.F90 @ 11395

Last change on this file since 11395 was 11395, checked in by mathiot, 5 years ago

ENHANCE-02_ISF_nemo : Initial commit isf simplification (add ISF directory, moved isf routine in and split isf cavity and isf parametrisation, ...) (ticket #2142)

File size: 2.4 KB
Line 
1MODULE isfnxt
2
3USE isf
4USE isfutils
5
6USE dom_oce
7USE in_out_manager
8
9IMPLICIT NONE
10
11PRIVATE
12
13PUBLIC isf_dynnxt !, isf_tranxt_mlt, isf_dynnxt_cpl, isf_tranxt_cpl
14
15CONTAINS
16
17   SUBROUTINE isf_dynnxt ( pcoef )
18      !!----------------------------------------------------------------------
19      REAL(wp),                     INTENT(in   ) :: pcoef           ! atfp * rdt * r1_rau0
20      !!----------------------------------------------------------------------
21      !
22      ! ice shelf cavity
23      IF ( ln_isfcav_mlt ) CALL isf_dynnxt_mlt(misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav, fwfisf_cav, fwfisf_cav_b, pcoef)
24      !
25      ! ice shelf parametrised
26      IF ( ln_isfpar_mlt ) CALL isf_dynnxt_mlt(misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par, fwfisf_par, fwfisf_par_b, pcoef)
27      !
28      ! ice sheet coupling
29      !IF ( ln_iscpl_hsb  ) CALL isf_dynnxt_cpl(...zcoef)
30      !
31   END SUBROUTINE isf_dynnxt
32
33   SUBROUTINE isf_dynnxt_mlt ( ktop, kbot, phtbl, pfrac, pfwf, pfwf_b, pcoef )
34   !atfp * rdt * r1_rau0
35      !!----------------------------------------------------------------------
36      INTEGER , DIMENSION(jpi,jpj), INTENT(in   ) :: ktop , kbot     ! top and bottom level of tbl
37      REAL(wp), DIMENSION(jpi,jpj), INTENT(in   ) :: pfrac, phtbl    ! fraction of bottom cell included in tbl, tbl thickness
38      REAL(wp), DIMENSION(jpi,jpj), INTENT(in   ) :: pfwf , pfwf_b   ! now/before fwf
39      REAL(wp),                     INTENT(in   ) :: pcoef           ! atfp * rdt * r1_rau0
40      !!----------------------------------------------------------------------
41      INTEGER :: ji,jj,jk
42      REAL(wp), DIMENSION(jpi,jpj) :: zfwfinc
43      !!----------------------------------------------------------------------
44      !
45      ! compute fwf conservation correction
46      zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / phtbl(:,:)
47      !
48      ! add the in depth increment
49      DO jk = 1, jpkm1
50         DO jj = 1, jpj
51            DO ji = 1, jpi
52               IF( ktop(ji,jj) <= jk .AND. jk < kbot(ji,jj)  ) THEN
53                  e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zfwfinc(ji,jj) * e3t_n(ji,jj,jk)
54               ELSEIF ( jk == kbot(ji,jj) ) THEN
55                  e3t_b(ji,jj,jk) = e3t_b(ji,jj,jk) - zfwfinc(ji,jj) * e3t_n(ji,jj,jk) * pfrac(ji,jj)
56               ENDIF
57            END DO
58         END DO
59      END DO
60      !
61   END SUBROUTINE isf_dynnxt_mlt
62
63END MODULE isfnxt
Note: See TracBrowser for help on using the repository browser.