Changeset 7869


Ignore:
Timestamp:
2017-04-04T12:21:15+02:00 (3 years ago)
Author:
marc
Message:

Moved GTRU & GTRV into dump and only call ZPS_HDE in TRC_INIT at start-up.

Location:
branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r7865 r7869  
    546546      ! Partial steps: before Horizontal DErivative 
    547547      IF( ln_zps  .AND. .NOT. ln_isfcav)                            & 
    548          &            CALL zps_hde    ( kt, jpts, pts,              & 
    549          &                                        fse3w_n, gdept_n, & 
    550          &                                        gtsu, gtsv,       &  ! Partial steps: before horizontal gradient 
     548         &            CALL zps_hde    ( kt, jpts, pts, gtsu, gtsv,  &  ! Partial steps: before horizontal gradient 
    551549         &                                        rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    552550      IF( ln_zps .AND.        ln_isfcav)                            & 
    553          &            CALL zps_hde_isf( kt, jpts, pts,              & 
    554          &                              fse3w_n, gdept_n, gdep3w_n, & 
    555          &                                        gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
     551         &            CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    556552         &                                        rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    557553         &                                 gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the first ocean level 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90

    r7865 r7869  
    646646      !! ** Action  :  
    647647      !!---------------------------------------------------------------------- 
    648       USE dom_oce, ONLY: e3w_n 
    649  
    650648      INTEGER, INTENT(IN) :: kt               ! Current time step 
    651649      ! 
     
    749747 
    750748            IF( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav)      & 
    751                &  CALL zps_hde    ( kt, jpts, tsb, e3w_n, gdept_n,    & 
    752                &                              gtsu, gtsv,             &  ! Partial steps: before horizontal gradient 
     749               &  CALL zps_hde    ( kt, jpts, tsb, gtsu, gtsv,        &  ! Partial steps: before horizontal gradient 
    753750               &                              rhd, gru , grv          )  ! of t, s, rd at the last ocean level 
    754751            IF( ln_zps .AND. .NOT. lk_c1d .AND.       ln_isfcav)      & 
    755                &  CALL zps_hde_isf( nit000, jpts, tsb,                & 
    756                &                    e3w_n, gdept_n, gdep3w_n,         & 
    757                &                    gtsu, gtsv,                       &    ! Partial steps for top cell (ISF) 
     752               &  CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv,    &    ! Partial steps for top cell (ISF) 
    758753               &                                  rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    759754               &                           gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the last ocean level 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r7865 r7869  
    130130#if ! defined key_c1d 
    131131         IF( ln_zps .AND. .NOT. ln_isfcav)                                 & 
    132             &            CALL zps_hde    ( nit000, jpts, tsb,              & 
    133             &                              e3w_n, gdept_n, gtsu, gtsv,     &    ! Partial steps: before horizontal gradient 
     132            &            CALL zps_hde    ( nit000, jpts, tsb, gtsu, gtsv,  &    ! Partial steps: before horizontal gradient 
    134133            &                                            rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    135134         IF( ln_zps .AND.       ln_isfcav)                                 & 
    136             &            CALL zps_hde_isf( nit000, jpts, tsb,              & 
    137             &                              e3w_n, gdept_n, gdep3w_n,       & 
    138             &                              gtsu, gtsv,                     &    ! Partial steps for top cell (ISF) 
     135            &            CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    139136            &                                            rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    140137            &                                     gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the last ocean level 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/OPA_SRC/TRA/zpshde.F90

    r7865 r7869  
    3232 
    3333   !! * Substitutions 
     34#  include "domzgr_substitute.h90" 
    3435#  include "vectopt_loop_substitute.h90" 
    3536   !!---------------------------------------------------------------------- 
     
    4041CONTAINS 
    4142 
    42    SUBROUTINE zps_hde( kt, kjpt, pta, fse3w, fsdept, pgtu, pgtv,   & 
     43   SUBROUTINE zps_hde( kt, kjpt, pta, pgtu, pgtv,   & 
    4344      &                          prd, pgru, pgrv    ) 
    4445      !!---------------------------------------------------------------------- 
     
    8889      INTEGER                              , INTENT(in   )           ::  kjpt        ! number of tracers 
    8990      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   )           ::  pta         ! 4D tracers fields 
    90       REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   )           ::  fse3w       ! Vertical scale factor on w pts 
    91       REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   )           ::  fsdept      !  Depth now at t pts 
    9291      REAL(wp), DIMENSION(jpi,jpj,    kjpt), INTENT(  out)           ::  pgtu, pgtv  ! hor. grad. of ptra at u- & v-pts  
    9392      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ), OPTIONAL ::  prd         ! 3D density anomaly fields 
     
    197196   END SUBROUTINE zps_hde 
    198197   ! 
    199    SUBROUTINE zps_hde_isf( kt, kjpt, pta, fse3w, fsdept, fsde3w, pgtu, pgtv,  & 
     198   SUBROUTINE zps_hde_isf( kt, kjpt, pta, pgtu, pgtv,   & 
    200199      &                          prd, pgru, pgrv, pmru, pmrv, pgzu, pgzv, pge3ru, pge3rv,  & 
    201200      &                   pgtui, pgtvi, pgrui, pgrvi, pmrui, pmrvi, pgzui, pgzvi, pge3rui, pge3rvi ) 
     
    249248      INTEGER                              , INTENT(in   )           ::  kjpt        ! number of tracers 
    250249      REAL(wp), DIMENSION(jpi,jpj,jpk,kjpt), INTENT(in   )           ::  pta         ! 4D tracers fields 
    251       REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   )           ::  fse3w       ! Vertical scale factor on w pts 
    252       REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   )           ::  fsdept      !  Depth now at t pts 
    253       REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(in   )           ::  fsde3w      ! Now depth of t pts (sum of e3w) (m) 
    254250      REAL(wp), DIMENSION(jpi,jpj,    kjpt), INTENT(  out)           ::  pgtu, pgtv  ! hor. grad. of ptra at u- & v-pts  
    255251      REAL(wp), DIMENSION(jpi,jpj,    kjpt), INTENT(  out)           ::  pgtui, pgtvi  ! hor. grad. of stra at u- & v-pts (ISF) 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/OPA_SRC/step.F90

    r7865 r7869  
    3131   !!   stp             : OPA system time-stepping 
    3232   !!---------------------------------------------------------------------- 
    33    USE dom_oce, ONLY: e3w_n, gdep3w_n, gdept_n 
    3433   USE step_oce         ! time stepping definition modules 
    3534   USE iom 
     
    156155                         CALL eos( tsb, rhd, gdept_0(:,:,:) )               ! before in situ density 
    157156         IF( ln_zps .AND. .NOT. ln_isfcav)                               & 
    158             &            CALL zps_hde    ( kstp, jpts, tsb,              & 
    159             &                              e3w_n, gdept_n, gtsu, gtsv,   &  ! Partial steps: before horizontal gradient 
     157            &            CALL zps_hde    ( kstp, jpts, tsb, gtsu, gtsv,  &  ! Partial steps: before horizontal gradient 
    160158            &                                          rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    161159         IF( ln_zps .AND.       ln_isfcav)                               & 
    162             &            CALL zps_hde_isf( kstp, jpts, tsb,              & 
    163             &                              e3w_n, gdept_n, gdep3w_n,     & 
    164             &                              gtsu, gtsv,                   &    ! Partial steps for top cell (ISF) 
     160            &            CALL zps_hde_isf( kstp, jpts, tsb, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    165161            &                                          rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    166162            &                                   gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the first ocean level 
     
    195191                            CALL eos    ( tsn, rhd, rhop, fsdept_n(:,:,:) ) ! now in situ density for hpg computation 
    196192            IF( ln_zps .AND. .NOT. ln_isfcav)                               & 
    197                &            CALL zps_hde    ( kstp, jpts, tsn,              & 
    198                &                              e3w_n, gdept_n, gtsu, gtsv,   &    ! Partial steps: before horizontal gradient 
     193               &            CALL zps_hde    ( kstp, jpts, tsn, gtsu, gtsv,  &    ! Partial steps: before horizontal gradient 
    199194               &                                          rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    200195            IF( ln_zps .AND.       ln_isfcav)                               & 
    201                &            CALL zps_hde_isf( kstp, jpts, tsn,              & 
    202                &                              e3w_n, gdept_n, gdep3w_n,     & 
    203                &                              gtsu, gtsv,                   &    ! Partial steps for top cell (ISF) 
     196               &            CALL zps_hde_isf( kstp, jpts, tsn, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    204197               &                                          rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    205198               &                                   gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the last ocean level 
     
    280273                             CALL eos    ( tsa, rhd, rhop, fsdept_n(:,:,:) )  ! Time-filtered in situ density for hpg computation 
    281274            IF( ln_zps .AND. .NOT. ln_isfcav)                                & 
    282                &             CALL zps_hde    ( kstp, jpts, tsa,              & 
    283                &                               e3w_n, gdept_n, gtsu, gtsv,   &    ! Partial steps: before horizontal gradient 
     275               &             CALL zps_hde    ( kstp, jpts, tsa, gtsu, gtsv,  &    ! Partial steps: before horizontal gradient 
    284276               &                                           rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    285277            IF( ln_zps .AND.       ln_isfcav)                                & 
    286                &             CALL zps_hde_isf( kstp, jpts, tsa,              & 
    287                &                               e3w_n, gdept_n, gdep3w_n,     & 
    288                &                               gtsu, gtsv,                   &    ! Partial steps for top cell (ISF) 
     278               &             CALL zps_hde_isf( kstp, jpts, tsa, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    289279               &                                           rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    290280               &                                    gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the last ocean level 
     
    294284                             CALL eos    ( tsn, rhd, rhop, fsdept_n(:,:,:) )  ! now in situ density for hpg computation 
    295285         IF( ln_zps .AND. .NOT. ln_isfcav)                                   & 
    296                &             CALL zps_hde    ( kstp, jpts, tsn,              & 
    297                &                               e3w_n, gdept_n, gtsu, gtsv,   &    ! Partial steps: before horizontal gradient 
     286               &             CALL zps_hde    ( kstp, jpts, tsn, gtsu, gtsv,  &    ! Partial steps: before horizontal gradient 
    298287               &                                           rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    299288         IF( ln_zps .AND.       ln_isfcav)                                   &  
    300                &             CALL zps_hde_isf( kstp, jpts, tsn,              & 
    301                &                               e3w_n, gdept_n, gdep3w_n,     & 
    302                &                               gtsu, gtsv,                   &    ! Partial steps for top cell (ISF) 
     289               &             CALL zps_hde_isf( kstp, jpts, tsn, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    303290               &                                           rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    304291               &                                    gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the last ocean level 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90

    r7865 r7869  
    1414   !!---------------------------------------------------------------------- 
    1515   USE oce_trc         ! ocean dynamics and active tracers variables 
    16    USE dom_oce, ONLY: e3w_n, gdep3w_n, gdept_n 
    1716   USE trc             ! ocean passive tracers variables  
    1817   USE trcnam_trp      ! passive tracers transport namelist variables 
     
    8584 
    8685         IF( ln_zps  .AND. .NOT. ln_isfcav)        & 
    87             &            CALL zps_hde    ( kstp, jptra, trn, e3w_n, gdept_n, & 
    88             &                              gtru, gtrv )   ! Partial steps: now horizontal gradient of passive 
     86            &            CALL zps_hde    ( kstp, jptra, trn, gtru, gtrv )   ! Partial steps: now horizontal gradient of passive 
    8987         IF( ln_zps .AND.        ln_isfcav)        & 
    90             &            CALL zps_hde_isf( kstp, jptra, trn,                 & 
    91             &                              e3w_n, gdept_n, gdep3w_n,         & 
    92             &                              pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi )  ! Partial steps: now horizontal gradient of passive 
     88            &            CALL zps_hde_isf( kstp, jptra, trn, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi )  ! Partial steps: now horizontal gradient of passive 
    9389                                                                ! tracers at the bottom ocean level 
    9490         ! 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r7865 r7869  
    1717   !!---------------------------------------------------------------------- 
    1818   USE oce_trc         ! shared variables between ocean and passive tracers 
    19    USE dom_oce, ONLY: e3w_n, gdep3w_n, gdept_n 
    2019   USE trc             ! passive tracers common variables 
    2120   USE trcrst          ! passive tracers restart 
     
    143142        ! 
    144143        trb(:,:,:,:) = trn(:,:,:,:) 
     144 
     145        ! This code has been moved here from below - marc 4/417 
     146        ! Partial steps: before horizontal gradient of passive 
     147        IF ( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav ) THEN 
     148           CALL zps_hde(nit000, jptra, trn, gtru, gtrv) 
     149        END IF 
    145150        !  
    146151      ENDIF 
    147152  
    148153      tra(:,:,:,:) = 0._wp 
    149       IF( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav )   &              ! Partial steps: before horizontal gradient of passive 
    150         &    CALL zps_hde    ( nit000, jptra, trn, e3w_n, gdept_n,    & 
    151         &                      gtru, gtrv  )  ! Partial steps: before horizontal gradient 
     154! GTRU and GTRV have now been put into dump - marc 4/4/17 
     155!      IF( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav )   &              ! Partial steps: before horizontal gradient of passive 
     156!        &    CALL zps_hde    ( nit000, jptra, trn, gtru, gtrv  )  ! Partial steps: before horizontal gradient 
    152157      IF( ln_zps .AND. .NOT. lk_c1d .AND.       ln_isfcav )   & 
    153         &    CALL zps_hde_isf( nit000, jptra, trn, e3w_n, gdept_n, gdep3w_n,  & 
    154         &                      pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi )       ! tracers at the bottom ocean level 
     158        &    CALL zps_hde_isf( nit000, jptra, trn, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi )       ! tracers at the bottom ocean level 
    155159 
    156160 
  • branches/UKMO/dev_r5518_medusa_fix_restart/NEMOGCM/NEMO/TOP_SRC/trcrst.F90

    r7850 r7869  
    109109      IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
    110110 
     111      ! GTRU/PGU & GTRV/PGV are needed in TRALDF_ISO for calculation of tracers 
     112      DO jn = 1, jptra 
     113         CALL iom_get( numrtr, jpdom_autoglo, 'gtru_'//ctrcnm(jn),   & 
     114                       gtru(:,:,jn) ) 
     115         CALL iom_get( numrtr, jpdom_autoglo, 'gtrv_'//ctrcnm(jn),   & 
     116                       gtrv(:,:,jn) ) 
     117      END DO 
     118! tmp - marc 
     119      write(numout,*) 'bbb222. gtrv(6,13,7)=',gtrv(6,13,7) 
     120! 
     121 
    111122      ! READ prognostic variables and computes diagnostic variable 
    112123      DO jn = 1, jptra 
     
    133144      ! 
    134145      CALL iom_rstput( kt, nitrst, numrtw, 'rdttrc1', rdttrc(1) )   ! surface passive tracer time step 
     146 
     147      ! GTRU/PGU & GTRV/PGV are needed in TRALDF_ISO for calculation of tracers 
     148      DO jn = 1, jptra 
     149         CALL iom_rstput( kt, nitrst, numrtw, 'gtru_'//ctrcnm(jn), & 
     150                          gtru(:,:,jn) ) 
     151         CALL iom_rstput( kt, nitrst, numrtw, 'gtrv_'//ctrcnm(jn), & 
     152                          gtrv(:,:,jn) ) 
     153      END DO 
     154 
    135155      ! prognostic variables  
    136156      ! --------------------  
Note: See TracChangeset for help on using the changeset viewer.