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 11602 for NEMO/branches/2019 – NEMO

Changeset 11602 for NEMO/branches/2019


Ignore:
Timestamp:
2019-09-26T17:16:00+02:00 (5 years ago)
Author:
mathiot
Message:

ENHANCE-03_domcfg: remove gde3w_0 as outputed in domcfg.nc (ticket #2143)

Location:
NEMO/branches/2019/ENHANCE-03_domcfg/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/ENHANCE-03_domcfg/src/dom_oce.F90

    r11201 r11602  
    208208   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   gdept_0 !: t- depth              [m] 
    209209   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   gdepw_0 !: w- depth              [m] 
    210    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   gde3w_0 !: w- depth (sum of e3w) [m] 
    211210   ! 
    212211   INTEGER, PUBLIC ::   nla10              !: deepest    W level Above  ~10m (nlb10 - 1) 
     
    240239   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:), TARGET :: wmask                        !: land/ocean mask at W- pts                
    241240 
    242    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: msk_opnsea, msk_closea                 !: open ocean mask, closed sea mask (all of them) 
    243    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: msk_glo  , msk_rnf  , msk_emp                !: closed sea masks 
    244    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: msk_gloid, msk_rnfid, msk_empid              !: closed sea masks 
     241   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: msk_opnsea, msk_closea                 !: open ocean mask, closed sea mask (all of them) 
     242   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: msk_glo  , msk_rnf  , msk_emp                !: closed sea masks 
     243   INTEGER , PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: msk_gloid, msk_rnfid, msk_empid              !: closed sea masks 
    245244 
    246245   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   tpol, fpol          !: north fold mask (jperio= 3 or 4) 
     
    322321         &      ff_f (jpi,jpj) ,    ff_t (jpi,jpj)                                     , STAT=ierr(3) ) 
    323322         ! 
    324       ALLOCATE( gdept_0(jpi,jpj,jpk) , gdepw_0(jpi,jpj,jpk) , gde3w_0(jpi,jpj,jpk) , STAT=ierr(4) ) 
     323      ALLOCATE( gdept_0(jpi,jpj,jpk) , gdepw_0(jpi,jpj,jpk) , STAT=ierr(4) ) 
    325324         ! 
    326325      ALLOCATE( e3t_0 (jpi,jpj,jpk) , e3u_0 (jpi,jpj,jpk) , e3v_0(jpi,jpj,jpk) , e3f_0(jpi,jpj,jpk) , e3w_0(jpi,jpj,jpk) ,   & 
  • NEMO/branches/2019/ENHANCE-03_domcfg/src/domzgr.F90

    r11201 r11602  
    170170         WRITE(numout,*) ' MIN val mbathy  ', MINVAL(  mbathy(:,:) ), ' MAX ', MAXVAL( mbathy(:,:) ) 
    171171         WRITE(numout,*) ' MIN val depth t ', MINVAL( gdept_0(:,:,:) ),   & 
    172             &                          ' w ', MINVAL( gdepw_0(:,:,:) ), '3w ', MINVAL( gde3w_0(:,:,:) ) 
     172            &                          ' w ', MINVAL( gdepw_0(:,:,:) ) 
    173173         WRITE(numout,*) ' MIN val e3    t ', MINVAL(   e3t_0(:,:,:) ), ' f ', MINVAL(   e3f_0(:,:,:) ),  & 
    174174            &                          ' u ', MINVAL(   e3u_0(:,:,:) ), ' u ', MINVAL(   e3v_0(:,:,:) ),  & 
     
    177177 
    178178         WRITE(numout,*) ' MAX val depth t ', MAXVAL( gdept_0(:,:,:) ),   & 
    179             &                          ' w ', MAXVAL( gdepw_0(:,:,:) ), '3w ', MAXVAL( gde3w_0(:,:,:) ) 
     179            &                          ' w ', MAXVAL( gdepw_0(:,:,:) ) 
    180180         WRITE(numout,*) ' MAX val e3    t ', MAXVAL(   e3t_0(:,:,:) ), ' f ', MAXVAL(   e3f_0(:,:,:) ),  & 
    181181            &                          ' u ', MAXVAL(   e3u_0(:,:,:) ), ' u ', MAXVAL(   e3v_0(:,:,:) ),  & 
     
    484484         risfdep(:,:)=0.e0 
    485485         misfdep(:,:)=1 
    486          ! 
    487          ! (ISF) TODO build ice draft netcdf file for isomip and build the corresponding part of code 
    488          IF( cp_cfg == "isomip" .AND. ln_isfcav ) THEN  
    489             risfdep(:,:)=200.e0  
    490             misfdep(:,:)=1  
    491             ij0 = 1 ; ij1 = 40  
    492             DO jj = mj0(ij0), mj1(ij1)  
    493                risfdep(:,jj)=700.0_wp-(gphit(:,jj)+80.0_wp)*125.0_wp  
    494             END DO  
    495             WHERE( bathy(:,:) <= 0._wp )  risfdep(:,:) = 0._wp  
    496          !  
    497          ELSEIF ( cp_cfg == "isomip2" .AND. ln_isfcav ) THEN 
    498          !  
    499             risfdep(:,:)=0.e0 
    500             misfdep(:,:)=1 
    501             ij0 = 1 ; ij1 = 40 
    502             DO jj = mj0(ij0), mj1(ij1) 
    503                risfdep(:,jj)=700.0_wp-(gphit(:,jj)+80.0_wp)*125.0_wp 
    504             END DO 
    505             WHERE( bathy(:,:) <= 0._wp )  risfdep(:,:) = 0._wp 
    506          END IF 
    507486         ! 
    508487         DEALLOCATE( idta, zdta ) 
     
    857836         gdept_0(:,:,jk) = gdept_1d(jk) 
    858837         gdepw_0(:,:,jk) = gdepw_1d(jk) 
    859          gde3w_0(:,:,jk) = gdepw_1d(jk) 
    860838         e3t_0  (:,:,jk) = e3t_1d  (jk) 
    861839         e3u_0  (:,:,jk) = e3t_1d  (jk) 
     
    10951073      IF( MINVAL( gdept_0(:,:,:) ) <  0._wp )   CALL ctl_stop( '    zgr_zps :   e r r o r   gdept_0 <  0' ) 
    10961074      IF( MINVAL( gdepw_0(:,:,:) ) <  0._wp )   CALL ctl_stop( '    zgr_zps :   e r r o r   gdepw_0 <  0' ) 
    1097       
    1098       ! Compute gde3w_0 (vertical sum of e3w) 
    1099       IF ( ln_isfcav ) THEN ! if cavity 
    1100          WHERE( misfdep == 0 )   misfdep = 1 
    1101          DO jj = 1,jpj 
    1102             DO ji = 1,jpi 
    1103                gde3w_0(ji,jj,1) = 0.5_wp * e3w_0(ji,jj,1) 
    1104                DO jk = 2, misfdep(ji,jj) 
    1105                   gde3w_0(ji,jj,jk) = gde3w_0(ji,jj,jk-1) + e3w_0(ji,jj,jk)  
    1106                END DO 
    1107                IF( misfdep(ji,jj) >= 2 )   gde3w_0(ji,jj,misfdep(ji,jj)) = risfdep(ji,jj) + 0.5_wp * e3w_0(ji,jj,misfdep(ji,jj)) 
    1108                DO jk = misfdep(ji,jj) + 1, jpk 
    1109                   gde3w_0(ji,jj,jk) = gde3w_0(ji,jj,jk-1) + e3w_0(ji,jj,jk)  
    1110                END DO 
    1111             END DO 
    1112          END DO 
    1113       ELSE ! no cavity 
    1114          gde3w_0(:,:,1) = 0.5_wp * e3w_0(:,:,1) 
    1115          DO jk = 2, jpk 
    1116             gde3w_0(:,:,jk) = gde3w_0(:,:,jk-1) + e3w_0(:,:,jk) 
    1117          END DO 
    1118       END IF 
    1119       ! 
     1075      ! 
     1076      ! if in the future gde3w_0 need to be compute, use the function defined in NEMO 
     1077      ! for now gde3w_0 computation is removed as not an output of domcfg 
     1078 
    11201079      DEALLOCATE( zprt ) 
    11211080      ! 
     
    21362095         WRITE(numout,*) ' MIN val mbathy  ', MINVAL( mbathy(:,:)    ), ' MAX ', MAXVAL( mbathy(:,:) ) 
    21372096         WRITE(numout,*) ' MIN val depth t ', MINVAL( gdept_0(:,:,:) ),   & 
    2138             &                          ' w ', MINVAL( gdepw_0(:,:,:) ), '3w '  , MINVAL( gde3w_0(:,:,:) ) 
     2097            &                          ' w ', MINVAL( gdepw_0(:,:,:) ) 
    21392098         WRITE(numout,*) ' MIN val e3    t ', MINVAL( e3t_0  (:,:,:) ), ' f '  , MINVAL( e3f_0  (:,:,:) ),   & 
    21402099            &                          ' u ', MINVAL( e3u_0  (:,:,:) ), ' u '  , MINVAL( e3v_0  (:,:,:) ),   & 
     
    21432102 
    21442103         WRITE(numout,*) ' MAX val depth t ', MAXVAL( gdept_0(:,:,:) ),   & 
    2145             &                          ' w ', MAXVAL( gdepw_0(:,:,:) ), '3w '  , MAXVAL( gde3w_0(:,:,:) ) 
     2104            &                          ' w ', MAXVAL( gdepw_0(:,:,:) ) 
    21462105         WRITE(numout,*) ' MAX val e3    t ', MAXVAL( e3t_0  (:,:,:) ), ' f '  , MAXVAL( e3f_0  (:,:,:) ),   & 
    21472106            &                          ' u ', MAXVAL( e3u_0  (:,:,:) ), ' u '  , MAXVAL( e3v_0  (:,:,:) ),   & 
     
    22462205      REAL(wp) ::   ztmpu1, ztmpv1, ztmpf1 
    22472206      ! 
    2248       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z_gsigw3, z_gsigt3, z_gsi3w3 
     2207      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z_gsigw3, z_gsigt3 
    22492208      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z_esigt3, z_esigw3, z_esigtu3, z_esigtv3, z_esigtf3, z_esigwu3, z_esigwv3            
    22502209      !!---------------------------------------------------------------------- 
    22512210 
    2252       ALLOCATE( z_gsigw3 (jpi,jpj,jpk), z_gsigt3 (jpi,jpj,jpk), z_gsi3w3 (jpi,jpj,jpk) ) 
     2211      ALLOCATE( z_gsigw3 (jpi,jpj,jpk), z_gsigt3 (jpi,jpj,jpk) ) 
    22532212      ALLOCATE( z_esigt3 (jpi,jpj,jpk), z_esigw3 (jpi,jpj,jpk), z_esigtu3(jpi,jpj,jpk), z_esigtv3(jpi,jpj,jpk) ) 
    22542213      ALLOCATE( z_esigtf3(jpi,jpj,jpk), z_esigwu3(jpi,jpj,jpk), z_esigwv3(jpi,jpj,jpk) ) 
    22552214 
    2256       z_gsigw3  = 0._wp   ;   z_gsigt3  = 0._wp   ;   z_gsi3w3  = 0._wp 
     2215      z_gsigw3  = 0._wp   ;   z_gsigt3  = 0._wp 
    22572216      z_esigt3  = 0._wp   ;   z_esigw3  = 0._wp  
    22582217      z_esigtu3 = 0._wp   ;   z_esigtv3 = 0._wp   ;   z_esigtf3 = 0._wp 
     
    22812240            z_esigt3(ji,jj,jpk) = 2._wp * ( z_gsigt3(ji,jj,jpk) - z_gsigw3(ji,jj,jpk) ) 
    22822241            ! 
    2283             ! Coefficients for vertical depth as the sum of e3w scale factors 
    2284             z_gsi3w3(ji,jj,1) = 0.5_wp * z_esigw3(ji,jj,1) 
    2285             DO jk = 2, jpk 
    2286                z_gsi3w3(ji,jj,jk) = z_gsi3w3(ji,jj,jk-1) + z_esigw3(ji,jj,jk) 
    2287             END DO 
    2288             ! 
    22892242            DO jk = 1, jpk 
    22902243               zcoeft = ( REAL(jk,wp) - 0.5_wp ) / REAL(jpkm1,wp) 
     
    22922245               gdept_0(ji,jj,jk) = ( scosrf(ji,jj) + (hbatt(ji,jj)-rn_hc)*z_gsigt3(ji,jj,jk)+rn_hc*zcoeft ) 
    22932246               gdepw_0(ji,jj,jk) = ( scosrf(ji,jj) + (hbatt(ji,jj)-rn_hc)*z_gsigw3(ji,jj,jk)+rn_hc*zcoefw ) 
    2294                gde3w_0(ji,jj,jk) = ( scosrf(ji,jj) + (hbatt(ji,jj)-rn_hc)*z_gsi3w3(ji,jj,jk)+rn_hc*zcoeft ) 
    22952247            END DO 
    22962248           ! 
     
    23372289      END DO 
    23382290      ! 
    2339       DEALLOCATE( z_gsigw3, z_gsigt3, z_gsi3w3                                      ) 
     2291      DEALLOCATE( z_gsigw3, z_gsigt3                                                        ) 
    23402292      DEALLOCATE( z_esigt3, z_esigw3, z_esigtu3, z_esigtv3, z_esigtf3, z_esigwu3, z_esigwv3 ) 
    23412293      ! 
     
    23652317      REAL(wp) ::   ztmpu1, ztmpv1, ztmpf1 
    23662318      ! 
    2367       REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z_gsigw3, z_gsigt3, z_gsi3w3 
     2319      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z_gsigw3, z_gsigt3 
    23682320      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: z_esigt3, z_esigw3, z_esigtu3, z_esigtv3, z_esigtf3, z_esigwu3, z_esigwv3            
    23692321      !!---------------------------------------------------------------------- 
    23702322      ! 
    2371       ALLOCATE( z_gsigw3 (jpi,jpj,jpk), z_gsigt3 (jpi,jpj,jpk), z_gsi3w3 (jpi,jpj,jpk) ) 
     2323      ALLOCATE( z_gsigw3 (jpi,jpj,jpk), z_gsigt3 (jpi,jpj,jpk) ) 
    23722324      ALLOCATE( z_esigt3 (jpi,jpj,jpk), z_esigw3 (jpi,jpj,jpk), z_esigtu3(jpi,jpj,jpk), z_esigtv3(jpi,jpj,jpk)) 
    23732325      ALLOCATE( z_esigtf3(jpi,jpj,jpk), z_esigwu3(jpi,jpj,jpk), z_esigwv3(jpi,jpj,jpk) ) 
    23742326 
    2375       z_gsigw3  = 0._wp   ;   z_gsigt3  = 0._wp   ;   z_gsi3w3  = 0._wp 
     2327      z_gsigw3  = 0._wp   ;   z_gsigt3  = 0._wp 
    23762328      z_esigt3  = 0._wp   ;   z_esigw3  = 0._wp  
    23772329      z_esigtu3 = 0._wp   ;   z_esigtv3 = 0._wp   ;   z_esigtf3 = 0._wp 
     
    24252377          z_esigt3(ji,jj,jpk) = 2.0_wp * (z_gsigt3(ji,jj,jpk) - z_gsigw3(ji,jj,jpk)) 
    24262378 
    2427           ! Coefficients for vertical depth as the sum of e3w scale factors 
    2428           z_gsi3w3(ji,jj,1) = 0.5 * z_esigw3(ji,jj,1) 
    2429           DO jk = 2, jpk 
    2430              z_gsi3w3(ji,jj,jk) = z_gsi3w3(ji,jj,jk-1) + z_esigw3(ji,jj,jk) 
    2431           END DO 
    2432  
    24332379          DO jk = 1, jpk 
    24342380             gdept_0(ji,jj,jk) = (scosrf(ji,jj)+hbatt(ji,jj))*z_gsigt3(ji,jj,jk) 
    24352381             gdepw_0(ji,jj,jk) = (scosrf(ji,jj)+hbatt(ji,jj))*z_gsigw3(ji,jj,jk) 
    2436              gde3w_0(ji,jj,jk) = (scosrf(ji,jj)+hbatt(ji,jj))*z_gsi3w3(ji,jj,jk) 
    24372382          END DO 
    24382383 
     
    25032448      CALL lbc_lnk('domzgr',e3uw_0,'T',1.) ; CALL lbc_lnk('domzgr',e3vw_0,'T',1.) 
    25042449      ! 
    2505       DEALLOCATE( z_gsigw3, z_gsigt3, z_gsi3w3                                      ) 
     2450      DEALLOCATE( z_gsigw3, z_gsigt3                                                        ) 
    25062451      DEALLOCATE( z_esigt3, z_esigw3, z_esigtu3, z_esigtv3, z_esigtf3, z_esigwu3, z_esigwv3 ) 
    25072452      ! 
     
    25212466      INTEGER  ::   ji, jj, jk       ! dummy loop argument 
    25222467      REAL(wp) ::   zcoeft, zcoefw   ! temporary scalars 
    2523       REAL(wp), ALLOCATABLE, DIMENSION(:) :: z_gsigw, z_gsigt, z_gsi3w 
     2468      REAL(wp), ALLOCATABLE, DIMENSION(:) :: z_gsigw, z_gsigt 
    25242469      REAL(wp), ALLOCATABLE, DIMENSION(:) :: z_esigt, z_esigw 
    25252470      !!---------------------------------------------------------------------- 
    25262471 
    2527       ALLOCATE( z_gsigw(jpk), z_gsigt(jpk), z_gsi3w(jpk) ) 
     2472      ALLOCATE( z_gsigw(jpk), z_gsigt(jpk) ) 
    25282473      ALLOCATE( z_esigt(jpk), z_esigw(jpk) ) 
    25292474 
    2530       z_gsigw  = 0._wp   ;   z_gsigt  = 0._wp   ;   z_gsi3w  = 0._wp 
     2475      z_gsigw  = 0._wp   ;   z_gsigt  = 0._wp 
    25312476      z_esigt  = 0._wp   ;   z_esigw  = 0._wp  
    25322477 
     
    25472492      z_esigt(jpk) = 2._wp * ( z_gsigt(jpk) - z_gsigw(jpk) ) 
    25482493      ! 
    2549       ! Coefficients for vertical depth as the sum of e3w scale factors 
    2550       z_gsi3w(1) = 0.5_wp * z_esigw(1) 
    2551       DO jk = 2, jpk 
    2552          z_gsi3w(jk) = z_gsi3w(jk-1) + z_esigw(jk) 
    2553       END DO 
    2554 !!gm: depuw, depvw can be suppressed (modif in ldfslp) and depw=dep3w can be set (save 3 3D arrays) 
    25552494      DO jk = 1, jpk 
    25562495         zcoeft = ( REAL(jk,wp) - 0.5_wp ) / REAL(jpkm1,wp) 
     
    25582497         gdept_0(:,:,jk) = ( scosrf(:,:) + (hbatt(:,:)-hift(:,:))*z_gsigt(jk) + hift(:,:)*zcoeft ) 
    25592498         gdepw_0(:,:,jk) = ( scosrf(:,:) + (hbatt(:,:)-hift(:,:))*z_gsigw(jk) + hift(:,:)*zcoefw ) 
    2560          gde3w_0(:,:,jk) = ( scosrf(:,:) + (hbatt(:,:)-hift(:,:))*z_gsi3w(jk) + hift(:,:)*zcoeft ) 
    2561       END DO 
    2562 !!gm: e3uw, e3vw can be suppressed  (modif in dynzdf, dynzdf_iso, zdfbfr) (save 2 3D arrays) 
     2499      END DO 
     2500 
    25632501      DO jj = 1, jpj 
    25642502         DO ji = 1, jpi 
     
    25762514      END DO 
    25772515      ! 
    2578       DEALLOCATE( z_gsigw, z_gsigt, z_gsi3w ) 
    2579       DEALLOCATE( z_esigt, z_esigw          ) 
     2516      DEALLOCATE( z_gsigw, z_gsigt ) 
     2517      DEALLOCATE( z_esigt, z_esigw ) 
    25802518      ! 
    25812519   END SUBROUTINE s_tanh 
Note: See TracChangeset for help on using the changeset viewer.