- Timestamp:
- 2020-11-09T16:48:35+01:00 (4 years ago)
- Location:
- NEMO/branches/2020/test_12905_xios_restart
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/test_12905_xios_restart
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 8 9 9 # SETTE 10 ^/utils/CI/ r12931_sette_ticket2462@HEADsette10 ^/utils/CI/sette@13559 sette
-
- Property svn:externals
-
NEMO/branches/2020/test_12905_xios_restart/src/OCE/TRD/trdtra.F90
r12489 r13751 42 42 !! * Substitutions 43 43 # include "do_loop_substitute.h90" 44 # include "domzgr_substitute.h90" 44 45 !!---------------------------------------------------------------------- 45 46 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 82 83 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in), OPTIONAL :: ptra ! now tracer variable 83 84 ! 84 INTEGER :: jk ! loop indices 85 INTEGER :: jk ! loop indices 86 INTEGER :: i01 ! 0 or 1 85 87 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ztrds ! 3D workspace 86 88 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: zwt, zws, ztrdt ! 3D workspace … … 90 92 IF( trd_tra_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'trd_tra : unable to allocate arrays' ) 91 93 ENDIF 92 94 ! 95 i01 = COUNT( (/ PRESENT(pu) .OR. ( ktrd /= jptra_xad .AND. ktrd /= jptra_yad .AND. ktrd /= jptra_zad ) /) ) 96 ! 93 97 IF( ctype == 'TRA' .AND. ktra == jp_tem ) THEN !== Temperature trend ==! 94 98 ! 95 SELECT CASE( ktrd )99 SELECT CASE( ktrd*i01 ) 96 100 ! ! advection: transform the advective flux into a trend 97 101 CASE( jptra_xad ) ; CALL trd_tra_adv( ptrd, pu, ptra, 'X', trdtx, Kmm ) … … 112 116 IF( ctype == 'TRA' .AND. ktra == jp_sal ) THEN !== Salinity trends ==! 113 117 ! 114 SELECT CASE( ktrd )118 SELECT CASE( ktrd*i01 ) 115 119 ! ! advection: transform the advective flux into a trend 116 120 ! ! and send T & S trends to trd_tra_mng … … 128 132 zwt(:,:,jpk) = 0._wp ; zws(:,:,jpk) = 0._wp 129 133 DO jk = 2, jpk 130 zwt(:,:,jk) = avt(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 131 zws(:,:,jk) = avs(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 134 zwt(:,:,jk) = avt(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) & 135 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 136 zws(:,:,jk) = avs(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) & 137 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 132 138 END DO 133 139 ! … … 142 148 zwt(:,:,:) = 0._wp ; zws(:,:,:) = 0._wp ! vertical diffusive fluxes 143 149 DO jk = 2, jpk 144 zwt(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 145 zws(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 150 zwt(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_tem,Krhs) - ts(:,:,jk,jp_tem,Krhs) ) & 151 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 152 zws(:,:,jk) = avt_evd(:,:,jk) * ( ts(:,:,jk-1,jp_sal,Krhs) - ts(:,:,jk,jp_sal,Krhs) ) & 153 & / e3w(:,:,jk,Kmm) * tmask(:,:,jk) 146 154 END DO 147 155 ! … … 163 171 IF( ctype == 'TRC' ) THEN !== passive tracer trend ==! 164 172 ! 165 SELECT CASE( ktrd )173 SELECT CASE( ktrd*i01 ) 166 174 ! ! advection: transform the advective flux into a masked trend 167 175 CASE( jptra_xad ) ; CALL trd_tra_adv( ptrd , pu , ptra, 'X', ztrds, Kmm ) … … 202 210 !!---------------------------------------------------------------------- 203 211 ! 204 SELECT CASE( cdir ) ! shift depending on the direction212 SELECT CASE( cdir ) ! shift depending on the direction 205 213 CASE( 'X' ) ; ii = 1 ; ij = 0 ; ik = 0 ! i-trend 206 214 CASE( 'Y' ) ; ii = 0 ; ij = 1 ; ik = 0 ! j-trend … … 208 216 END SELECT 209 217 ! 210 ! ! set to zero uncomputed values218 ! ! set to zero uncomputed values 211 219 ptrd(jpi,:,:) = 0._wp ; ptrd(1,:,:) = 0._wp 212 220 ptrd(:,jpj,:) = 0._wp ; ptrd(:,1,:) = 0._wp 213 221 ptrd(:,:,jpk) = 0._wp 214 222 ! 215 DO_3D _00_00( 1, jpkm1 )223 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) ! advective trend 216 224 ptrd(ji,jj,jk) = - ( pf (ji,jj,jk) - pf (ji-ii,jj-ij,jk-ik) & 217 225 & - ( pu(ji,jj,jk) - pu(ji-ii,jj-ij,jk-ik) ) * pt(ji,jj,jk) ) &
Note: See TracChangeset
for help on using the changeset viewer.