Ignore:
Timestamp:
2019-12-11T09:53:24+01:00 (14 months ago)
Author:
cetlod
Message:

dev_merge_option2 : merge in ENHANCE-02_ISF_nemo branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/OCE/DOM/domvvl.F90

    r11536 r12166  
    3636 
    3737   PUBLIC  dom_vvl_init       ! called by domain.F90 
     38   PUBLIC  dom_vvl_zgr        ! called by isfcpl.F90 
    3839   PUBLIC  dom_vvl_sf_nxt     ! called by step.F90 
    3940   PUBLIC  dom_vvl_sf_swp     ! called by step.F90 
     
    115116      !! Reference  : Leclair, M., and G. Madec, 2011, Ocean Modelling. 
    116117      !!---------------------------------------------------------------------- 
     118      ! 
     119      IF(lwp) WRITE(numout,*) 
     120      IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 
     121      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
     122      ! 
     123      CALL dom_vvl_ctl     ! choose vertical coordinate (z_star, z_tilde or layer) 
     124      ! 
     125      !                    ! Allocate module arrays 
     126      IF( dom_vvl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 
     127      ! 
     128      !                    ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 
     129      CALL dom_vvl_rst( nit000, 'READ' ) 
     130      e3t_a(:,:,jpk) = e3t_0(:,:,jpk)  ! last level always inside the sea floor set one for all 
     131      ! 
     132      CALL dom_vvl_zgr() ! interpolation scale factor, depth and water column 
     133      ! 
     134   END SUBROUTINE dom_vvl_init 
     135   ! 
     136   SUBROUTINE dom_vvl_zgr() 
     137      !!---------------------------------------------------------------------- 
     138      !!                ***  ROUTINE dom_vvl_init  *** 
     139      !!                    
     140      !! ** Purpose :  Interpolation of all scale factors,  
     141      !!               depths and water column heights 
     142      !! 
     143      !! ** Method  :  - interpolate scale factors 
     144      !! 
     145      !! ** Action  : - e3t_(n/b) and tilde_e3t_(n/b) 
     146      !!              - Regrid: e3(u/v)_n 
     147      !!                        e3(u/v)_b        
     148      !!                        e3w_n            
     149      !!                        e3(u/v)w_b       
     150      !!                        e3(u/v)w_n       
     151      !!                        gdept_n, gdepw_n and gde3w_n 
     152      !!              - h(t/u/v)_0 
     153      !!              - frq_rst_e3t and frq_rst_hdv 
     154      !! 
     155      !! Reference  : Leclair, M., and G. Madec, 2011, Ocean Modelling. 
     156      !!---------------------------------------------------------------------- 
    117157      INTEGER ::   ji, jj, jk 
    118158      INTEGER ::   ii0, ii1, ij0, ij1 
    119159      REAL(wp)::   zcoef 
    120160      !!---------------------------------------------------------------------- 
    121       ! 
    122       IF(lwp) WRITE(numout,*) 
    123       IF(lwp) WRITE(numout,*) 'dom_vvl_init : Variable volume activated' 
    124       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
    125       ! 
    126       CALL dom_vvl_ctl     ! choose vertical coordinate (z_star, z_tilde or layer) 
    127       ! 
    128       !                    ! Allocate module arrays 
    129       IF( dom_vvl_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'dom_vvl_init : unable to allocate arrays' ) 
    130       ! 
    131       !                    ! Read or initialize e3t_(b/n), tilde_e3t_(b/n) and hdiv_lf 
    132       CALL dom_vvl_rst( nit000, 'READ' ) 
    133       e3t_a(:,:,jpk) = e3t_0(:,:,jpk)  ! last level always inside the sea floor set one for all 
    134161      ! 
    135162      !                    !== Set of all other vertical scale factors  ==!  (now and before) 
     
    263290      ENDIF 
    264291      ! 
    265    END SUBROUTINE dom_vvl_init 
    266  
     292   END SUBROUTINE dom_vvl_zgr 
    267293 
    268294   SUBROUTINE dom_vvl_sf_nxt( kt, kcall )  
     
    813839            id4 = iom_varid( numror, 'tilde_e3t_n', ldstop = .FALSE. ) 
    814840            id5 = iom_varid( numror, 'hdiv_lf', ldstop = .FALSE. ) 
     841            ! 
    815842            !                             ! --------- ! 
    816843            !                             ! all cases ! 
    817844            !                             ! --------- ! 
     845            ! 
    818846            IF( MIN( id1, id2 ) > 0 ) THEN       ! all required arrays exist 
    819847               CALL iom_get( numror, jpdom_autoglo, 'e3t_b', e3t_b(:,:,:), ldxios = lrxios ) 
     
    10331061      ! 
    10341062      IF( ioptio /= 1 )   CALL ctl_stop( 'Choose ONE vertical coordinate in namelist nam_vvl' ) 
    1035       IF( .NOT. ln_vvl_zstar .AND. ln_isf ) CALL ctl_stop( 'Only vvl_zstar has been tested with ice shelf cavity' ) 
    10361063      ! 
    10371064      IF(lwp) THEN                   ! Print the choice 
Note: See TracChangeset for help on using the changeset viewer.