[932] | 1 | MODULE trcsms_my_trc |
---|
| 2 | !!====================================================================== |
---|
| 3 | !! *** MODULE trcsms_my_trc *** |
---|
| 4 | !! TOP : Main module of the MY_TRC tracers |
---|
| 5 | !!====================================================================== |
---|
[7646] | 6 | !! History : ! 2007 (C. Ethe, G. Madec) Original code |
---|
| 7 | !! ! 2016 (C. Ethe, T. Lovato) Revised architecture |
---|
[932] | 8 | !!---------------------------------------------------------------------- |
---|
[3294] | 9 | !! trc_sms_my_trc : MY_TRC model main routine |
---|
[2715] | 10 | !! trc_sms_my_trc_alloc : allocate arrays specific to MY_TRC sms |
---|
[932] | 11 | !!---------------------------------------------------------------------- |
---|
| 12 | USE par_trc ! TOP parameters |
---|
[1255] | 13 | USE oce_trc ! Ocean variables |
---|
| 14 | USE trc ! TOP variables |
---|
[4990] | 15 | USE trd_oce |
---|
| 16 | USE trdtrc |
---|
[7646] | 17 | USE trcbc, only : trc_bc |
---|
[932] | 18 | |
---|
| 19 | IMPLICIT NONE |
---|
| 20 | PRIVATE |
---|
| 21 | |
---|
[2715] | 22 | PUBLIC trc_sms_my_trc ! called by trcsms.F90 module |
---|
| 23 | PUBLIC trc_sms_my_trc_alloc ! called by trcini_my_trc.F90 module |
---|
[932] | 24 | |
---|
[2715] | 25 | ! Defined HERE the arrays specific to MY_TRC sms and ALLOCATE them in trc_sms_my_trc_alloc |
---|
[3294] | 26 | |
---|
[932] | 27 | !!---------------------------------------------------------------------- |
---|
[9598] | 28 | !! NEMO/TOP 4.0 , NEMO Consortium (2018) |
---|
[3294] | 29 | !! $Id$ |
---|
[10068] | 30 | !! Software governed by the CeCILL license (see ./LICENSE) |
---|
[932] | 31 | !!---------------------------------------------------------------------- |
---|
| 32 | CONTAINS |
---|
| 33 | |
---|
[10963] | 34 | SUBROUTINE trc_sms_my_trc( kt, Kmm, Krhs ) |
---|
[932] | 35 | !!---------------------------------------------------------------------- |
---|
[3294] | 36 | !! *** trc_sms_my_trc *** |
---|
[932] | 37 | !! |
---|
| 38 | !! ** Purpose : main routine of MY_TRC model |
---|
| 39 | !! |
---|
[3294] | 40 | !! ** Method : - |
---|
[932] | 41 | !!---------------------------------------------------------------------- |
---|
[2715] | 42 | ! |
---|
| 43 | INTEGER, INTENT(in) :: kt ! ocean time-step index |
---|
[10963] | 44 | INTEGER, INTENT(in) :: Kmm, Krhs ! time level indices |
---|
[2715] | 45 | INTEGER :: jn ! dummy loop index |
---|
[9125] | 46 | REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) :: ztrmyt |
---|
[5385] | 47 | !!---------------------------------------------------------------------- |
---|
[3294] | 48 | ! |
---|
[9124] | 49 | IF( ln_timing ) CALL timing_start('trc_sms_my_trc') |
---|
[3294] | 50 | ! |
---|
[932] | 51 | IF(lwp) WRITE(numout,*) |
---|
| 52 | IF(lwp) WRITE(numout,*) ' trc_sms_my_trc: MY_TRC model' |
---|
| 53 | IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' |
---|
[1162] | 54 | |
---|
[9125] | 55 | IF( l_trdtrc ) ALLOCATE( ztrmyt(jpi,jpj,jpk) ) |
---|
[3294] | 56 | |
---|
[10963] | 57 | CALL trc_bc ( kt, Kmm, Krhs ) ! tracers: surface and lateral Boundary Conditions |
---|
[6140] | 58 | |
---|
| 59 | ! add here the call to BGC model |
---|
| 60 | |
---|
| 61 | ! Save the trends in the mixed layer |
---|
| 62 | IF( l_trdtrc ) THEN |
---|
[1255] | 63 | DO jn = jp_myt0, jp_myt1 |
---|
| 64 | ztrmyt(:,:,:) = tra(:,:,:,jn) |
---|
[4990] | 65 | CALL trd_trc( ztrmyt, jn, jptra_sms, kt ) ! save trends |
---|
[1255] | 66 | END DO |
---|
[9125] | 67 | DEALLOCATE( ztrmyt ) |
---|
[1255] | 68 | END IF |
---|
[932] | 69 | ! |
---|
[9124] | 70 | IF( ln_timing ) CALL timing_stop('trc_sms_my_trc') |
---|
[3294] | 71 | ! |
---|
[932] | 72 | END SUBROUTINE trc_sms_my_trc |
---|
[2715] | 73 | |
---|
[9124] | 74 | |
---|
[2715] | 75 | INTEGER FUNCTION trc_sms_my_trc_alloc() |
---|
| 76 | !!---------------------------------------------------------------------- |
---|
| 77 | !! *** ROUTINE trc_sms_my_trc_alloc *** |
---|
| 78 | !!---------------------------------------------------------------------- |
---|
| 79 | ! |
---|
| 80 | ! ALLOCATE here the arrays specific to MY_TRC |
---|
| 81 | ! ALLOCATE( tab(...) , STAT=trc_sms_my_trc_alloc ) |
---|
| 82 | trc_sms_my_trc_alloc = 0 ! set to zero if no array to be allocated |
---|
| 83 | ! |
---|
[10425] | 84 | IF( trc_sms_my_trc_alloc /= 0 ) CALL ctl_stop( 'STOP', 'trc_sms_my_trc_alloc : failed to allocate arrays' ) |
---|
[2715] | 85 | ! |
---|
| 86 | END FUNCTION trc_sms_my_trc_alloc |
---|
| 87 | |
---|
[932] | 88 | !!====================================================================== |
---|
| 89 | END MODULE trcsms_my_trc |
---|