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

Changeset 7582


Ignore:
Timestamp:
2017-01-20T14:53:20+01:00 (7 years ago)
Author:
timgraham
Message:

Added code to allow output of some diagnostics which are constant in Met Office CMIP6 models
Changes described in UKESM ticket 324 (https://code.metoffice.gov.uk/trac/UKESM/ticket/324)

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

Legend:

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

    r7335 r7582  
    146146      ENDIF 
    147147 
     148      !CMIP6 output of areacello and sftof (In NEMO this is currently just the T 
     149      !mask converted to a percentage) 
     150      CALL iom_put("areacello", e12t) 
     151      CALL iom_put("sftof", tmask(:,:,1)*100 ) 
     152 
     153      !CMIP6 at timestep 1 output depth of bottom W level 
     154      !This will account for any modifications made to the bathy (e.g. 
     155      !suppression of isolated grid points 
     156      IF(kt == nit000) THEN 
     157         z2d(:,:)=0._wp 
     158         DO jj=1,jpj 
     159            DO ji=1,jpi 
     160               jk=mbathy(ji,jj) 
     161               IF(jk > 0) z2d(ji,jj) = gdepw_0(ji,jj,jk+1) 
     162            ENDDO 
     163         ENDDO 
     164         CALL iom_put( 'deptho', z2d ) 
     165      ENDIF 
     166       
     167 
    148168      ! Output of initial vertical scale factor 
    149169      CALL iom_put("e3t_0", e3t_0(:,:,:) ) 
     
    257277      IF( iom_use('logavt') )   CALL iom_put( "logavt", LOG( MAX( 1.e-20_wp, avt  (:,:,:) ) ) ) 
    258278      IF( iom_use('logavs') )   CALL iom_put( "logavs", LOG( MAX( 1.e-20_wp, fsavs(:,:,:) ) ) ) 
     279 
     280      IF(kt == nit000) THEN 
     281         !Output 3D fields of background vertical diffusion (avtb and avmb) 
     282         DO jj=1,jpj 
     283            DO ji=1,jpi 
     284               z3d(ji,jj,:) = avtb(:) 
     285            ENDDO 
     286         ENDDO 
     287         CALL iom_put('avtb', z3d) 
     288         DO jj=1,jpj 
     289            DO ji=1,jpi 
     290               z3d(ji,jj,:) = avmb(:) 
     291            ENDDO 
     292         ENDDO 
     293         CALL iom_put('avmb', z3d) 
     294      ENDIF 
    259295 
    260296      IF ( iom_use("sstgrad") .OR. iom_use("sstgrad2") ) THEN 
  • branches/UKMO/dev_r5518_GO6_package_for_static_diagnostics/NEMOGCM/NEMO/OPA_SRC/DYN/dynldf.F90

    r6486 r7582  
    5858      ! 
    5959      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     60      REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztmp 
    6061      !!---------------------------------------------------------------------- 
    6162      ! 
     
    6768         ztrdv(:,:,:) = va(:,:,:)  
    6869      ENDIF 
    69  
     70       
    7071      SELECT CASE ( nldf )                       ! compute lateral mixing trend and add it to the general trend 
    7172      ! 
    7273      CASE ( 0 )    ;   CALL dyn_ldf_lap    ( kt )      ! iso-level laplacian 
    73       CASE ( 1 )    ;   CALL dyn_ldf_iso    ( kt )      ! rotated laplacian (except dk[ dk[.] ] part) 
    74       CASE ( 2 )    ;   CALL dyn_ldf_bilap  ( kt )      ! iso-level bilaplacian 
     74      CASE ( 1 ) 
     75          CALL dyn_ldf_iso    ( kt )      ! rotated laplacian (except dk[ dk[.] ] part) 
     76#ifdef key_dynldf_c2d 
     77          IF (kt == nit000) CALL iom_put("ahmt_lap", ahm1) 
     78#endif 
     79      CASE ( 2 )     
     80          CALL dyn_ldf_bilap  ( kt )      ! iso-level bilaplacian 
     81#ifdef key_dynldf_c2d 
     82          !Average ahm3 and ahm4 onto T points and output for CMIP6 diagnostics 
     83          ! Near coastal  
     84          IF (kt == nit000) THEN 
     85             CALL wrk_alloc(jpi, jpj, ztmp) 
     86             DO jj=2,jpj 
     87                DO ji=2,jpi 
     88                   ztmp(ji,jj) = (ahm3(ji,jj)*umask(ji,jj) + ahm3(ji-1,jj)*umask(ji-1,jj) & 
     89                                + ahm4(ji,jj)*vmask(ji,jj) + ahm4(ji,jj-1)*vmask(ji,jj-1)) / & 
     90                      &  (umask(ji,jj) + umask(ji-1,jj) + vmask(ji,jj) + vmask(ji,jj-1)) 
     91                ENDDO 
     92             ENDDO 
     93             ztmp =  
     94             CALL iom_put("ahmt_blb", ztmp) 
     95             CALL wrk_dealloc(jpi, jpj, ztmp) 
     96          ENDIF 
     97#endif 
    7598      CASE ( 3 )    ;   CALL dyn_ldf_bilapg ( kt )      ! s-coord. horizontal bilaplacian 
    7699      CASE ( 4 )                                        ! iso-level laplacian + bilaplacian 
  • branches/UKMO/dev_r5518_GO6_package_for_static_diagnostics/NEMOGCM/NEMO/OPA_SRC/LDF/ldftra_c2d.h90

    r6486 r7582  
    9292               &                         1, jpj, 1, 1.e-3, numout ) 
    9393         ENDIF 
     94 
    9495      ENDIF 
    9596       
  • branches/UKMO/dev_r5518_GO6_package_for_static_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90

    r6486 r7582  
    7979      REAL(wp) ::   zqgh_trd      ! geothermal heat flux trend 
    8080      REAL(wp), POINTER, DIMENSION(:,:,:) ::   ztrdt 
     81      REAL(wp), POINTER, DIMENSION(:,:) ::   ztmp 
    8182      !!---------------------------------------------------------------------- 
    8283      ! 
     
    8889      ENDIF 
    8990      ! 
     91      IF( kt == nit000 ) THEN 
     92      !Output the geothermal heat flux once for CMIP6 diagnostics 
     93         wrk_alloc(jpi, jpj, ztmp) 
     94         ztmp(:,:) = qgh_trd0(:,:)*rcp_rau0 
     95         CALL iom_put( 'hfgeou', ztmp ) 
     96         wrk_dealloc(jpi, jpj, ztmp) 
     97      ENDIF 
     98 
    9099      !                             !  Add the geothermal heat flux trend on temperature 
    91100      DO jj = 2, jpjm1 
  • branches/UKMO/dev_r5518_GO6_package_for_static_diagnostics/NEMOGCM/NEMO/OPA_SRC/TRA/traldf.F90

    r6498 r7582  
    7676      ENDIF 
    7777 
     78 
     79#ifdef key_traldf_c2d 
     80      IF (kt == nit000) THEN 
     81         CALL iom_put( "aht2D", ahtw) 
     82#endif 
     83 
     84 
    7885      SELECT CASE ( nldf )                       ! compute lateral mixing trend and add it to the general trend 
    7986      CASE ( 0 )   ;   CALL tra_ldf_lap     ( kt, nit000, 'TRA', gtsu, gtsv, gtui, gtvi,        & 
Note: See TracChangeset for help on using the changeset viewer.