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 11931 for NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcav.F90 – NEMO

Ignore:
Timestamp:
2019-11-19T18:30:57+01:00 (4 years ago)
Author:
mathiot
Message:

ENHANCE-02_ISF_nemo: add comments, improve memory usage of ln_isfcpl_cons option, fix issue in ISOMIP+ configuration

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcav.F90

    r11852 r11931  
    2323   ! 
    2424   USE oce      , ONLY: tsn                    ! ocean tracers 
    25    USE dom_oce  , ONLY: jpi,jpj                ! ocean space and time domain 
     25   USE par_oce  , ONLY: jpi,jpj                ! ocean space and time domain 
    2626   USE phycst   , ONLY: grav,rau0,r1_rau0_rcp  ! physical constants 
    2727   USE eosbn2   , ONLY: l_useCT                ! l_useCT 
     
    9090      DO WHILE ( lit )    ! maybe just a constant number of iteration as in blk_core is fine 
    9191         ! 
    92          ! compute gammat every where (2d) 
     92         ! compute gammat everywhere (2d) 
    9393         ! useless if melt specified 
    9494         IF ( TRIM(cn_isfcav_mlt) .NE. 'spe' ) THEN 
     
    101101            &                         zqhc   , zqoce, pqfwf  ) 
    102102         ! 
    103          ! define if we need to iterate (nn_gammablk 0/1 do not need iteration) 
     103         ! define if we need to iterate 
    104104         SELECT CASE ( cn_gammablk ) 
    105105         CASE ( 'spe','ad15' ) 
     
    123123      END DO 
    124124      ! 
    125       ! compute heat and water flux  (change signe directly in the melt subroutine) 
     125      ! compute heat and water flux ( > 0 out ) 
    126126      pqfwf(:,:) = pqfwf(:,:) * mskisf_cav(:,:) 
    127127      zqoce(:,:) = zqoce(:,:) * mskisf_cav(:,:) 
    128128      zqhc (:,:) = zqhc(:,:)  * mskisf_cav(:,:) 
    129129      ! 
    130       ! compute heat content flux 
    131       zqlat(:,:) = - pqfwf(:,:) * rLfusisf    ! 2d latent heat flux (W/m2) ( > 0 out ) 
     130      ! compute heat content flux ( > 0 out ) 
     131      zqlat(:,:) = - pqfwf(:,:) * rLfusisf    ! 2d latent heat flux (W/m2) 
    132132      ! 
    133133      ! total heat flux ( >0 out ) 
     
    163163      INTEGER :: ierr 
    164164      !!--------------------------------------------------------------------- 
    165  
     165      ! 
     166      !============== 
    166167      ! 0: allocation 
     168      !============== 
    167169      ! 
    168170      CALL isf_alloc_cav() 
    169171      ! 
     172      !================== 
    170173      ! 1: initialisation 
     174      !================== 
    171175      ! 
    172176      ! top and bottom level of the 'top boundary layer' 
     
    179183      mskisf_cav(:,:)    = (1._wp - tmask(:,:,1)) * ssmask(:,:) 
    180184      ! 
     185      !================ 
    181186      ! 2: read restart 
     187      !================ 
    182188      ! 
    183189      ! read cav variable from restart 
    184190      IF ( ln_rstart ) CALL isfrst_read('cav', risf_cav_tsc, fwfisf_cav, risf_cav_tsc_b, fwfisf_cav_b) 
    185191      ! 
     192      !========================================== 
    186193      ! 3: specific allocation and initialisation (depending of scheme choice) 
     194      !========================================== 
    187195      ! 
    188196      SELECT CASE ( TRIM(cn_isfcav_mlt) ) 
Note: See TracChangeset for help on using the changeset viewer.