Changeset 6672


Ignore:
Timestamp:
2016-06-07T14:16:21+02:00 (4 years ago)
Author:
timgraham
Message:

Added product diagnostic module and used this to include OHT calculated from v*T terms

Location:
branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/CONFIG/SHARED/field_def.xml

    r6663 r6672  
    404404         <field id="u_masstr_vint" long_name="vertical integral of ocean eulerian mass transport along i-axis"    standard_name="vertical_integral_of_ocean_mass_x_transport"  unit="kg/s" /> 
    405405         <field id="u_heattr"     long_name="ocean eulerian heat transport along i-axis"    standard_name="ocean_heat_x_transport"                          unit="W"                                /> 
     406         <field id="uadv_heattr"  long_name="ocean advective heat transport along i-axis"    standard_name="advectice_ocean_heat_x_transport"                          unit="W"                                /> 
    406407         <field id="u_salttr"     long_name="ocean eulerian salt transport along i-axis"    standard_name="ocean_salt_x_transport"                          unit="0.001*kg/s"                        /> 
    407408         <field id="ueiv_heattr"  long_name="ocean bolus heat transport along i-axis"       standard_name="ocean_heat_x_transport_due_to_bolus_advection"   unit="W"                                /> 
     
    441442         <field id="v_masstr"     long_name="Ocean Mass Y Transport"    standard_name="ocean_mass_y_transport"                          unit="kg/s"        grid_ref="grid_V_3D" /> 
    442443         <field id="v_heattr"     long_name="Ocean Heat X Transport"    standard_name="ocean_heat_y_transport"                          unit="W"                                /> 
     444         <field id="vadv_heattr"  long_name="ocean advective heat transport along j-axis"    standard_name="advectice_ocean_heat_y_transport"                          unit="W"                                /> 
    443445         <field id="v_salttr"     long_name="ocean eulerian salt transport along i-axis"    standard_name="ocean_salt_y_transport"                          unit="0.001*kg/s"                        /> 
    444446         <field id="veiv_heattr"  long_name="ocean bolus heat transport along j-axis"       standard_name="ocean_heat_y_transport_due_to_bolus_advection"   unit="W"                                /> 
     
    491493      </field_group> 
    492494           
     495      <!-- product fields --> 
     496      <field_group id="diaprod"> 
     497   <field id="ut"           long_name="product_of_sea_water_x_velocity_and_potential_temperature"      unit="degree_C m/s"      grid_ref="grid_U_3D"   /> 
     498        <field id="ut_e3u"       long_name="product_of_sea_water_x_velocity_and_potential_temperature * e3u"  unit="degree_C m2/s"   grid_ref="grid_U_3D" > ut * e3u </field > 
     499   <field id="us"           long_name="product_of_sea_water_x_velocity_and_salinity"                   unit="PSU m/s"       grid_ref="grid_U_3D"   /> 
     500        <field id="us_e3u"       long_name="product_of_sea_water_x_velocity_and_salinity * e3u"             unit="PSU m2/s"      grid_ref="grid_U_3D" > us * e3u </field > 
     501   <field id="urhop"        long_name="product_of_sea_water_x_velocity_and_potential_density"          unit="(kg/m3).(m/s)" grid_ref="grid_U_3D"   /> 
     502        <field id="urhop_e3u"    long_name="product_of_sea_water_x_velocity_and_potential_density * e3u"    unit="(kg/m3).(m2/s)"   grid_ref="grid_U_3D" > urhop * e3u </field > 
     503   <field id="vt"           long_name="product_of_sea_water_y_velocity_and_potential_temperature"      unit="degree_C m/s"      grid_ref="grid_V_3D"   /> 
     504        <field id="vt_e3v"       long_name="product_of_sea_water_y_velocity_and_potential_temperature * e3v"  unit="degree_C m2/s"   grid_ref="grid_V_3D" > vt * e3v </field > 
     505   <field id="vs"           long_name="product_of_sea_water_y_velocity_and_salinity"                   unit="PSU m/s"       grid_ref="grid_V_3D"   /> 
     506        <field id="vs_e3v"       long_name="product_of_sea_water_y_velocity_and_salinity * e3t"             unit="PSU m2/s"      grid_ref="grid_V_3D" > vs * e3v </field > 
     507   <field id="vrhop"        long_name="product_of_sea_water_y_velocity_and_potential_density"          unit="(kg/m3).(m/s)" grid_ref="grid_V_3D"   /> 
     508        <field id="vrhop_e3v"    long_name="product_of_sea_water_y_velocity_and_potential_density * e3t"    unit="(kg/m3).(m2/s)"  grid_ref="grid_V_3D" > vrhop * e3v </field > 
     509   <field id="wt"           long_name="product_of_upward_sea_water_velocity_and_potential_temperature" unit="degree_C m/s"      grid_ref="grid_W_3D"   /> 
     510   <field id="ws"           long_name="product_of_upward_sea_water_velocity_and_salinity"              unit="PSU m/s"       grid_ref="grid_W_3D"   /> 
     511   <field id="wrhop"        long_name="product_of_upward_sea_water_velocity_and_potential_density"     unit="(kg/m3).(m/s)" grid_ref="grid_W_3D"   /> 
     512      </field_group> 
     513 
    493514      <!-- scalar variables available with key_diaar5 --> 
    494515 
     
    659680        <field id="sopsteiv_ind"      long_name="Salt Transport from mesoscale eddy advection: Indian"             unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
    660681        <field id="sopsteiv_ipc"      long_name="Salt Transport from mesoscale eddy advection: Pacific+Indian"     unit="Giga g/s"       grid_ref="gznl_T_2D" />        
     682        <field id="sopht_vt"          long_name="Heat Transport"                     unit="PW"       grid_ref="gznl_T_2D" /> 
     683        <field id="sopht_vt_atl"      long_name="Heat Transport: Atlantic"           unit="PW"       grid_ref="gznl_T_2D" /> 
     684        <field id="sopht_vt_ind"      long_name="Heat Transport: Indian"             unit="PW"       grid_ref="gznl_T_2D" /> 
     685        <field id="sopht_vt_pac"      long_name="Heat Transport: Pacific"            unit="PW"       grid_ref="gznl_T_2D" /> 
     686        <field id="sopht_vt_ipc"      long_name="Heat Transport: Indo-Pacific"       unit="PW"       grid_ref="gznl_T_2D" /> 
     687        <field id="sopst_vs"          long_name="Salt Transport"                     unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
     688        <field id="sopst_vt_atl"      long_name="Salt Transport: Atlantic"           unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
     689        <field id="sopst_vt_ind"      long_name="Salt Transport: Indian"             unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
     690        <field id="sopst_vt_pac"      long_name="Salt Transport: Pacific"            unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
     691        <field id="sopst_vt_ipc"      long_name="Salt Transport: Indo-Pacific"       unit="Giga g/s"       grid_ref="gznl_T_2D" /> 
    661692      </field_group> 
    662693 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/DIA/diaptr.F90

    r6652 r6672  
    4242 
    4343   !                                  !!** namelist  namptr  ** 
    44    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   htr_adv, htr_ldf, htr_eiv   !: Heat TRansports (adv, diff, Bolus.) 
    45    REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   str_adv, str_ldf, str_eiv   !: Salt TRansports (adv, diff, Bolus.) 
     44   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   htr_adv, htr_ldf, htr_eiv, htr_vt   !: Heat TRansports (adv, diff, Bolus.) 
     45   REAL(wp), ALLOCATABLE, SAVE, PUBLIC, DIMENSION(:,:) ::   str_adv, str_ldf, str_eiv, str_vs   !: Salt TRansports (adv, diff, Bolus.) 
    4646 
    4747   LOGICAL, PUBLIC ::   ln_diaptr   !  Poleward transport flag (T) or not (F) 
     
    207207               ENDDO 
    208208               cl1 = TRIM('sopstldf_'//clsubb(jn))                  
     209               CALL iom_put( cl1, z2d )               
     210              ENDDO 
     211            ENDIF 
     212         ENDIF 
     213 
     214         IF( iom_use("sopht_vt") .OR. iom_use("sopst_vs") ) THEN    
     215            z2d(1,:) = htr_vt(:,1) * rc_pwatt        !  (conversion in PW)  
     216            DO ji = 1, jpi 
     217               z2d(ji,:) = z2d(1,:) 
     218            ENDDO 
     219            cl1 = 'sopht_vt' 
     220            CALL iom_put( TRIM(cl1), z2d ) 
     221            z2d(1,:) = str_vs(:,1) * rc_ggram        !  (conversion in Gg) 
     222            DO ji = 1, jpi 
     223               z2d(ji,:) = z2d(1,:) 
     224            ENDDO 
     225            cl1 = 'sopst_vs' 
     226            CALL iom_put( TRIM(cl1), z2d ) 
     227            IF( ln_subbas ) THEN 
     228              DO jn=2,nptr 
     229               z2d(1,:) = htr_vt(:,jn) * rc_pwatt        !  (conversion in PW) 
     230               DO ji = 1, jpi 
     231                 z2d(ji,:) = z2d(1,:) 
     232               ENDDO 
     233               cl1 = TRIM('sopht_vt_'//clsubb(jn))                  
     234               CALL iom_put( cl1, z2d ) 
     235               z2d(1,:) = str_vs(:,jn) * rc_ggram        ! (conversion in Gg) 
     236               DO ji = 1, jpi 
     237                  z2d(ji,:) = z2d(1,:) 
     238               ENDDO 
     239               cl1 = TRIM('sopst_vs_'//clsubb(jn))                  
    209240               CALL iom_put( cl1, z2d )               
    210241              ENDDO 
     
    327358         htr_ldf(:,:) = 0._wp  ;  str_ldf(:,:) =  0._wp  
    328359         htr_eiv(:,:) = 0._wp  ;  str_eiv(:,:) =  0._wp  
     360         htr_vt(:,:) = 0._wp  ;   str_vs(:,:) =  0._wp  
    329361         ! 
    330362      ENDIF  
     
    357389         IF( ktra == jp_sal )  str_eiv(:,1) = ptr_sj( pva(:,:,:) ) 
    358390      ENDIF 
     391      IF( cptr == 'vts' ) THEN 
     392         IF( ktra == jp_tem )  htr_vt(:,1) = ptr_sj( pva(:,:,:) ) 
     393         IF( ktra == jp_sal )  str_vs(:,1) = ptr_sj( pva(:,:,:) ) 
     394      ENDIF 
    359395      ! 
    360396      IF( ln_subbas ) THEN 
     
    393429                DO jn = 2, nptr 
    394430                   str_eiv(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 
     431                END DO 
     432             ENDIF 
     433         ENDIF 
     434         IF( cptr == 'vts' ) THEN 
     435             IF( ktra == jp_tem ) THEN  
     436                DO jn = 2, nptr 
     437                    htr_vt(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 
     438                 END DO 
     439             ENDIF 
     440             IF( ktra == jp_sal ) THEN  
     441                DO jn = 2, nptr 
     442                   str_vs(:,jn) = ptr_sj( pva(:,:,:), btmsk(:,:,jn) ) 
    395443                END DO 
    396444             ENDIF 
     
    414462         &      htr_adv(jpj,nptr) , str_adv(jpj,nptr) ,   & 
    415463         &      htr_eiv(jpj,nptr) , str_eiv(jpj,nptr) ,   & 
     464         &      htr_vt(jpj,nptr)  , str_vs(jpj,nptr)  ,   & 
    416465         &      htr_ldf(jpj,nptr) , str_ldf(jpj,nptr) , STAT=ierr(1)  ) 
    417466         ! 
  • branches/UKMO/v3_6_extra_CMIP6_diagnostics/NEMOGCM/NEMO/OPA_SRC/step.F90

    r6427 r6672  
    234234      IF( lk_diaar5  )      CALL dia_ar5( kstp )         ! ar5 diag 
    235235      IF( lk_diaharm )      CALL dia_harm( kstp )        ! Tidal harmonic analysis 
     236                            CALL dia_prod( kstp )        ! ocean model: product diagnostics 
    236237                            CALL dia_wri( kstp )         ! ocean model: outputs 
    237238      ! 
Note: See TracChangeset for help on using the changeset viewer.