Ignore:
Timestamp:
2016-11-04T06:54:44+01:00 (4 years ago)
Author:
gm
Message:

#1692 - branch SIMPLIF_2_usrdef: e3.=dk[dep.] (discret derivative)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6409_SIMPLIF_2_usrdef/NEMOGCM/NEMO/OPA_SRC/DOM/domzgr.F90

    r6977 r7188  
    2929   USE dom_oce        ! ocean domain 
    3030   USE usrdef_zgr     ! user defined vertical coordinate system 
     31   USE depth_e3       ! depth <=> e3 
    3132   ! 
    3233   USE in_out_manager ! I/O manager 
     
    110111      ENDIF 
    111112      ! 
    112 !!gm to be remove when changing the definition of e3 scale factors so that gde3w disappears 
     113!!gm to be remove when removing the OLD definition of e3 scale factors so that gde3w disappears 
    113114      ! Compute gde3w_0 (vertical sum of e3w) 
    114115      gde3w_0(:,:,1) = 0.5_wp * e3w_0(:,:,1) 
     
    189190      INTEGER , DIMENSION(:,:)  , INTENT(out) ::   k_top , k_bot               ! first & last ocean level 
    190191      ! 
     192      INTEGER  ::   jk     ! dummy loop index 
    191193      INTEGER  ::   inum   ! local logical unit 
    192194      REAL(WP) ::   z_zco, z_zps, z_sco, z_cav 
     
    215217      ! 
    216218      !                                   ! reference 1D-coordinate 
    217       CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d )    
    218       CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d ) 
    219219      CALL iom_get( inum, jpdom_unknown, 'e3t_1d'  , pe3t_1d  ) 
    220220      CALL iom_get( inum, jpdom_unknown, 'e3w_1d'  , pe3w_1d  ) 
    221221      ! 
    222       !                                   ! depth 
    223       CALL iom_get( inum, jpdom_data, 'gdept_0', pdept  ) 
    224       CALL iom_get( inum, jpdom_data, 'gdepw_0', pdepw  ) 
    225 !      CALL iom_get( inum, jpdom_data, 'gde3w_0', pde3w ) 
    226       ! 
    227       !                                   ! vertical scale factors 
    228       CALL iom_get( inum, jpdom_data, 'e3t_0'  , pe3t  ) 
    229       CALL iom_get( inum, jpdom_data, 'e3u_0'  , pe3u  ) 
    230       CALL iom_get( inum, jpdom_data, 'e3v_0'  , pe3v  ) 
    231       CALL iom_get( inum, jpdom_data, 'e3f_0'  , pe3f  ) 
    232       CALL iom_get( inum, jpdom_data, 'e3w_0'  , pe3w  ) 
    233       CALL iom_get( inum, jpdom_data, 'e3uw_0' , pe3uw ) 
    234       CALL iom_get( inum, jpdom_data, 'e3vw_0' , pe3vw ) 
    235  
     222      IF(  iom_varid( inum, 'gdept_1d', ldstop = .FALSE. ) > 0  .AND.  & 
     223         & iom_varid( inum, 'gdepw_1d', ldstop = .FALSE. ) > 0    ) THEN 
     224         CALL ctl_warn( 'zgr_read : old definition of 1d depths and scale factors used ', &  
     225            &                      'depths at t- and w-points read in domain_cfg file') 
     226         CALL iom_get( inum, jpdom_unknown, 'gdept_1d', pdept_1d )    
     227         CALL iom_get( inum, jpdom_unknown, 'gdepw_1d', pdepw_1d ) 
     228      ELSE  
     229         CALL e3_to_depth( pe3t_1d, pe3w_1d, pdept_1d, pdepw_1d ) 
     230         IF(lwp) THEN                        ! control print 
     231            WRITE(numout,*) 
     232            WRITE(numout,*) '              Reference 1D z-coordinate depth and scale factors:' 
     233            WRITE(numout, "(9x,' level  gdept_1d  gdepw_1d  e3t_1d   e3w_1d  ')" ) 
     234            WRITE(numout, "(10x, i4, 4f9.2)" ) ( jk, pdept_1d(jk), pdepw_1d(jk), pe3t_1d(jk), pe3w_1d(jk), jk = 1, jpk ) 
     235         ENDIF 
     236      ENDIF 
     237      ! 
     238      !                                   ! 3D vertical scale factors 
     239      CALL iom_get( inum, jpdom_data, 'e3t_0'  , pe3t  , lrowattr=ln_use_jattr ) 
     240      CALL iom_get( inum, jpdom_data, 'e3u_0'  , pe3u  , lrowattr=ln_use_jattr ) 
     241      CALL iom_get( inum, jpdom_data, 'e3v_0'  , pe3v  , lrowattr=ln_use_jattr ) 
     242      CALL iom_get( inum, jpdom_data, 'e3f_0'  , pe3f  , lrowattr=ln_use_jattr ) 
     243      CALL iom_get( inum, jpdom_data, 'e3w_0'  , pe3w  , lrowattr=ln_use_jattr ) 
     244      CALL iom_get( inum, jpdom_data, 'e3uw_0' , pe3uw , lrowattr=ln_use_jattr ) 
     245      CALL iom_get( inum, jpdom_data, 'e3vw_0' , pe3vw , lrowattr=ln_use_jattr ) 
     246      ! 
     247      !                                   ! 3D depths 
     248      IF(  iom_varid( inum, 'gdept_0', ldstop = .FALSE. ) > 0  .AND.  & 
     249         & iom_varid( inum, 'gdepw_0', ldstop = .FALSE. ) > 0    ) THEN 
     250         CALL ctl_warn( 'zgr_read : old definition of depths and scale factors used ', &  
     251            &                      'depths at t- and w-points read in domain_cfg file') 
     252         CALL iom_get( inum, jpdom_data, 'gdept_0' , pdept , lrowattr=ln_use_jattr ) 
     253         CALL iom_get( inum, jpdom_data, 'gdepw_0' , pdepw , lrowattr=ln_use_jattr ) 
     254      ELSE 
     255         CALL e3_to_depth( pe3t, pe3w, pdept, pdepw ) 
     256      ENDIF 
     257      ! 
    236258      !                                   ! ocean top and bottom level 
    237       CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d    )  ! nb of ocean T-points 
     259      CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d  , lrowattr=ln_use_jattr )  ! nb of ocean T-points 
    238260      k_bot(:,:) = INT( z2d(:,:) ) 
    239       CALL iom_get( inum, jpdom_data, 'top_level'    , z2d    )   ! nb of ocean T-points (ISF) 
     261      CALL iom_get( inum, jpdom_data, 'top_level'    , z2d  , lrowattr=ln_use_jattr )   ! nb of ocean T-points (ISF) 
    240262      k_top(:,:) = INT( z2d(:,:) ) 
    241263      ! 
Note: See TracChangeset for help on using the changeset viewer.