Changeset 15169 for NEMO/branches/UKMO/NEMO_4.0.4_momentum_trends/src
- Timestamp:
- 2021-08-04T11:50:47+02:00 (3 years ago)
- Location:
- NEMO/branches/UKMO/NEMO_4.0.4_momentum_trends/src/OCE
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.4_momentum_trends/src/OCE/DYN/dynzdf.F90
r15168 r15169 509 509 IF( l_trddyn ) THEN 510 510 ! Save the vertical diffusive trends for further diagnostics 511 ! andcalculate implicit drag trends511 ! then calculate implicit drag trends 512 512 ! (The order of operation is important here). 513 513 ! -
NEMO/branches/UKMO/NEMO_4.0.4_momentum_trends/src/OCE/TRD/trddyn.F90
r15168 r15169 40 40 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), SAVE :: zutrd_hpg, zvtrd_hpg 41 41 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), SAVE :: zutrd_pvo, zvtrd_pvo 42 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), SAVE :: zutrd_tfre, zvtrd_tfre 43 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), SAVE :: zutrd_bfre, zvtrd_bfre 42 44 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), SAVE :: zutrd_tfr, zvtrd_tfr 43 45 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:), SAVE :: zutrd_bfr, zvtrd_bfr … … 100 102 DEALLOCATE( zutrd_hpg, zvtrd_hpg ) 101 103 102 CASE( jpdyn_tfre, jpdyn_tfre_bt, jpdyn_tfri ) 104 CASE( jpdyn_tfre ) 105 ! 106 ! Explicit top drag trend calculated in zdf_drg. Save to add to 107 ! ZDF trend later and add to 3D TFR trend. 108 IF( .NOT. ALLOCATED(zutrd_tfre) ) THEN 109 ALLOCATE( zutrd_tfr(jpi,jpj,jpk), zvtrd_tfr(jpi,jpj,jpk) ) 110 zutrd_tfre(:,:,:) = putrd(:,:,:) 111 zvtrd_tfre(:,:,:) = pvtrd(:,:,:) 112 ENDIF 113 IF( .NOT. ALLOCATED(zutrd_tfr) ) THEN 114 ALLOCATE( zutrd_tfr(jpi,jpj,jpk), zvtrd_tfr(jpi,jpj,jpk) ) 115 zutrd_tfr(:,:,:) = 0.0 116 zvtrd_tfr(:,:,:) = 0.0 117 ENDIF 118 zutrd_tfr(:,:,:) = zutrd_tfr(:,:,:) + putrd(:,:,:) 119 zvtrd_tfr(:,:,:) = zvtrd_tfr(:,:,:) + pvtrd(:,:,:) 120 121 CASE( jpdyn_tfre_bt, jpdyn_tfri ) 103 122 ! 104 123 ! Add various top friction terms for baroclinic trend to saved quantity. … … 112 131 zvtrd_tfr(:,:,:) = zvtrd_tfr(:,:,:) + pvtrd(:,:,:) 113 132 114 CASE( jpdyn_bfre, jpdyn_bfre_bt, jpdyn_bfri ) 133 CASE( jpdyn_bfre ) 134 ! 135 ! Explicit bottom drag trend calculated in zdf_drg. Save to add to 136 ! ZDF trend later and add to 3D BFR trend. 137 IF( .NOT. ALLOCATED(zutrd_bfre) ) THEN 138 ALLOCATE( zutrd_bfr(jpi,jpj,jpk), zvtrd_bfr(jpi,jpj,jpk) ) 139 zutrd_bfre(:,:,:) = putrd(:,:,:) 140 zvtrd_bfre(:,:,:) = pvtrd(:,:,:) 141 ENDIF 142 IF( .NOT. ALLOCATED(zutrd_bfr) ) THEN 143 ALLOCATE( zutrd_bfr(jpi,jpj,jpk), zvtrd_bfr(jpi,jpj,jpk) ) 144 zutrd_bfr(:,:,:) = 0.0 145 zvtrd_bfr(:,:,:) = 0.0 146 ENDIF 147 zutrd_bfr(:,:,:) = zutrd_bfr(:,:,:) + putrd(:,:,:) 148 zvtrd_bfr(:,:,:) = zvtrd_bfr(:,:,:) + pvtrd(:,:,:) 149 150 CASE( jpdyn_bfre_bt, jpdyn_bfri ) 115 151 ! 116 152 ! Add various bottom friction terms for baroclinic trend to saved quantity. … … 129 165 ! and add wind stress, and top and bottom friction trends from dynspg_ts. 130 166 ! 131 ! If TFR or BFRarrays allocated at this stage then they will contain trends due167 ! If TFRE or BFRE arrays allocated at this stage then they will contain trends due 132 168 ! to explicit top or bottom drag components which need to be added to the ZDF trend. 133 IF( ALLOCATED( zutrd_tfr ) )THEN169 IF( ALLOCATED( zutrd_tfre ) )THEN 134 170 DO jk = 1, jpkm1 135 putrd(:,:,jk) = ( putrd(:,:,jk) + zutrd_tfr(:,:,jk) ) * umask(:,:,jk) 136 pvtrd(:,:,jk) = ( pvtrd(:,:,jk) + zvtrd_tfr(:,:,jk) ) * vmask(:,:,jk) 137 END DO 138 ENDIF 139 IF( ALLOCATED( zutrd_bfr ) )THEN 171 putrd(:,:,jk) = ( putrd(:,:,jk) + zutrd_tfre(:,:,jk) ) * umask(:,:,jk) 172 pvtrd(:,:,jk) = ( pvtrd(:,:,jk) + zvtrd_tfre(:,:,jk) ) * vmask(:,:,jk) 173 END DO 174 DEALLOCATE( zutrd_tfre, zvtrd_tfre ) 175 ENDIF 176 IF( ALLOCATED( zutrd_bfre ) )THEN 140 177 DO jk = 1, jpkm1 141 putrd(:,:,jk) = ( putrd(:,:,jk) + zutrd_bfr(:,:,jk) ) * umask(:,:,jk) 142 pvtrd(:,:,jk) = ( pvtrd(:,:,jk) + zvtrd_bfr(:,:,jk) ) * vmask(:,:,jk) 143 END DO 178 putrd(:,:,jk) = ( putrd(:,:,jk) + zutrd_bfre(:,:,jk) ) * umask(:,:,jk) 179 pvtrd(:,:,jk) = ( pvtrd(:,:,jk) + zvtrd_bfre(:,:,jk) ) * vmask(:,:,jk) 180 END DO 181 DEALLOCATE( zutrd_bfre, zvtrd_bfre ) 144 182 ENDIF 145 183 IF( ln_dynspg_ts ) THEN
Note: See TracChangeset
for help on using the changeset viewer.