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 6535 for branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC – NEMO

Ignore:
Timestamp:
2016-05-13T16:40:54+02:00 (8 years ago)
Author:
timgraham
Message:

1) Added vertical integral of zonal mass transport to diawri (for use in calculating barotropic streamfunction)
2) Modified iom.F90 to automatically choose an ocean point for 1_point XIOS output scalars
3) Added heat flux from runoff to sbccpl and masked some fields where needed
4) Some modifications in field_def.xml

Location:
branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r6435 r6535  
    318318      CALL iom_put( "hdiv", hdivn )                  ! Horizontal divergence 
    319319      ! 
    320       IF( iom_use("u_masstr") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 
     320      IF( iom_use("u_masstr") .OR. iom_use("u_masstr_vint") .OR. iom_use("u_heattr") .OR. iom_use("u_salttr") ) THEN 
    321321         z3d(:,:,jpk) = 0.e0 
     322         z2d(:,:) = 0.e0 
    322323         DO jk = 1, jpkm1 
    323324            z3d(:,:,jk) = rau0 * un(:,:,jk) * e2u(:,:) * fse3u(:,:,jk) * umask(:,:,jk) 
     325            z2d(:,:) = z2d(:,:) + z3d(:,:,jk) 
    324326         END DO 
    325327         CALL iom_put( "u_masstr", z3d )                  ! mass transport in i-direction 
     328         CALL iom_put( "u_masstr_vint", z2d )             ! mass transport in i-direction vertical sum 
    326329      ENDIF 
    327330       
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90

    r6427 r6535  
    228228      ! automatic definitions of some of the xml attributs 
    229229      CALL set_xmlatt 
     230 
     231      CALL set_1point 
    230232 
    231233      ! end file definition 
     
    15671569      zz=REAL(narea,wp) 
    15681570      CALL iom_set_domain_attr('scalarpoint', lonvalue=zz, latvalue=zz) 
    1569        
     1571 
    15701572   END SUBROUTINE set_scalar 
     1573 
     1574   SUBROUTINE set_1point 
     1575      !!---------------------------------------------------------------------- 
     1576      !!                     ***  ROUTINE set_1point  *** 
     1577      !! 
     1578      !! ** Purpose :   define zoom grid for scalar fields 
     1579      !! 
     1580      !!---------------------------------------------------------------------- 
     1581      REAL(wp), DIMENSION(1)   ::   zz = 1. 
     1582      INTEGER  :: ix, iy 
     1583      !!---------------------------------------------------------------------- 
     1584      CALL dom_ngb( 180., 90., ix, iy, 'T' ) !  Nearest point to north pole should be ocean 
     1585      CALL iom_set_domain_attr('1point', zoom_ibegin=ix, zoom_jbegin=iy) 
     1586 
     1587   END SUBROUTINE set_1point 
    15711588 
    15721589 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r6427 r6535  
    14091409         zemp_tot(:,:) = frcv(jpr_tevp)%z3(:,:,1) - ztprecip(:,:) 
    14101410         zemp_ice(:,:) = frcv(jpr_ievp)%z3(:,:,1) - frcv(jpr_snow)%z3(:,:,1) 
    1411             CALL iom_put( 'rain'         , frcv(jpr_rain)%z3(:,:,1)              )   ! liquid precipitation  
     1411         CALL iom_put( 'rain'         , frcv(jpr_rain)%z3(:,:,1) * tmask(:,:,1)      )   ! liquid precipitation  
     1412         CALL iom_put( 'rain_ao_cea'  , frcv(jpr_rain)%z3(:,:,1)* p_frld(:,:) * tmask(:,:,1)      )   ! liquid precipitation  
    14121413         IF( iom_use('hflx_rain_cea') )   & 
    1413             CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) )   ! heat flux from liq. precip.  
     1414            CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) * tmask(:,:,1))   ! heat flux from liq. precip.  
    14141415         IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') )   & 
    14151416            ztmp(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) 
    14161417         IF( iom_use('evap_ao_cea'  ) )   & 
    1417             CALL iom_put( 'evap_ao_cea'  , ztmp                   )   ! ice-free oce evap (cell average) 
     1418            CALL iom_put( 'evap_ao_cea'  , ztmp * tmask(:,:,1)                  )   ! ice-free oce evap (cell average) 
    14181419         IF( iom_use('hflx_evap_cea') )   & 
    1419             CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * zcptn(:,:) )   ! heat flux from from evap (cell average) 
     1420            CALL iom_put( 'hflx_evap_cea', ztmp(:,:) * zcptn(:,:) * tmask(:,:,1) )   ! heat flux from from evap (cell average) 
    14201421      CASE( 'oce and ice'   )   ! received fields: jpr_sbpr, jpr_semp, jpr_oemp, jpr_ievp 
    14211422         zemp_tot(:,:) = p_frld(:,:) * frcv(jpr_oemp)%z3(:,:,1) + zicefr(:,:) * frcv(jpr_sbpr)%z3(:,:,1) 
     
    14791480      ! runoffs and calving (put in emp_tot) 
    14801481      IF( srcv(jpr_rnf)%laction )   rnf(:,:) = frcv(jpr_rnf)%z3(:,:,1) 
     1482      IF( iom_use('hflx_rnf_cea') )   & 
     1483         CALL iom_put( 'hflx_rnf_cea' , rnf(:,:) * zcptn(:,:) ) 
    14811484      IF( srcv(jpr_cal)%laction ) THEN  
    14821485         zemp_tot(:,:) = zemp_tot(:,:) - frcv(jpr_cal)%z3(:,:,1) 
     
    14961499      ENDIF 
    14971500 
    1498          CALL iom_put( 'snowpre'    , sprecip                                )   ! Snow 
     1501         CALL iom_put( 'snowpre'    , sprecip * tmask(:,:,1)                 )   ! Snow 
    14991502      IF( iom_use('snow_ao_cea') )   & 
    1500          CALL iom_put( 'snow_ao_cea', sprecip(:,:) * p_frld(:,:)             )   ! Snow        over ice-free ocean  (cell average) 
     1503         CALL iom_put( 'snow_ao_cea', sprecip(:,:) * p_frld(:,:) * tmask(:,:,1)       )   ! Snow        over ice-free ocean  (cell average) 
    15011504      IF( iom_use('snow_ai_cea') )   & 
    1502          CALL iom_put( 'snow_ai_cea', sprecip(:,:) * zicefr(:,:)             )   ! Snow        over sea-ice         (cell average) 
     1505         CALL iom_put( 'snow_ai_cea', sprecip(:,:) * zicefr(:,:) * tmask(:,:,1)       )   ! Snow        over sea-ice         (cell average) 
    15031506#endif 
    15041507 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd.F90

    r6433 r6535  
    262262            ztrdz(:,:,:) = ztrdz(:,:,:) + zwz(:,:,:)  ! <<< Add to previously computed 
    263263             
    264             CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) )    
    265             CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) )   
    266             CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) )  
     264            CALL trd_tra( kt, cdtype, jn, jptra_xad, ztrdx, pun, ptn(:,:,:,jn) ) 
     265            CALL trd_tra( kt, cdtype, jn, jptra_yad, ztrdy, pvn, ptn(:,:,:,jn) ) 
     266            CALL trd_tra( kt, cdtype, jn, jptra_zad, ztrdz, pwn, ptn(:,:,:,jn) ) 
    267267         END IF 
    268268         !                                 ! "Poleward" heat and salt transports (contribution of upstream fluxes) 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftmx.F90

    r6437 r6535  
    918918         CALL iom_put( "pcmap_tmx", pcmap_tmx ) 
    919919      ENDIF 
     920      CALL iom_put( "bn2", rn2 ) 
    920921      CALL iom_put( "emix_tmx", emix_tmx ) 
    921922       
Note: See TracChangeset for help on using the changeset viewer.