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 14186 for NEMO/trunk/src/OCE – NEMO

Changeset 14186 for NEMO/trunk/src/OCE


Ignore:
Timestamp:
2020-12-16T11:32:26+01:00 (3 years ago)
Author:
hadcv
Message:

#2564: Fix ORCA2 hand edits in dta_tsd being applied cumulatively

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/DOM/dtatsd.F90

    r14090 r14186  
    142142      INTEGER ::   ik, il0, il1, ii0, ii1, ij0, ij1   ! local integers 
    143143      INTEGER ::   itile 
     144      INTEGER, DIMENSION(jpts), SAVE :: irec_b, irec_n 
    144145      REAL(wp)::   zl, zi                             ! local scalars 
    145146      REAL(wp), DIMENSION(jpk) ::  ztp, zsp   ! 1D workspace 
     
    157158         IF( cn_cfg == "orca" .OR. cn_cfg == "ORCA" ) THEN 
    158159            IF( nn_cfg == 2 .AND. ln_tsd_dmp ) THEN    ! some hand made alterations 
     160               irec_n(jp_tem) = sf_tsd(jp_tem)%nrec(2,sf_tsd(jp_tem)%naa)            ! Determine if there is new data (ln_tint = F) 
     161               irec_n(jp_sal) = sf_tsd(jp_sal)%nrec(2,sf_tsd(jp_sal)%naa)            ! If not, then do not apply the increments 
     162               IF( kt == nit000 ) irec_b(:) = -1 
    159163               ! 
    160164               ij0 = 101 + nn_hls       ;   ij1 = 109 + nn_hls                       ! Reduced T & S in the Alboran Sea 
    161165               ii0 = 141 + nn_hls - 1   ;   ii1 = 155 + nn_hls - 1 
    162                DO jj = mj0(ij0), mj1(ij1) 
    163                   DO ji = mi0(ii0), mi1(ii1) 
    164                      sf_tsd(jp_tem)%fnow(ji,jj,13:13) = sf_tsd(jp_tem)%fnow(ji,jj,13:13) - 0.20_wp 
    165                      sf_tsd(jp_tem)%fnow(ji,jj,14:15) = sf_tsd(jp_tem)%fnow(ji,jj,14:15) - 0.35_wp 
    166                      sf_tsd(jp_tem)%fnow(ji,jj,16:25) = sf_tsd(jp_tem)%fnow(ji,jj,16:25) - 0.40_wp 
    167                      ! 
    168                      sf_tsd(jp_sal)%fnow(ji,jj,13:13) = sf_tsd(jp_sal)%fnow(ji,jj,13:13) - 0.15_wp 
    169                      sf_tsd(jp_sal)%fnow(ji,jj,14:15) = sf_tsd(jp_sal)%fnow(ji,jj,14:15) - 0.25_wp 
    170                      sf_tsd(jp_sal)%fnow(ji,jj,16:17) = sf_tsd(jp_sal)%fnow(ji,jj,16:17) - 0.30_wp 
    171                      sf_tsd(jp_sal)%fnow(ji,jj,18:25) = sf_tsd(jp_sal)%fnow(ji,jj,18:25) - 0.35_wp 
     166               IF( sf_tsd(jp_tem)%ln_tint .OR. irec_n(jp_tem) /= irec_b(jp_tem) ) THEN 
     167                  DO jj = mj0(ij0), mj1(ij1) 
     168                     DO ji = mi0(ii0), mi1(ii1) 
     169                        sf_tsd(jp_tem)%fnow(ji,jj,13:13) = sf_tsd(jp_tem)%fnow(ji,jj,13:13) - 0.20_wp 
     170                        sf_tsd(jp_tem)%fnow(ji,jj,14:15) = sf_tsd(jp_tem)%fnow(ji,jj,14:15) - 0.35_wp 
     171                        sf_tsd(jp_tem)%fnow(ji,jj,16:25) = sf_tsd(jp_tem)%fnow(ji,jj,16:25) - 0.40_wp 
     172                     END DO 
    172173                  END DO 
    173                END DO 
     174                  irec_b(jp_tem) = irec_n(jp_tem) 
     175               ENDIF 
     176               ! 
     177               IF( sf_tsd(jp_sal)%ln_tint .OR. irec_n(jp_sal) /= irec_b(jp_sal) ) THEN 
     178                  DO jj = mj0(ij0), mj1(ij1) 
     179                     DO ji = mi0(ii0), mi1(ii1) 
     180                        sf_tsd(jp_sal)%fnow(ji,jj,13:13) = sf_tsd(jp_sal)%fnow(ji,jj,13:13) - 0.15_wp 
     181                        sf_tsd(jp_sal)%fnow(ji,jj,14:15) = sf_tsd(jp_sal)%fnow(ji,jj,14:15) - 0.25_wp 
     182                        sf_tsd(jp_sal)%fnow(ji,jj,16:17) = sf_tsd(jp_sal)%fnow(ji,jj,16:17) - 0.30_wp 
     183                        sf_tsd(jp_sal)%fnow(ji,jj,18:25) = sf_tsd(jp_sal)%fnow(ji,jj,18:25) - 0.35_wp 
     184                     END DO 
     185                  END DO 
     186                  irec_b(jp_sal) = irec_n(jp_sal) 
     187               ENDIF 
     188               ! 
    174189               ij0 =  87 + nn_hls       ;   ij1 =  96 + nn_hls                       ! Reduced temperature in Red Sea 
    175190               ii0 = 148 + nn_hls - 1   ;   ii1 = 160 + nn_hls - 1 
Note: See TracChangeset for help on using the changeset viewer.