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.
Changeset 11987 for NEMO/branches/2019/ENHANCE-02_ISF_nemo/tests/ISOMIP+/MY_SRC/isfstp.F90 – NEMO

Ignore:
Timestamp:
2019-11-27T15:50:29+01:00 (4 years ago)
Author:
mathiot
Message:

ENHANCE-02_ISF_nemo: changes needed after Dave's review

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/ENHANCE-02_ISF_nemo/tests/ISOMIP+/MY_SRC/isfstp.F90

    r11931 r11987  
    1414   !!---------------------------------------------------------------------- 
    1515   ! 
    16    USE isf            ! isf variables 
     16   USE isf_oce                                      ! isf variables 
    1717   USE isfload, ONLY: isf_load                      ! ice shelf load 
    1818   USE isftbl , ONLY: isf_tbl_lvl                   ! ice shelf boundary layer 
     
    2626   ! 
    2727   USE lib_mpp, ONLY: ctl_stop, ctl_nam 
     28   USE fldread, ONLY: FLD, FLD_N 
    2829   USE in_out_manager ! I/O manager 
    2930   USE timing 
     
    6263      IF( ln_timing )   CALL timing_start('isf') 
    6364      ! 
     65      !======================================================================= 
     66      ! 1.: compute melt and associated heat fluxes in the ice shelf cavities 
     67      !======================================================================= 
     68      ! 
    6469      IF ( ln_isfcav_mlt ) THEN 
    6570         ! 
    66          ! before time step  
     71         ! 1.1: before time step  
    6772         IF ( kt /= nit000 ) THEN  
    6873            risf_cav_tsc_b (:,:,:) = risf_cav_tsc (:,:,:) 
     
    7075         END IF 
    7176         ! 
    72          ! compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 
     77         ! 1.2: compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 
    7378         rhisf_tbl_cav(:,:) = rn_htbl * mskisf_cav(:,:) 
    7479         CALL isf_tbl_lvl(ht_n, e3t_n, misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav) 
    7580         ! 
    76          ! compute ice shelf melt 
     81         ! 1.3: compute ice shelf melt 
    7782         CALL isf_cav( kt, risf_cav_tsc, fwfisf_cav) 
    7883         ! 
    7984      END IF 
    8085      !  
     86      !================================================================================= 
     87      ! 2.: compute melt and associated heat fluxes for not resolved ice shelf cavities 
     88      !================================================================================= 
     89      ! 
    8190      IF ( ln_isfpar_mlt ) THEN 
    8291         ! 
    83          ! before time step  
     92         ! 2.1: before time step  
    8493         IF ( kt /= nit000 ) THEN  
    8594            risf_par_tsc_b(:,:,:) = risf_par_tsc(:,:,:) 
     
    8796         END IF 
    8897         ! 
    89          ! compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 
    90          ! by simplicity, we assume the top level where param applied do not change with time 
     98         ! 2.2: compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 
     99         ! by simplicity, we assume the top level where param applied do not change with time (done in init part) 
    91100         rhisf_tbl_par(:,:) = rhisf0_tbl_par(:,:) 
    92101         CALL isf_tbl_lvl(ht_n, e3t_n, misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par) 
    93102         ! 
    94          ! compute ice shelf melt 
     103         ! 2.3: compute ice shelf melt 
    95104         CALL isf_par( kt, risf_par_tsc, fwfisf_par) 
    96105         ! 
    97106      END IF 
    98107      ! 
    99       IF ( ln_isfcpl ) THEN 
    100          ! after step nit000 + 2 we do not need anymore the risfcpl_ arrays 
    101          IF ( kt == nit000 + 2 ) CALL isf_dealloc_cpl() 
    102  
    103          IF ( lrst_oce ) CALL isfcpl_rst_write(kt) 
    104       END IF 
     108      !================================================================================== 
     109      ! 3.: output specific restart variable in case of coupling with an ice sheet model 
     110      !================================================================================== 
     111      ! 
     112      IF ( ln_isfcpl .AND. lrst_oce ) CALL isfcpl_rst_write(kt) 
    105113      ! 
    106114      IF( ln_timing )   CALL timing_stop('isf') 
     
    177185            WRITE(numout,*) '      melt inside the cavity                  ln_isfcav_mlt   = ', ln_isfcav_mlt 
    178186            IF ( ln_isfcav_mlt) THEN 
    179                WRITE(numout,*) '         melt formulation                        cn_isfcav_mlt   = ', TRIM(cn_isfcav_mlt) 
    180                WRITE(numout,*) '         thickness of the top boundary layer     rn_htbl     = ', rn_htbl 
    181                WRITE(numout,*) '         gamma formulation                       cn_gammablk = ', TRIM(cn_gammablk)  
     187               WRITE(numout,*) '         melt formulation                         cn_isfcav_mlt= ', TRIM(cn_isfcav_mlt) 
     188               WRITE(numout,*) '         thickness of the top boundary layer      rn_htbl      = ', rn_htbl 
     189               WRITE(numout,*) '         gamma formulation                        cn_gammablk = ', TRIM(cn_gammablk)  
    182190               IF ( TRIM(cn_gammablk) .NE. 'spe' ) THEN  
    183                   WRITE(numout,*) '         gammat coefficient                       rn_gammat0  = ', rn_gammat0   
    184                   WRITE(numout,*) '         gammas coefficient                       rn_gammas0  = ', rn_gammas0   
    185                   WRITE(numout,*) '         top background ke used (from namdrg_top) rn_vtide**2 = ', rn_vtide**2 
    186                   WRITE(numout,*) '         top drag coef.    used (from namdrg_top) rn_Cd0      = ', r_Cdmin_top 
     191                  WRITE(numout,*) '         gammat coefficient                       rn_gammat0   = ', rn_gammat0   
     192                  WRITE(numout,*) '         gammas coefficient                       rn_gammas0   = ', rn_gammas0   
     193                  WRITE(numout,*) '         top background ke used (from namdrg_top) rn_vtide**2  = ', rn_vtide**2 
     194                  WRITE(numout,*) '         top drag coef.    used (from namdrg_top) rn_Cd0       = ', r_Cdmin_top 
    187195               END IF 
    188196            END IF 
     
    214222         IF (ln_isfcav) WRITE(numout,*) '      Ice shelf load method                   cn_isfload        = ', TRIM(cn_isfload) 
    215223         WRITE(numout,*) '' 
     224         FLUSH(numout) 
    216225 
    217226      END IF 
Note: See TracChangeset for help on using the changeset viewer.