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

Changeset 15087


Ignore:
Timestamp:
2021-07-06T12:32:09+02:00 (3 years ago)
Author:
clem
Message:

nn_hls=2: debug diawri.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/DIA/diawri.F90

    r15017 r15087  
    135135      ENDIF 
    136136 
     137      ! initialize arrays 
     138      z2d(:,:)   = 0._wp 
     139      z3d(:,:,:) = 0._wp 
     140       
    137141      ! Output of initial vertical scale factor 
    138142      CALL iom_put("e3t_0", e3t_0(:,:,:) ) 
     
    142146      ! 
    143147      IF ( iom_use("tpt_dep") ) THEN 
    144          DO jk = 1, jpk 
    145             z3d(:,:,jk) = gdept(:,:,jk,Kmm) 
    146          END DO 
     148         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     149            z3d(ji,jj,jk) = gdept(ji,jj,jk,Kmm) 
     150         END_3D 
    147151         CALL iom_put( "tpt_dep", z3d ) 
    148152      ENDIF 
    149153 
     154      ! --- vertical scale factors --- ! 
    150155      IF ( iom_use("e3t") .OR. iom_use("e3tdef") ) THEN  ! time-varying e3t 
    151          DO jk = 1, jpk 
    152             z3d(:,:,jk) =  e3t(:,:,jk,Kmm) 
    153          END DO 
     156         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     157            z3d(ji,jj,jk) =  e3t(ji,jj,jk,Kmm) 
     158         END_3D 
    154159         CALL iom_put( "e3t", z3d ) 
    155160         IF ( iom_use("e3tdef") ) THEN 
    156             z3d(:,:,:) = ( ( z3d(:,:,:) - e3t_0(:,:,:) ) / e3t_0(:,:,:) * 100._wp * tmask(:,:,:) ) ** 2  
     161            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     162               z3d(ji,jj,jk) = ( ( z3d(ji,jj,jk) - e3t_0(ji,jj,jk) ) / e3t_0(ji,jj,jk) * 100._wp * tmask(ji,jj,jk) ) ** 2 
     163            END_3D 
    157164            CALL iom_put( "e3tdef", z3d )  
    158165         ENDIF 
    159166      ENDIF  
    160167      IF ( iom_use("e3u") ) THEN                         ! time-varying e3u 
    161          DO jk = 1, jpk 
    162             z3d(:,:,jk) =  e3u(:,:,jk,Kmm) 
    163          END DO  
     168         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     169            z3d(ji,jj,jk) =  e3u(ji,jj,jk,Kmm) 
     170         END_3D  
    164171         CALL iom_put( "e3u" , z3d ) 
    165172      ENDIF 
    166173      IF ( iom_use("e3v") ) THEN                         ! time-varying e3v 
    167          DO jk = 1, jpk 
    168             z3d(:,:,jk) =  e3v(:,:,jk,Kmm) 
    169          END DO  
     174         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     175            z3d(ji,jj,jk) =  e3v(ji,jj,jk,Kmm) 
     176         END_3D 
    170177         CALL iom_put( "e3v" , z3d ) 
    171178      ENDIF 
    172179      IF ( iom_use("e3w") ) THEN                         ! time-varying e3w 
    173          DO jk = 1, jpk 
    174             z3d(:,:,jk) =  e3w(:,:,jk,Kmm) 
    175          END DO  
     180         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     181            z3d(ji,jj,jk) =  e3w(ji,jj,jk,Kmm) 
     182         END_3D 
    176183         CALL iom_put( "e3w" , z3d ) 
    177184      ENDIF 
    178185      IF ( iom_use("e3f") ) THEN                         ! time-varying e3f caution here at Kaa 
    179           DO jk = 1, jpk 
    180             z3d(:,:,jk) =  e3f(:,:,jk) 
    181          END DO 
     186         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     187            z3d(ji,jj,jk) =  e3f(ji,jj,jk) 
     188         END_3D 
    182189         CALL iom_put( "e3f" , z3d ) 
    183190      ENDIF 
     
    199206      IF( iom_use("hf") )   CALL iom_put( "hf" , hf_0(:,:)*( 1._wp + r3f(:,:) ) )   ! water column at f-point (caution here at Naa) 
    200207#endif 
    201        
     208 
     209      ! --- tracers T&S --- !       
    202210      CALL iom_put( "toce", ts(:,:,:,jp_tem,Kmm) )    ! 3D temperature 
    203211      CALL iom_put(  "sst", ts(:,:,1,jp_tem,Kmm) )    ! surface temperature 
     212 
    204213      IF ( iom_use("sbt") ) THEN 
    205214         DO_2D( 0, 0, 0, 0 ) 
     
    222231      IF( .NOT.lk_SWE )   CALL iom_put( "rhop", rhop(:,:,:) )          ! 3D potential density (sigma0) 
    223232 
     233      ! --- momentum --- ! 
    224234      IF ( iom_use("taubot") ) THEN                ! bottom stress 
    225235         zztmp = rho0 * 0.25_wp 
     
    257267 
    258268      !                                            ! vertical velocity 
    259       IF( ln_zad_Aimp ) THEN   ;   IF( iom_use('woce') )   CALL iom_put( "woce", ww + wi )   ! explicit plus implicit parts 
    260       ELSE                     ;                           CALL iom_put( "woce", ww ) 
     269      IF( ln_zad_Aimp ) THEN 
     270         IF( iom_use('woce') ) THEN 
     271            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     272               z3d(ji,jj,jk) = ww(ji,jj,jk) + wi(ji,jj,jk) 
     273            END_3D 
     274            CALL iom_put( "woce", z3d )   ! explicit plus implicit parts 
     275         ENDIF 
     276      ELSE 
     277         CALL iom_put( "woce", ww ) 
    261278      ENDIF 
    262279 
    263280      IF( iom_use('w_masstr') .OR. iom_use('w_masstr2') ) THEN   ! vertical mass transport & its square value 
    264281         !                     ! Caution: in the VVL case, it only correponds to the baroclinic mass transport. 
    265          DO jk = 1, jpk 
    266             IF( ln_zad_Aimp ) THEN 
    267                z3d(:,:,jk) = rho0 * e1e2t(:,:) * ( ww(:,:,jk) + wi(:,:,jk) ) 
    268             ELSE 
    269                z3d(:,:,jk) = rho0 * e1e2t(:,:) * ww(:,:,jk) 
    270             ENDIF 
    271          END DO 
     282         IF( ln_zad_Aimp ) THEN 
     283            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     284               z3d(ji,jj,jk) = rho0 * e1e2t(ji,jj) * ( ww(ji,jj,jk) + wi(ji,jj,jk) ) 
     285            END_3D 
     286         ELSE 
     287            DO_3D( 0, 0, 0, 0, 1, jpk ) 
     288               z3d(ji,jj,jk) = rho0 * e1e2t(ji,jj) * ww(ji,jj,jk) 
     289            END_3D 
     290         ENDIF 
    272291         CALL iom_put( "w_masstr" , z3d )   
    273292         IF( iom_use('w_masstr2') )   CALL iom_put( "w_masstr2", z3d * z3d ) 
     
    341360      ! 
    342361      IF ( iom_use("ke") .OR. iom_use("ke_int") ) THEN 
    343          z3d(:,:,jpk) = 0._wp  
    344          DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
     362         DO_3D( 0, 0, 0, 0, 1, jpk ) 
    345363            zztmpx = uu(ji-1,jj  ,jk,Kmm) + uu(ji,jj,jk,Kmm) 
    346364            zztmpy = vv(ji  ,jj-1,jk,Kmm) + vv(ji,jj,jk,Kmm) 
     
    384402      IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 
    385403          
    386          z3d(:,:,jpk) = 0._wp 
    387          DO jk = 1, jpkm1 
    388             z3d(:,:,jk) = rho0 * uu(:,:,jk,Kmm) * e2u(:,:) * e3u(:,:,jk,Kmm) * umask(:,:,jk) 
    389          END DO 
     404         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     405            z3d(ji,jj,jk) = rho0 * uu(ji,jj,jk,Kmm) * e2u(ji,jj) * e3u(ji,jj,jk,Kmm) * umask(ji,jj,jk) 
     406         END_3D 
    390407         CALL iom_put( "u_masstr"     , z3d )      ! mass transport in i-direction 
    391408          
     
    393410            z2d(:,:) = 0._wp  
    394411            DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    395                z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 
     412               z2d(ji,jj) = z2d(ji,jj) + z3d(ji,jj,jk) 
    396413            END_3D 
    397414            CALL iom_put( "u_masstr_vint", z2d )   ! mass transport in i-direction vertical sum 
     
    417434      IF( iom_use("v_masstr") .OR. iom_use("v_heattr") .OR. iom_use("v_salttr") ) THEN 
    418435          
    419          z3d(:,:,jpk) = 0._wp 
    420          DO jk = 1, jpkm1 
    421             z3d(:,:,jk) = rho0 * vv(:,:,jk,Kmm) * e1v(:,:) * e3v(:,:,jk,Kmm) * vmask(:,:,jk) 
    422          END DO 
     436         DO_3D( 0, 0, 0, 0, 1, jpk ) 
     437            z3d(ji,jj,jk) = rho0 * vv(ji,jj,jk,Kmm) * e1v(ji,jj) * e3v(ji,jj,jk,Kmm) * vmask(ji,jj,jk) 
     438         END_3D 
    423439         CALL iom_put( "v_masstr", z3d )           ! mass transport in j-direction 
    424440          
Note: See TracChangeset for help on using the changeset viewer.