Changeset 10966 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcldf.F90
- Timestamp:
- 2019-05-10T18:43:09+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcldf.F90
r10954 r10966 51 51 CONTAINS 52 52 53 SUBROUTINE trc_ldf( kt, K mm, Krhs )53 SUBROUTINE trc_ldf( kt, Kbb, Kmm, Krhs ) 54 54 !!---------------------------------------------------------------------- 55 55 !! *** ROUTINE tra_ldf *** … … 58 58 !! 59 59 !!---------------------------------------------------------------------- 60 INTEGER, INTENT( in ) :: kt ! ocean time-step index61 INTEGER, INTENT( in ) :: K mm, Krhs ! ocean time-level index60 INTEGER, INTENT( in ) :: kt ! ocean time-step index 61 INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs ! ocean time-level index 62 62 ! 63 63 INTEGER :: ji, jj, jk, jn … … 74 74 IF( l_trdtrc ) THEN 75 75 ALLOCATE( ztrtrd(jpi,jpj,jpk,jptra) ) 76 ztrtrd(:,:,:,:) = tr a(:,:,:,:)76 ztrtrd(:,:,:,:) = tr(:,:,:,:,Krhs) 77 77 ENDIF 78 78 ! !* set the lateral diffusivity coef. for passive tracer … … 83 83 DO jj = 1, jpj 84 84 DO ji = 1, jpi 85 IF( gdept _n(ji,jj,jk) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN86 zdep = MAX( gdept _n(ji,jj,jk) - 1000., 0. ) / 1000.85 IF( gdept(ji,jj,jk,Kmm) > 200. .AND. gphit(ji,jj) < 5. .AND. gphit(ji,jj) > -5. ) THEN 86 zdep = MAX( gdept(ji,jj,jk,Kmm) - 1000., 0. ) / 1000. 87 87 zahu(ji,jj,jk) = zahu(ji,jj,jk) * MAX( 1., rn_fact_lap * EXP( -zdep ) ) 88 88 ENDIF … … 93 93 SELECT CASE ( nldf_trc ) !* compute lateral mixing trend and add it to the general trend 94 94 ! 95 CASE ( np_lap ) ! iso-level laplacian 96 CALL tra_ldf_lap ( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, trb, tra, jptra, 1 , Kmm ) 97 CASE ( np_lap_i ) ! laplacian : standard iso-neutral operator (Madec) 98 CALL tra_ldf_iso ( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, trb, trb, tra, jptra, 1 , Kmm ) 99 CASE ( np_lap_it ) ! laplacian : triad iso-neutral operator (griffies) 100 CALL tra_ldf_triad( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, trb, trb, tra, jptra, 1 , Kmm ) 101 CASE ( np_blp , np_blp_i , np_blp_it ) ! bilaplacian: all operator (iso-level, -neutral) 102 CALL tra_ldf_blp ( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, trb , tra, jptra, nldf_trc, Kmm ) 95 CASE ( np_lap ) ! iso-level laplacian 96 CALL tra_ldf_lap ( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 97 & tr(:,:,:,:,Kbb), tr(:,:,:,:,Krhs), jptra, 1 , Kmm ) 98 CASE ( np_lap_i ) ! laplacian : standard iso-neutral operator (Madec) 99 CALL tra_ldf_iso ( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 100 & tr(:,:,:,:,Kbb), tr(:,:,:,:,Kbb), tr(:,:,:,:,Krhs), jptra, 1 , Kmm ) 101 CASE ( np_lap_it ) ! laplacian : triad iso-neutral operator (griffies) 102 CALL tra_ldf_triad( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 103 & tr(:,:,:,:,Kbb), tr(:,:,:,:,Kbb), tr(:,:,:,:,Krhs), jptra, 1 , Kmm ) 104 CASE ( np_blp , np_blp_i , np_blp_it ) ! bilaplacian: all operator (iso-level, -neutral) 105 CALL tra_ldf_blp ( kt, nittrc000,'TRC', zahu, zahv, gtru, gtrv, gtrui, gtrvi, & 106 & tr(:,:,:,:,Kbb) , tr(:,:,:,:,Krhs), jptra, nldf_trc, Kmm ) 103 107 END SELECT 104 108 ! 105 109 IF( l_trdtrc ) THEN ! send the trends for further diagnostics 106 110 DO jn = 1, jptra 107 ztrtrd(:,:,:,jn) = tr a(:,:,:,jn) - ztrtrd(:,:,:,jn)111 ztrtrd(:,:,:,jn) = tr(:,:,:,jn,Krhs) - ztrtrd(:,:,:,jn) 108 112 CALL trd_tra( kt, Kmm, Krhs, 'TRC', jn, jptra_ldf, ztrtrd(:,:,:,jn) ) 109 113 END DO … … 114 118 WRITE(charout, FMT="('ldf ')") 115 119 CALL prt_ctl_trc_info(charout) 116 CALL prt_ctl_trc( tab4d=tr a, mask=tmask, clinfo=ctrcnm, clinfo2='trd' )120 CALL prt_ctl_trc( tab4d=tr(:,:,:,:,Krhs), mask=tmask, clinfo=ctrcnm, clinfo2='trd' ) 117 121 ENDIF 118 122 ! … … 168 172 IF( ln_trcldf_OFF ) THEN ; nldf_trc = np_no_ldf ; ioptio = ioptio + 1 ; ENDIF 169 173 IF( ln_trcldf_tra ) THEN ; nldf_trc = nldf_tra ; ioptio = ioptio + 1 ; ENDIF 170 IF( ioptio /= 1 ) CALL ctl_stop( 'trc_ldf_ini: use ONE of the 2 operator options ( NONE/tra)' )174 IF( ioptio /= 1 ) CALL ctl_stop( 'trc_ldf_ini: use ONE of the 2 operator options (OFF/tra)' ) 171 175 172 176 ! ! multiplier : passive/active tracers ration
Note: See TracChangeset
for help on using the changeset viewer.