Changeset 10880 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP
- Timestamp:
- 2019-04-17T12:02:14+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trcadv.F90
r10874 r10880 68 68 CONTAINS 69 69 70 SUBROUTINE trc_adv( kt )70 SUBROUTINE trc_adv( kt, Kbb, Kmm, ptr, Krhs ) 71 71 !!---------------------------------------------------------------------- 72 72 !! *** ROUTINE trc_adv *** … … 76 76 !! ** Method : - Update after tracers (tra) with the advection term following nadv 77 77 !!---------------------------------------------------------------------- 78 INTEGER, INTENT(in) :: kt ! ocean time-step index 78 INTEGER , INTENT(in) :: kt ! ocean time-step index 79 INTEGER , INTENT(in) :: Kbb, Kmm, Krhs ! time level indices 80 REAL(wp), DIMENSION(jpi,jpj,jpk,jptra,jpt), INTENT(inout) :: ptr ! passive tracers and RHS of tracer equation 79 81 ! 80 82 INTEGER :: jk ! dummy loop index … … 123 125 ! 124 126 CASE ( np_CEN ) ! Centered : 2nd / 4th order 125 CALL tra_adv_cen( kt, nittrc000,'TRC', zun, zvn, zwn , trn, tra, jptra, nn_cen_h, nn_cen_v )127 CALL tra_adv_cen( kt, nittrc000,'TRC', zun, zvn, zwn, Kmm, ptr, jptra, Krhs, nn_cen_h, nn_cen_v ) 126 128 CASE ( np_FCT ) ! FCT : 2nd / 4th order 127 CALL tra_adv_fct( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra, nn_fct_h, nn_fct_v )129 CALL tra_adv_fct( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, Kbb, Kmm, ptr, jptra, Krhs, nn_fct_h, nn_fct_v ) 128 130 CASE ( np_MUS ) ! MUSCL 129 CALL tra_adv_mus( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, tra, jptra , ln_mus_ups)131 CALL tra_adv_mus( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, Kbb, Kmm, ptr, jptra, Krhs, ln_mus_ups ) 130 132 CASE ( np_UBS ) ! UBS 131 CALL tra_adv_ubs( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra , nn_ubs_v)133 CALL tra_adv_ubs( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, Kbb, Kmm, ptr, jptra, Krhs, nn_ubs_v ) 132 134 CASE ( np_QCK ) ! QUICKEST 133 CALL tra_adv_qck( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, trb, trn, tra, jptra)135 CALL tra_adv_qck( kt, nittrc000,'TRC', r2dttrc, zun, zvn, zwn, Kbb, Kmm, ptr, jptra, Krhs ) 134 136 ! 135 137 END SELECT -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/TRP/trctrp.F90
r10874 r10880 44 44 CONTAINS 45 45 46 SUBROUTINE trc_trp( kt )46 SUBROUTINE trc_trp( kt, Kbb, Kmm, Krhs, Kaa ) 47 47 !!---------------------------------------------------------------------- 48 48 !! *** ROUTINE trc_trp *** … … 53 53 !! - Update the passive tracers 54 54 !!---------------------------------------------------------------------- 55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 55 INTEGER, INTENT( in ) :: kt ! ocean time-step index 56 INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs, Kaa ! time level indices 56 57 !! --------------------------------------------------------------------- 57 58 ! … … 64 65 IF( ln_trcdmp ) CALL trc_dmp ( kt ) ! internal damping trends 65 66 IF( ln_bdy ) CALL trc_bdy_dmp( kt ) ! BDY damping trends 66 CALL trc_adv ( kt ) ! horizontal & vertical advection67 CALL trc_adv ( kt, Kbb, Kmm, tr, Krhs ) ! horizontal & vertical advection 67 68 ! ! Partial top/bottom cell: GRADh( trb ) 68 69 IF( ln_zps ) THEN -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/oce_trc.F90
r10351 r10880 8 8 !!---------------------------------------------------------------------- 9 9 ! !* Domain size * 10 USE par_oce , ONLY : jpt => jpt !: time dimension 10 11 USE par_oce , ONLY : jpi => jpi !: first dimension of grid --> i 11 12 USE par_oce , ONLY : jpj => jpj !: second dimension of grid --> j -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trc.F90
r10425 r10880 33 33 REAL(wp), PUBLIC :: areatot !: total volume 34 34 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: cvol !: volume correction -degrad option- 35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trn !: tracer concentration for now time step 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: tra !: tracer concentration for next time step 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: trb !: tracer concentration for before time step 35 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:,:), TARGET :: tr !: tracer concentration 38 36 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: sbc_trc_b !: Before sbc fluxes for tracers 39 37 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: sbc_trc !: Now sbc fluxes for tracers … … 42 40 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,: ) :: trc_o !: prescribed tracer concentration in ocean for SBC 43 41 INTEGER , PUBLIC :: nn_ice_tr !: handling of sea ice tracers 42 43 !! TEMPORARY POINTERS - TO BE DELETED AFTER IMMERSE DEVELOPMENT COMPLETE 44 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:,:) :: trn !: tracer concentration for now time step 45 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:,:) :: tra !: tracer concentration for next time step 46 REAL(wp), PUBLIC, POINTER, SAVE, DIMENSION(:,:,:,:) :: trb !: tracer concentration for before time step 47 !! TEMPORARY POINTERS - TO BE DELETED AFTER IMMERSE DEVELOPMENT COMPLETE 44 48 45 49 !! interpolated gradient … … 147 151 ierr(:) = 0 148 152 ! 149 ALLOCATE( tr n(jpi,jpj,jpk,jptra), trb(jpi,jpj,jpk,jptra), tra(jpi,jpj,jpk,jptra), &153 ALLOCATE( tr(jpi,jpj,jpk,jptra,jpt) , & 150 154 & trc_i(jpi,jpj,jptra) , trc_o(jpi,jpj,jptra) , & 151 155 & gtru (jpi,jpj,jptra) , gtrv (jpi,jpj,jptra) , & -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcini.F90
r10570 r10880 26 26 USE trcice ! tracers in sea ice 27 27 USE trcbc, only : trc_bc_ini ! generalized Boundary Conditions 28 USE trcstp ! for time level indices (to be initialised) 28 29 29 30 IMPLICIT NONE … … 61 62 CALL trc_nam ! read passive tracers namelists 62 63 CALL top_alloc() ! allocate TOP arrays 64 65 ! Initialise time level indices 66 Nbb = 1; Nnn = 2; Naa = 3; Nrhs = Naa 67 68 ! Initialisation of temporary pointers (to be deleted after development finished) 69 CALL update_pointers_trc() 63 70 ! 64 71 IF(.NOT.ln_trcdta ) ln_trc_ini(:) = .FALSE. -
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcstp.F90
r10570 r10880 30 30 31 31 PUBLIC trc_stp ! called by step 32 PUBLIC update_pointers_trc ! called in initialisation 33 34 !!---------------------------------------------------------------------- 35 !! time level indices 36 !!---------------------------------------------------------------------- 37 INTEGER, PUBLIC :: Nbb, Nnn, Naa, Nrhs !! used by trc_init 32 38 33 39 LOGICAL :: llnew ! ??? … … 100 106 CALL trc_wri ( kt ) ! output of passive tracers with iom I/O manager 101 107 CALL trc_sms ( kt ) ! tracers: sinks and sources 102 CALL trc_trp ( kt ) ! transport of passive tracers108 CALL trc_trp ( kt, Nbb, Nnn, Nrhs, Naa ) ! transport of passive tracers 103 109 IF( kt == nittrc000 ) THEN 104 110 CALL iom_close( numrtr ) ! close input tracer restart file … … 125 131 END SUBROUTINE trc_stp 126 132 133 SUBROUTINE update_pointers_trc 134 !!---------------------------------------------------------------------- 135 !! *** ROUTINE update_pointers_trc *** 136 !! 137 !! ** Purpose : Associate temporary pointer arrays. 138 !! For IMMERSE development phase only - to be deleted 139 !! 140 !! ** Method : 141 !!---------------------------------------------------------------------- 142 143 trb => tr(:,:,:,:,Nbb); trn => tr(:,:,:,:,Nnn); tra => tr(:,:,:,:,Naa) 144 145 END SUBROUTINE update_pointers_trc 127 146 128 147 SUBROUTINE trc_mean_qsr( kt )
Note: See TracChangeset
for help on using the changeset viewer.