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 10302 for branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA – NEMO

Ignore:
Timestamp:
2018-11-13T18:21:16+01:00 (6 years ago)
Author:
dford
Message:

Merge in revisions 8447:10159 of dev_r5518_GO6_package.

Location:
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diadct.F90

    r6486 r10302  
    13021302 
    13031303   SUBROUTINE dia_dct_init          ! Dummy routine 
    1304       WRITE(*,*) 'dia_dct_init: You should not have seen this print! error?', kt 
     1304   IMPLICIT NONE 
     1305      WRITE(*,*) 'dia_dct_init: You should not have seen this print! error?' 
    13051306   END SUBROUTINE dia_dct_init 
    13061307 
    13071308   SUBROUTINE dia_dct( kt )         ! Dummy routine 
     1309   IMPLICIT NONE 
    13081310      INTEGER, INTENT( in ) :: kt   ! ocean time-step index 
    13091311      WRITE(*,*) 'dia_dct: You should not have seen this print! error?', kt 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diahsb.F90

    r6487 r10302  
    254254           IF(lwp) WRITE(numout,*) ' dia_hsb_rst at it= ', kt,' date= ', ndastp 
    255255           IF(lwp) WRITE(numout,*) '~~~~~~~' 
     256           IF(nn_timing == 2)  CALL timing_start('iom_rstget') 
    256257           CALL iom_get( numror, 'frc_v', frc_v ) 
    257258           CALL iom_get( numror, 'frc_t', frc_t ) 
     
    269270              CALL iom_get( numror, jpdom_autoglo, 'ssh_sc_loc_ini', ssh_sc_loc_ini ) 
    270271           ENDIF 
     272           IF(nn_timing == 2)  CALL timing_stop('iom_rstget') 
    271273       ELSE 
    272274          IF(lwp) WRITE(numout,*) '~~~~~~~' 
     
    304306        IF(lwp) WRITE(numout,*) ' dia_hsb_rst at it= ', kt,' date= ', ndastp 
    305307        IF(lwp) WRITE(numout,*) '~~~~~~~' 
    306  
     308        IF(nn_timing == 2)  CALL timing_start('iom_rstput') 
    307309        CALL iom_rstput( kt, nitrst, numrow, 'frc_v'   , frc_v     ) 
    308310        CALL iom_rstput( kt, nitrst, numrow, 'frc_t'   , frc_t     ) 
     
    320322           CALL iom_rstput( kt, nitrst, numrow, 'ssh_sc_loc_ini', ssh_sc_loc_ini ) 
    321323        ENDIF 
     324        IF(nn_timing == 2)  CALL timing_stop('iom_rstput') 
    322325        ! 
    323326     ENDIF 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diahth.F90

    r6486 r10302  
    343343CONTAINS 
    344344   SUBROUTINE dia_hth( kt )         ! Empty routine 
    345       WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 
     345   IMPLICIT NONE 
     346    INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     347    WRITE(*,*) 'dia_hth: You should not have seen this print! error?', kt 
    346348   END SUBROUTINE dia_hth 
    347349#endif 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90

    r7747 r10302  
    8484      REAL(wp), DIMENSION(jpi,jpj)     ::  z2d   ! 2D workspace 
    8585      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  z3d   ! 3D workspace 
     86      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zvn   ! 3D workspace 
    8687      REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zmask   ! 3D workspace 
    8788      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts) ::  zts   ! 3D workspace 
     
    9394      REAL(wp), DIMENSION(jpj,jpk,nptr) ::   sjk  , r1_sjk ! i-mean i-k-surface and its inverse 
    9495      REAL(wp), DIMENSION(jpj,jpk,nptr) ::   v_msf, sn_jk  , tn_jk ! i-mean T and S, j-Stream-Function 
    95       REAL(wp), DIMENSION(jpi,jpj,jpk) ::  zvn   ! 3D workspace 
    9696 
    9797 
     
    102102 
    103103      ! 
     104      z2d(:,:) = 0._wp 
    104105      z3d(:,:,:) = 0._wp 
    105106      IF( PRESENT( pvtr ) ) THEN 
     
    130131            zmask(:,:,:) = 0._wp 
    131132            zts(:,:,:,:) = 0._wp 
    132             zvn(:,:,:) = 0._wp 
    133133            DO jk = 1, jpkm1 
    134134               DO jj = 1, jpjm1 
     
    138138                     zts(ji,jj,jk,jp_tem) = (tsn(ji,jj,jk,jp_tem)+tsn(ji,jj+1,jk,jp_tem)) * 0.5 * zvfc  !Tracers averaged onto V grid 
    139139                     zts(ji,jj,jk,jp_sal) = (tsn(ji,jj,jk,jp_sal)+tsn(ji,jj+1,jk,jp_sal)) * 0.5 * zvfc 
    140                      zvn(ji,jj,jk)        = vn(ji,jj,jk)         * zvfc 
    141140                  ENDDO 
    142141               ENDDO 
     
    151150             tn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_tem) ) * r1_sjk(:,:,1) 
    152151             sn_jk(:,:,1) = ptr_sjk( zts(:,:,:,jp_sal) ) * r1_sjk(:,:,1) 
    153              v_msf(:,:,1) = ptr_sjk( zvn(:,:,:) ) 
     152             v_msf(:,:,1) = ptr_sjk( pvtr(:,:,:) ) 
    154153 
    155154             htr_ove(:,1) = SUM( v_msf(:,:,1)*tn_jk(:,:,1) ,2 ) 
     
    177176                    tn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 
    178177                    sn_jk(:,:,jn) = ptr_sjk( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) * r1_sjk(:,:,jn) 
    179                     v_msf(:,:,jn) = ptr_sjk( zvn(:,:,:), btmsk(:,:,jn) )  
     178                    v_msf(:,:,jn) = ptr_sjk( pvtr(:,:,:), btmsk(:,:,jn) )  
    180179                    htr_ove(:,jn) = SUM( v_msf(:,:,jn)*tn_jk(:,:,jn) ,2 ) 
    181180                    str_ove(:,jn) = SUM( v_msf(:,:,jn)*sn_jk(:,:,jn) ,2 ) 
     
    202201             WHERE( sjk(:,1,1) /= 0._wp )   r1_sjk(:,1,1) = 1._wp / sjk(:,1,1) 
    203202             
    204             vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,1)) 
     203            vsum = ptr_sj( pvtr(:,:,:), btmsk(:,:,1)) 
    205204            tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,1) ) 
    206205            tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,1) ) 
     
    224223                    r1_sjk(:,1,jn) = 0._wp 
    225224                    WHERE( sjk(:,1,jn) /= 0._wp )   r1_sjk(:,1,jn) = 1._wp / sjk(:,1,jn) 
    226                     vsum = ptr_sj( zvn(:,:,:), btmsk(:,:,jn)) 
     225                    vsum = ptr_sj( pvtr(:,:,:), btmsk(:,:,jn)) 
    227226                    tssum(:,jp_tem) = ptr_sj( zts(:,:,:,jp_tem), btmsk(:,:,jn) ) 
    228227                    tssum(:,jp_sal) = ptr_sj( zts(:,:,:,jp_sal), btmsk(:,:,jn) ) 
     
    248247         ! 
    249248         IF( iom_use("zotemglo") ) THEN    ! i-mean i-k-surface  
     249            zmask(:,:,:) = 0._wp 
     250            zts(:,:,:,:) = 0._wp 
    250251            DO jk = 1, jpkm1 
    251252               DO jj = 1, jpj 
     
    408409            ENDIF 
    409410            IF( iom_use("zomsfeivglo") ) THEN 
    410                z3d(1,:,:) = ptr_sjk( v_eiv(:,:,:) )  ! zonal cumulative effective transport 
     411               DO jk=1,jpk 
     412                  DO jj=1,jpj 
     413                     DO ji=1,jpi 
     414                        zvn(ji,jj,jk) = v_eiv(ji,jj,jk) * fse3v(ji,jj,jk) * e1v(ji,jj) 
     415                     ENDDO 
     416                  ENDDO 
     417               ENDDO 
     418               z3d(1,:,:) = ptr_sjk( zvn(:,:,:) )  ! zonal cumulative effective transport 
    411419               DO jk = jpkm1,1,-1 
    412420                 z3d(1,:,jk) = z3d(1,:,jk+1) - z3d(1,:,jk)   ! effective j-Stream-Function (MSF) 
     
    419427               IF( ln_subbas ) THEN 
    420428                  DO jn = 2, nptr                                    ! by sub-basins 
    421                      z3d(1,:,:) =  ptr_sjk( v_eiv(:,:,:), btmsk(:,:,jn) )  
     429                     z3d(1,:,:) =  ptr_sjk( zvn(:,:,:), btmsk(:,:,jn) )  
    422430                     DO jk = jpkm1,1,-1 
    423431                        z3d(1,:,jk) = z3d(1,:,jk+1) - z3d(1,:,jk)    ! effective j-Stream-Function (MSF) 
     
    492500 
    493501         IF( ln_subbas ) THEN                ! load sub-basin mask 
    494             CALL iom_open( 'subbasins', inum,  ldstop = .FALSE.  ) 
     502            CALL iom_open( 'subbasins', inum,  ldstop = .TRUE.  ) 
    495503            CALL iom_get( inum, jpdom_data, 'atlmsk', btmsk(:,:,2) )   ! Atlantic basin 
    496504            CALL iom_get( inum, jpdom_data, 'pacmsk', btmsk(:,:,3) )   ! Pacific  basin 
  • branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r8400 r10302  
    246246            z3d(:,:,jk) = wn(:,:,jk) * z2d(:,:) 
    247247         END DO 
     248         CALL lbc_lnk( z3d(:,:,:), 'W', 1. ) 
    248249         CALL iom_put( "w_masstr" , z3d )   
    249250         IF( iom_use('w_masstr2') )   CALL iom_put( "w_masstr2", z3d(:,:,:) * z3d(:,:,:) ) 
     
    252253      CALL iom_put( "avt" , avt                        )    ! T vert. eddy diff. coef. 
    253254      CALL iom_put( "avm" , avmu                       )    ! T vert. eddy visc. coef. 
     255#if defined key_zdftke 
    254256      IF( lk_zdftke ) THEN    
    255257         CALL iom_put( "tke"      , en                               )    ! TKE budget: Turbulent Kinetic Energy    
    256258         CALL iom_put( "tke_niw"  , e_niw                            )    ! TKE budget: Near-inertial waves    
    257259      ENDIF  
     260#endif 
    258261      CALL iom_put( "avs" , fsavs(:,:,:)               )    ! S vert. eddy diff. coef. (useful only with key_zdfddm) 
    259262                                                            ! Log of eddy diff coef 
     
    334337            z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 
    335338         END DO 
     339         CALL lbc_lnk( z3d(:,:,:), 'U', -1. ) 
    336340         CALL iom_put( "u_masstr", z3d )                  ! mass transport in i-direction 
     341         CALL lbc_lnk( z2d(:,:), 'U', -1. ) 
    337342         CALL iom_put( "u_masstr_vint", z2d )             ! mass transport in i-direction vertical sum 
    338343      ENDIF 
     
    370375            z3d(:,:,jk) = rau0 * vn(:,:,jk) * e1v(:,:) * fse3v(:,:,jk) * vmask(:,:,jk) 
    371376         END DO 
     377         CALL lbc_lnk( z3d(:,:,:), 'V', -1. ) 
    372378         CALL iom_put( "v_masstr", z3d )                  ! mass transport in j-direction 
    373379      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.