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

Changeset 7033


Ignore:
Timestamp:
2016-10-17T16:23:15+02:00 (7 years ago)
Author:
timgraham
Message:

Added extra diagnostics and corrected some of the surface coupling fields.

Location:
branches/UKMO/dev_r5518_GO6_package_MEDUSA_extra_CMIP6_diags/NEMOGCM
Files:
5 edited

Legend:

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

    r6919 r7033  
    10601060       <!-- Ideal Age tracer (added using MY_TRC for now) --> 
    10611061       <field id="Age"         long_name="Sea Water Age Since Surface Contact" standard_name="sea_water_age_since_first_contact" unit="yr" grid_ref="grid_T_3D" /> 
     1062       <field id="Age_e3t"    long_name="Age * e3t"                                 unit="yr * m"  > Age * e3t </field > 
    10621063     </field_group> 
    10631064 
  • branches/UKMO/dev_r5518_GO6_package_MEDUSA_extra_CMIP6_diags/NEMOGCM/NEMO/OPA_SRC/DIA/diaprod.F90

    r6731 r7033  
    116116            END DO 
    117117         END DO 
    118          CALL dia_ptr_ohst_components( jp_tem, 'vts', z3d) 
     118         IF(ln_diaptr) CALL dia_ptr_ohst_components( jp_tem, 'vts', z3d) 
    119119      ENDIF 
    120120 
     
    165165            END DO 
    166166         END DO 
    167          CALL dia_ptr_ohst_components( jp_sal, 'vts', z3d) 
     167         IF(ln_diaptr) CALL dia_ptr_ohst_components( jp_sal, 'vts', z3d) 
    168168      ENDIF 
    169169 
  • branches/UKMO/dev_r5518_GO6_package_MEDUSA_extra_CMIP6_diags/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r6731 r7033  
    393393         CALL lbc_lnk( z2d, 'V', -1. ) 
    394394         CALL iom_put( "v_salttr", 0.5 * z2d )            !  heat transport in j-direction 
     395      ENDIF 
     396 
     397      ! Vertical integral of temperature 
     398      IF( iom_use("tosmint") ) THEN 
     399         z2d(:,:)=0._wp 
     400         DO jk = 1, jpkm1 
     401            DO jj = 2, jpjm1 
     402               DO ji = fs_2, fs_jpim1   ! vector opt. 
     403                  z2d(ji,jj) = z2d(ji,jj) + rau0 * fse3t(ji,jj,jk) *  tsn(ji,jj,jk,jp_tem) 
     404               END DO 
     405            END DO 
     406         END DO 
     407         CALL lbc_lnk( z2d, 'T', -1. ) 
     408         CALL iom_put( "tosmint", z2d )  
     409      ENDIF 
     410 
     411      ! Vertical integral of salinity 
     412      IF( iom_use("somint") ) THEN 
     413         z2d(:,:)=0._wp 
     414         DO jk = 1, jpkm1 
     415            DO jj = 2, jpjm1 
     416               DO ji = fs_2, fs_jpim1   ! vector opt. 
     417                  z2d(ji,jj) = z2d(ji,jj) + rau0 * fse3t(ji,jj,jk) * tsn(ji,jj,jk,jp_sal) 
     418               END DO 
     419            END DO 
     420         END DO 
     421         CALL lbc_lnk( z2d, 'T', -1. ) 
     422         CALL iom_put( "somint", z2d )  
    395423      ENDIF 
    396424 
  • branches/UKMO/dev_r5518_GO6_package_MEDUSA_extra_CMIP6_diags/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r6920 r7033  
    17231723         IF( iom_use('hflx_rain_cea') )   & 
    17241724            CALL iom_put( 'hflx_rain_cea', frcv(jpr_rain)%z3(:,:,1) * zcptn(:,:) * tmask(:,:,1))   ! heat flux from liq. precip.  
     1725         IF( iom_use('hflx_prec_cea') )   & 
     1726            CALL iom_put( 'hflx_prec_cea', ztprecip * zcptn(:,:) * tmask(:,:,1) * p_frld(:,:) )   ! heat content flux from all precip  (cell avg) 
    17251727         IF( iom_use('evap_ao_cea') .OR. iom_use('hflx_evap_cea') )   & 
    17261728            ztmp(:,:) = frcv(jpr_tevp)%z3(:,:,1) - frcv(jpr_ievp)%z3(:,:,1) * zicefr(:,:) 
  • branches/UKMO/dev_r5518_GO6_package_MEDUSA_extra_CMIP6_diags/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90

    r6697 r7033  
    355355 
    356356         ! output 
    357          IF( iom_use('qisf'  ) )   CALL iom_put('qisf'  , qisf) 
    358          IF( iom_use('fwfisf') )   CALL iom_put('fwfisf', fwfisf * stbl(:,:) / soce ) 
     357         IF( iom_use('qlatisf' ) )   CALL iom_put('qlatisf', qisf) 
     358         IF( iom_use('fwfisf'  ) )   CALL iom_put('fwfisf' , fwfisf * stbl(:,:) / soce ) 
    359359 
    360360         ! if apply only on the trend and not as a volume flux (rdivisf = 0), fwfisf have to be set to 0 now 
     
    366366         CALL lbc_lnk(fwfisf(:,:)   ,'T',1.) 
    367367         CALL lbc_lnk(qisf(:,:)     ,'T',1.) 
     368 
     369!============================================================================================================================================= 
     370         IF ( iom_use('fwfisf3d') .OR. iom_use('qlatisf3d') .OR. iom_use('qhcisf3d') .OR. iom_use('qhcisf')) THEN 
     371            CALL wrk_alloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 
     372            CALL wrk_alloc( jpi,jpj,     zqhcisf2d                        ) 
     373 
     374            zfwfisf3d(:,:,:) = 0.0_wp                         ! 3d ice shelf melting (kg/m2/s) 
     375            zqhcisf3d(:,:,:) = 0.0_wp                         ! 3d heat content flux (W/m2) 
     376            zqlatisf3d(:,:,:)= 0.0_wp                         ! 3d ice shelf melting latent heat flux (W/m2) 
     377            zqhcisf2d(:,:)   = fwfisf(:,:) * zt_frz * rcp     ! 2d heat content flux (W/m2) 
     378 
     379            DO jj = 1,jpj 
     380               DO ji = 1,jpi 
     381                  ikt = misfkt(ji,jj) 
     382                  ikb = misfkb(ji,jj) 
     383                  DO jk = ikt, ikb - 1 
     384                     zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf   (ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 
     385                     zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 
     386                     zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf     (ji,jj) * r1_hisf_tbl(ji,jj) * fse3t(ji,jj,jk) 
     387                  END DO 
     388                  zfwfisf3d (ji,jj,jk) = zfwfisf3d (ji,jj,jk) + fwfisf   (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 
     389                  zqhcisf3d (ji,jj,jk) = zqhcisf3d (ji,jj,jk) + zqhcisf2d(ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 
     390                  zqlatisf3d(ji,jj,jk) = zqlatisf3d(ji,jj,jk) + qisf     (ji,jj) * r1_hisf_tbl(ji,jj) * ralpha(ji,jj) * fse3t(ji,jj,jk) 
     391               END DO 
     392            END DO 
     393 
     394            CALL iom_put('fwfisf3d' , zfwfisf3d (:,:,:)) 
     395            CALL iom_put('qlatisf3d', zqlatisf3d(:,:,:)) 
     396            CALL iom_put('qhcisf3d' , zqhcisf3d (:,:,:)) 
     397            CALL iom_put('qhcisf'   , zqhcisf2d (:,:  )) 
     398 
     399            CALL wrk_dealloc( jpi,jpj,jpk, zfwfisf3d, zqhcisf3d, zqlatisf3d ) 
     400            CALL wrk_dealloc( jpi,jpj,     zqhcisf2d                        ) 
     401         END IF 
     402!============================================================================================================================================= 
    368403 
    369404         IF( kt == nit000 ) THEN                          !   set the forcing field at nit000 - 1    ! 
Note: See TracChangeset for help on using the changeset viewer.