Changeset 945 for trunk/NEMO/TOP_SRC/trcsms.F90
- Timestamp:
- 2008-05-14T18:14:53+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/trcsms.F90
r719 r945 1 1 MODULE trcsms 2 !!=========================================================================================== 3 !! 4 !! *** MODULE trcsms *** 5 !! 6 !! Time loop of opa for passive tracer 7 !! 8 !!=========================================================================================== 9 !! TOP 1.0, LOCEAN-IPSL (2005) 10 !! $Header$ 11 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 2 !!====================================================================== 3 !! *** MODULE trcsms *** 4 !! TOP : Time loop of passive tracers sms 5 !!====================================================================== 6 !! History : 1.0 ! 2005-03 (O. Aumont, A. El Moussaoui) F90 7 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) revised architecture 12 8 !!---------------------------------------------------------------------- 13 #if defined key_passivetrc 14 !! * Modules used 15 !! ============== 16 USE oce_trc 17 USE trc 18 USE trcfreons 19 USE prtctl_trc ! Print control for debbuging 9 #if defined key_top 10 !!---------------------------------------------------------------------- 11 !! 'key_top' TOP models 12 !!---------------------------------------------------------------------- 13 !! trc_sms : Time loop of passive tracers sms 14 !!---------------------------------------------------------------------- 15 USE oce_trc ! 16 USE trc ! 17 USE trcsms_lobster ! LOBSTER bio-model 18 USE trcsms_pisces ! PISCES biogeo-model 19 USE trcsms_cfc ! CFC 11 & 12 20 USE trcsms_my_trc ! MY_TRC tracers 21 USE prtctl_trc ! Print control for debbuging 20 22 21 23 IMPLICIT NONE 22 24 PRIVATE 23 25 24 !! * Accessibility 25 PUBLIC trc_sms 26 PUBLIC trc_sms ! called in trcstp.F90 27 28 !!---------------------------------------------------------------------- 29 !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) 30 !! $Header:$ 31 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 32 !!---------------------------------------------------------------------- 26 33 27 34 CONTAINS 28 35 29 36 SUBROUTINE trc_sms( kt ) 30 !!=========================================================================================== 37 !!--------------------------------------------------------------------- 38 !! *** ROUTINE ini_trc *** 31 39 !! 32 !! ROUTINE trcsms 33 !! ***************** 40 !! ** Purpose : Managment of the time loop of passive tracers sms 34 41 !! 35 !! PURPOSE :36 !! 37 !! time loop of opa for passive tracer42 !! ** Method : - call the main routine of of each defined tracer model 43 !! ------------------------------------------------------------------------------------- 44 INTEGER, INTENT( in ) :: kt ! ocean time-step index 38 45 !! 39 !! METHOD : 40 !! ------- 41 !! compute the well/spring evolution 42 !! 43 !! INPUT : 44 !! ----- 45 !! argument 46 !! ktask : task identificator 47 !! kt : time step 48 !! COMMON 49 !! all the COMMON defined in opa 50 !! 51 !! 52 !! OUTPUT : : no 53 !! ------ 54 !! 55 !! WORKSPACE : 56 !! --------- 57 !! 58 !! EXTERNAL : 59 !! -------- 60 !! trcbio, trcsed, trcopt for NPZD or LOBSTER1 models 61 !! 62 !! h3cprg for HAMOC3 and P3ZD models 63 !! 64 !! 65 !! History: 66 !! -------- 67 !! original : 96-11 68 !! additions : 99-07 (M. Levy) 69 !! 04-00 (O. Aumont, M.A. Foujols) HAMOCC3 and P3ZD 70 !! 12-00 (O. Aumont, E. Kestenare) add trcexp for instantaneous export 71 !! 05-03 (O. Aumont and A. El Moussaoui) F90 72 !! ------------------------------------------------------------------------------------- 46 CHARACTER (len=25) :: charout 47 !!--------------------------------------------------------------------- 73 48 74 !! * Arguments 75 !! ----------- 76 INTEGER, INTENT( in ) :: kt ! ocean time-step index 49 IF ( MOD(kt,ndttrc) /= 0) RETURN ! this ROUTINE is called only every ndttrc time step 77 50 78 !! * Local variables 79 !! ----------------- 51 IF( lk_lobster ) CALL trc_sms_lobster( kt ) ! main program of LOBSTER 52 IF( lk_pisces ) CALL trc_sms_pisces ( kt ) ! main program of PISCES 53 IF( lk_cfc ) CALL trc_sms_cfc ( kt ) ! surface fluxes of CFC 54 IF( lk_my_trc ) CALL trc_sms_my_trc ( kt ) ! MY_TRC tracers 80 55 81 CHARACTER (len=25) :: charout 82 83 !! this ROUTINE is called only every ndttrc time step 84 !! -------------------------------------------------- 85 86 IF ( MOD(kt,ndttrc) /= 0) RETURN 87 88 !! this first routines are parallelized on vertical slab 89 !! ------------------------------------------------------ 90 91 #if defined key_trc_lobster1 92 93 !! tracers: optical model 94 !! ---------------------- 95 96 CALL trcopt( kt) 97 98 IF(ln_ctl) THEN ! print mean trends (used for debugging) 99 WRITE(charout, FMT="('OPT')") 100 CALL prt_ctl_trc_info(charout) 101 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 56 IF(ln_ctl) THEN ! print mean trends (used for debugging) 57 WRITE(charout, FMT="('sms ')") 58 CALL prt_ctl_trc_info( charout ) 59 CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 102 60 ENDIF 103 104 !! tracers: biological model 105 !! ------------------------- 106 107 CALL trcbio( kt) 108 109 IF(ln_ctl) THEN ! print mean trends (used for debugging) 110 WRITE(charout, FMT="('BIO')") 111 CALL prt_ctl_trc_info(charout) 112 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 113 ENDIF 114 115 !! tracers: sedimentation model 116 !! ---------------------------- 117 118 CALL trcsed(kt) 119 IF(ln_ctl) THEN ! print mean trends (used for debugging) 120 WRITE(charout, FMT="('SED')") 121 CALL prt_ctl_trc_info(charout) 122 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 123 ENDIF 124 125 CALL trcexp(kt) 126 127 IF(ln_ctl) THEN ! print mean trends (used for debugging) 128 WRITE(charout, FMT="('EXP')") 129 CALL prt_ctl_trc_info(charout) 130 CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 131 ENDIF 132 133 #elif defined key_trc_pisces 134 135 !! p4zprg: main PROGRAM for PISCES 136 !! ------------------------------- 137 CALL p4zprg(kt) 138 139 !! SMS to DO 140 141 #elif defined key_cfc 142 143 !! CFC's code taken from K. Rodgers 144 145 !! This part is still experimental 146 !! ------------------------------- 147 148 CALL trc_freons(kt) 149 150 #endif 151 152 153 61 ! 154 62 END SUBROUTINE trc_sms 155 63 156 64 #else 157 65 !!====================================================================== 158 !! Empty module :No passive tracer66 !! Dummy module : No passive tracer 159 67 !!====================================================================== 160 68 CONTAINS 161 162 SUBROUTINE trc_sms( kt ) 163 164 ! no passive tracers 69 SUBROUTINE trc_sms( kt ) ! Empty routine 165 70 INTEGER, INTENT( in ) :: kt 166 71 WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt 167 72 END SUBROUTINE trc_sms 168 169 73 #endif 170 74 171 75 !!====================================================================== 172 76 END MODULE trcsms
Note: See TracChangeset
for help on using the changeset viewer.