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 5862 for branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90 – NEMO

Ignore:
Timestamp:
2015-11-05T15:03:28+01:00 (8 years ago)
Author:
gm
Message:

#1613: vvl by default: non-vvl: initialize _b,n,a scale factors with _0 arrays

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r5845 r5862  
    8383      ENDIF 
    8484      ! 
    85       !              !==  Reference coordinate system  ==! 
     85      !                       !==  Reference coordinate system  ==! 
    8686      ! 
    8787                     CALL dom_nam               ! read namelist ( namrun, namdom ) 
     
    101101      END DO 
    102102      ! 
    103       !              !==  time varying part of coordinate system  ==! 
    104       ! 
    105       IF( lk_vvl ) THEN                         ! time varying : initialize before/now/after variables 
    106          CALL dom_vvl_init  
    107          ! 
    108       ELSE                                      ! Fix in time : set to the reference one for all 
    109          !    before         !          now          !       after         ! 
    110          gdept_b = gdept_0   ;   gdept_n = gdept_0   !        ---          ! depth of grid-points 
    111          gdepw_b = gdepw_0   ;   gdepw_n = gdepw_0   !        ---          ! 
    112                                  gde3w_n = gde3w_0   !        ---          ! 
     103      IF( lk_vvl ) THEN       !==  time varying coordinate system  ==! 
     104         ! 
     105         CALL dom_vvl_init                      ! set before/now/after variables 
     106         ! 
     107      ELSE                    !==  Fix in time  ==!   set everything to the reference one for all 
     108         ! 
     109         !       before        !          now          !       after         ! 
     110         ;  gdept_b = gdept_0  ;   gdept_n = gdept_0   !        ---          ! depth of grid-points 
     111         ;  gdepw_b = gdepw_0  ;   gdepw_n = gdepw_0   !        ---          ! 
     112         ;                     ;   gde3w_n = gde3w_0   !        ---          ! 
    113113         !                                                                   
    114            e3t_b =   e3t_0   ;     e3t_n =   e3t_0   ;   e3t_a =  e3t_0    ! scale factors 
    115            e3u_b =   e3u_0   ;     e3u_n =   e3u_0   ;   e3u_a =  e3u_0    ! 
    116            e3v_b =   e3v_0   ;     e3v_n =   e3u_0   ;   e3v_a =  e3v_0    ! 
    117                              ;     e3f_n =   e3f_0   !        ---          ! 
    118            e3w_b =   e3w_0   ;     e3w_n =   e3w_0   !        ---          ! 
    119           e3uw_b =  e3uw_0   ;    e3uw_n =  e3uw_0   !        ---          ! 
    120           e3vw_b =  e3vw_0   ;    e3vw_n =  e3vw_0   !        ---          ! 
    121          ! 
    122          !                                            !  
     114         ;    e3t_b =   e3t_0  ;     e3t_n =   e3t_0   ;   e3t_a =  e3t_0    ! scale factors 
     115         ;    e3u_b =   e3u_0  ;     e3u_n =   e3u_0   ;   e3u_a =  e3u_0    ! 
     116         ;    e3v_b =   e3v_0  ;     e3v_n =   e3v_0   ;   e3v_a =  e3v_0    ! 
     117         ;                     ;     e3f_n =   e3f_0   !        ---          ! 
     118         ;    e3w_b =   e3w_0  ;     e3w_n =   e3w_0   !        ---          ! 
     119         ;   e3uw_b =  e3uw_0  ;    e3uw_n =  e3uw_0   !        ---          ! 
     120         ;   e3vw_b =  e3vw_0  ;    e3vw_n =  e3vw_0   !        ---          ! 
     121         ! 
    123122         CALL wrk_alloc( jpi,jpj,   z1_hu_0, z1_hv_0 ) 
    124123         ! 
    125          z1_hu_0(:,:) = 1._wp / ( hu_0(:,:) + 1._wp - umask_i(:,:) ) * umask_i(:,:)    ! _i mask due to ISF 
    126          z1_hv_0(:,:) = 1._wp / ( hv_0(:,:) + 1._wp - vmask_i(:,:) ) * vmask_i(:,:) 
    127          ! 
    128          !        before       !         now         !       after         ! 
    129          ;                     ;     ht_n =    hu_0  ;    ht_a =    hu_0   ! water column thickness 
    130          ;     hu_b =    hu_0  ;     hu_n =    hu_0  ;    hu_a =    hu_0   !  
    131          ;     hv_b =    hv_0  ;     hv_n =    hv_0  ;    hv_a =    hv_0   ! 
    132          ;  r1_hu_b = z1_hu_0  ;  r1_hu_n = z1_hu_0  ; r1_hu_a = z1_hu_0   ! inverse of water column thickness 
    133          ;  r1_hv_b = z1_hv_0  ;  r1_hv_n = z1_hv_0  ; r1_hv_a = z1_hv_0   ! 
     124         z1_hu_0(:,:) = umask_i(:,:) / ( hu_0(:,:) + 1._wp - umask_i(:,:) )     ! _i mask due to ISF 
     125         z1_hv_0(:,:) = vmask_i(:,:) / ( hv_0(:,:) + 1._wp - vmask_i(:,:) ) 
     126         ! 
     127         !        before       !          now          !       after         ! 
     128         ;                     ;      ht_n =    ht_0   !                     ! water column thickness 
     129         ;     hu_b =    hu_0  ;      hu_n =    hu_0   ;    hu_a =    hu_0   !  
     130         ;     hv_b =    hv_0  ;      hv_n =    hv_0   ;    hv_a =    hv_0   ! 
     131         ;  r1_hu_b = z1_hu_0  ;   r1_hu_n = z1_hu_0   ; r1_hu_a = z1_hu_0   ! inverse of water column thickness 
     132         ;  r1_hv_b = z1_hv_0  ;   r1_hv_n = z1_hv_0   ; r1_hv_a = z1_hv_0   ! 
    134133         ! 
    135134         CALL wrk_dealloc( jpi,jpj,   z1_hu_0, z1_hv_0 ) 
Note: See TracChangeset for help on using the changeset viewer.