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 4490 – NEMO

Changeset 4490


Ignore:
Timestamp:
2014-02-06T17:08:51+01:00 (10 years ago)
Author:
jchanut
Message:

Allow starting a vvl run without scale factors arrays

Location:
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DOM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r4370 r4490  
    8787                             CALL dom_msk      ! Masks 
    8888      IF( ln_sco )           CALL dom_stiff    ! Maximum stiffness ratio/hydrostatic consistency 
     89      ! 
     90      ht_0(:,:) = 0.0_wp                       ! Reference ocean depth at T-points 
     91      hu_0(:,:) = 0.0_wp                       ! Reference ocean depth at U-points 
     92      hv_0(:,:) = 0.0_wp                       ! Reference ocean depth at V-points 
     93      DO jk = 1, jpk 
     94         ht_0(:,:) = ht_0(:,:) + e3t_0(:,:,jk) * tmask(:,:,jk) 
     95         hu_0(:,:) = hu_0(:,:) + e3u_0(:,:,jk) * umask(:,:,jk) 
     96         hv_0(:,:) = hv_0(:,:) + e3v_0(:,:,jk) * vmask(:,:,jk) 
     97      END DO 
     98      ! 
    8999      IF( lk_vvl )           CALL dom_vvl_init ! Vertical variable mesh 
    90100      ! 
  • branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/DOM/domvvl.F90

    r4488 r4490  
    176176         fsdepw_b(:,:,jk) = fsdepw_b(:,:,jk-1) + fse3t_b(:,:,jk-1) 
    177177      END DO 
    178       ! Reference water column height at t-, u- and v- point 
    179       ! ---------------------------------------------------- 
    180       ht_0(:,:) = 0.0_wp 
    181       hu_0(:,:) = 0.0_wp 
    182       hv_0(:,:) = 0.0_wp 
    183       DO jk = 1, jpk 
    184          ht_0(:,:) = ht_0(:,:) + e3t_0(:,:,jk) * tmask(:,:,jk) 
    185          hu_0(:,:) = hu_0(:,:) + e3u_0(:,:,jk) * umask(:,:,jk) 
    186          hv_0(:,:) = hv_0(:,:) + e3v_0(:,:,jk) * vmask(:,:,jk) 
    187       END DO 
    188178 
    189179      ! Before depth and Inverse of the local depth of the water column at u- and v- points 
     
    803793      CHARACTER(len=*), INTENT(in) ::   cdrw   ! "READ"/"WRITE" flag 
    804794      !! * Local declarations 
     795      INTEGER ::   jk 
    805796      INTEGER ::   id1, id2, id3, id4, id5     ! local integers 
    806797      !!---------------------------------------------------------------------- 
     
    828819               ENDIF 
    829820            ELSE IF( id1 > 0 ) THEN 
    830                IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : fse3t_n not found in restart files' 
    831                IF(lwp) write(numout,*) 'fse3t_n set equal to fse3t_b.' 
     821               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : fse3t_b not found in restart files' 
     822               IF(lwp) write(numout,*) 'fse3t_b set equal to fse3t_n.' 
     823               IF(lwp) write(numout,*) 'neuler is forced to 0' 
    832824               fse3t_b(:,:,:) = fse3t_n(:,:,:) 
    833             ELSE                                 ! one at least array is missing 
    834                CALL ctl_stop( 'dom_vvl_rst: vvl cannot restart from a non vvl run' ) 
     825               neuler = 0 
     826            ELSE 
     827               IF(lwp) write(numout,*) 'dom_vvl_rst WARNING : fse3t_n not found in restart file' 
     828               IF(lwp) write(numout,*) 'Compute scale factor from sshn' 
     829               IF(lwp) write(numout,*) 'neuler is forced to 0' 
     830               DO jk=1,jpk 
     831                  fse3t_n(:,:,jk) =  e3t_0(:,:,jk) * ( ht_0(:,:) + sshn(:,:) ) & 
     832                      &                            / ( ht_0(:,:) + 1._wp - tmask(:,:,1) ) * tmask(:,:,jk) & 
     833                      &            + e3t_0(:,:,jk) * (1._wp -tmask(:,:,jk)) 
     834               END DO 
     835               fse3t_b(:,:,:) = fse3t_n(:,:,:) 
     836               neuler = 0 
    835837            ENDIF 
    836838            !                             ! ----------- ! 
Note: See TracChangeset for help on using the changeset viewer.