Ignore:
Timestamp:
2018-06-04T12:50:48+02:00 (2 years ago)
Author:
mathiot
Message:

replace the specific treatment of shallow ice shelves by a more general case

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_isf_remapping_UKESM_GO6package_r9314/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r9513 r9732  
    12691269      !!                          1.0 = set iceshelf to the minimum depth allowed 
    12701270      !!                          1.1 = ground ice shelf if water column less than X m 
    1271       !!                          1.2 = ensure a minimum thickness for iceshelf cavity in shallow water 
     1271      !!                          1.2 = ensure a minimum thickness for iceshelf cavity 
    12721272      !!                          1.3 = remove channels and single point 'bay' 
    12731273      !!                          1.4 = close single isolated point 
     
    12981298      INTEGER  :: nn_kisfmax    = 999.                              !   
    12991299      REAL(wp) :: rn_isfdep_min = 10.0_wp                           ! ice shelf minimal thickness  
    1300       REAL(wp) :: rn_isfhw_deep = 1.e-3 , rn_isfhw_shallow = 1.0e-3 ! threshold to define grounding line in deep/shallow water 
     1300      REAL(wp) :: rn_glhw_min   = 1.0e-3                             ! threshold on hw to define grounding line water 
     1301      REAL(wp) :: rn_isfhw_min  = 1.0e-3                            ! threshold on hw to define isf draft into the cavity 
    13011302      REAL(wp) :: rn_isfshallow = 0.0_wp                            ! threshold to define shallow ice shelf cavity 
    13021303      REAL(wp) :: rn_zisfmax    = 6000.0_wp                         ! maximun meter of ice we are allowed to dig to assure connectivity 
     
    13041305      !!--------------------------------------------------------------------- 
    13051306      NAMELIST/namzgr_isf/nn_kisfmax, rn_zisfmax, & 
    1306               &           rn_isfdep_min, rn_isfhw_deep, rn_isfhw_shallow, rn_isfshallow, & 
     1307              &           rn_isfdep_min, rn_glhw_min, rn_isfhw_min, & 
    13071308              &           ln_isfcheminey, ln_isfconnect, ln_isfchannel, ln_isfsubgl, rn_isfsubgllon, rn_isfsubgllat 
    13081309      ! 
     
    13261327         WRITE(numout,*) ' rn_zisfmax       = ',rn_zisfmax           ! 
    13271328         WRITE(numout,*) ' rn_isfdep_min    = ',rn_isfdep_min        ! 
    1328          WRITE(numout,*) ' rn_isfhw_deep    = ',rn_isfhw_deep        ! 
    1329          WRITE(numout,*) ' rn_isfhw_shallow = ',rn_isfhw_shallow     ! 
    1330          WRITE(numout,*) ' rn_isfshallow    = ',rn_isfshallow        ! 
     1329         WRITE(numout,*) ' rn_isfhw_min     = ',rn_isfhw_min         ! 
     1330         WRITE(numout,*) ' rn_glhw_min      = ',rn_glhw_min          ! 
    13311331         WRITE(numout,*) ' ln_isfcheminey   = ',ln_isfcheminey       ! 
    13321332         WRITE(numout,*) ' ln_isfconnect    = ',ln_isfconnect        ! 
     
    13391339      END WHERE 
    13401340      !   
    1341       ! 1.1 ground ice shelf if water column less than X m 
    1342       WHERE( bathy(:,:) - risfdep(:,:) < rn_isfhw_deep .AND. (bathy(:,:) > rn_isfshallow) )  
     1341      ! 1.1 ground ice shelf if water column less than X m => set the grounding 
     1342      ! line position 
     1343      WHERE( bathy(:,:) - risfdep(:,:) < rn_glhw_min )  
    13431344         risfdep(:,:)=0.0 ; misfdep(:,:) = 1 
    13441345         bathy  (:,:)=0.0 ; mbathy (:,:) = 0 
    13451346      END WHERE 
    13461347      ! 
    1347       ! 1.2 ensure a minimum thickness for iceshelf cavity in shallow water 
    1348       WHERE( (bathy(:,:) <= rn_isfshallow) .AND. (bathy(:,:) - risfdep(:,:) < rn_isfhw_shallow) )  
    1349          risfdep(:,:)=0.0 ; misfdep(:,:) = 1 
    1350          bathy  (:,:)=0.0 ; mbathy (:,:) = 0 
    1351       END WHERE 
     1348      ! 1.2 ensure a minimum thickness for iceshelf cavity => avoid to negative 
     1349      ! e3t if ssh + sum(e3t*tmask) < 0 
     1350      DO jj = 1, jpj 
     1351         DO ji = 1, jpi 
     1352            IF (bathy(ji,jj)-risfdep(ji,jj) < rn_isfhw_min) THEN 
     1353               IF ((bathy(ji,jj) - rn_isfhw_min) > MAX(rn_isfdep_min,e3t_1d(1))) THEN  
     1354                  risfdep(ji,jj) = bathy(ji,jj) - rn_isfhw_min 
     1355               ELSE 
     1356                  risfdep(ji,jj)=0.0 ; misfdep(ji,jj) = 1 
     1357                  bathy  (ji,jj)=0.0 ; mbathy (ji,jj) = 0 
     1358               END IF 
     1359            END IF 
     1360         END DO 
     1361      END DO 
    13521362      ! 
    13531363      ! 1.3 Remove channels and single point 'bay'. 
Note: See TracChangeset for help on using the changeset viewer.