New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 335 for trunk/NEMO/TOP_SRC/trclec.F90 – NEMO

Ignore:
Timestamp:
2005-11-14T13:08:42+01:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_023 : CE + RB + CT : new evolution of modules

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/trclec.F90

    r274 r335  
    77   !!========================================================================= 
    88   !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    9    !! $Header$ 
    10    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    119   !!---------------------------------------------------------------------- 
    12  
    13       !! * Modules used 
    14       !! ============== 
    15       USE oce_trc 
    16       USE trc 
    17       USE trctrp_lec 
    18       USE trclsm 
    19  
    20      IMPLICIT NONE 
    21      PRIVATE  
    22  
    23     !! * Accessibility 
    24     PUBLIC trc_lec 
     10#if defined key_passivetrc 
     11   !! * Modules used 
     12   !! ============== 
     13   USE oce_trc 
     14   USE trc 
     15   USE trctrp_lec 
     16   USE trclsm 
     17 
     18   IMPLICIT NONE 
     19   PRIVATE  
     20 
     21   !! * Accessibility 
     22   PUBLIC trc_lec 
     23 
     24#include "passivetrc_substitute.h90" 
    2525 
    2626CONTAINS 
    2727 
    28 #if defined key_passivetrc 
    29  
    30 SUBROUTINE trc_lec 
    31 !!--------------------------------------------------------------------- 
    32 !!                       ROUTINE trclec 
    33 !!                     ****************** 
    34 !!  PURPOSE : 
    35 !!  --------- 
    36 !!     READ and PRINT options for the passive tracer run (namelist) 
    37 !! 
    38 !!   History: 
    39 !!   -------- 
    40 !!      original  : 96-11 (M.A. Foujols, M. Levy) passive tracer 
    41 !!      modification : 98-04 (M.A Foujols, L. Bopp) ahtrb0 for isopycnal 
    42 !!                                                  diffusion 
    43 !!      modification : 99-10(M.A. Foujols, M. Levy) separation of sms 
    44 !!      additions : 00-05(A. Estublier) TVD Limiter Scheme : Tests  
    45 !!                                      on ndttrc 
    46 !!      additions : 00-06(A. Estublier) MUSCL Scheme : Tests  
    47 !!                                      on ndttrc 
    48 !!      additions : 00-07(A. Estublier) PPM Scheme : Tests on ndttrc 
    49 !!      modification : 00-11 (M.A Foujols, E Kestenare) trcrat, ahtrc0 and aeivtr0 
    50 !!      modification : 01-01 (E Kestenare) suppress ndttrc=1  
    51 !!                                         for Arakawa and TVD schemes 
    52 !!     O.Aumont and A.El Moussaoui 03/05 F90 
    53 !!---------------------------------------------------------------------- 
    54  
    55 !! local declarations 
    56 !! ================== 
     28   SUBROUTINE trc_lec 
     29      !!--------------------------------------------------------------------- 
     30      !!                       ROUTINE trclec 
     31      !!                     ****************** 
     32      !!  PURPOSE : 
     33      !!  --------- 
     34      !!     READ and PRINT options for the passive tracer run (namelist) 
     35      !! 
     36      !!   History: 
     37      !!   -------- 
     38      !!      original  : 96-11 (M.A. Foujols, M. Levy) passive tracer 
     39      !!      modification : 98-04 (M.A Foujols, L. Bopp) ahtrb0 for isopycnal 
     40      !!                                                  diffusion 
     41      !!      modification : 99-10(M.A. Foujols, M. Levy) separation of sms 
     42      !!      additions : 00-05(A. Estublier) TVD Limiter Scheme : Tests  
     43      !!                                      on ndttrc 
     44      !!      additions : 00-06(A. Estublier) MUSCL Scheme : Tests  
     45      !!                                      on ndttrc 
     46      !!      additions : 00-07(A. Estublier) PPM Scheme : Tests on ndttrc 
     47      !!      modification : 00-11 (M.A Foujols, E Kestenare) trcrat, ahtrc0 and aeivtr0 
     48      !!      modification : 01-01 (E Kestenare) suppress ndttrc=1  
     49      !!                                         for Arakawa and TVD schemes 
     50      !!     O.Aumont and A.El Moussaoui 03/05 F90 
     51      !!---------------------------------------------------------------------- 
     52 
     53      !! local declarations 
     54      !! ================== 
    5755 
    5856      INTEGER ::  ji 
    5957      CHARACTER (len=32) :: clname 
    6058 
    61 !!---------------------------------------------------------------------- 
    62 !! statement functions 
    63 !! =================== 
    64  
    65 #include "passivetrc_substitute.h90" 
    66  
    67 !! 
    68 !!--------------------------------------------------------------------- 
    69 !!  OPA.90   03/2005  
    70 !!--------------------------------------------------------------------- 
    71  
    72 !! 0. initializations 
    73 !! ------------------ 
     59      !!--------------------------------------------------------------------- 
     60      !!  OPA.90   03/2005  
     61      !!--------------------------------------------------------------------- 
     62 
     63      !! 0. initializations 
     64      !! ------------------ 
    7465 
    7566      namelist/nattrc/nwritetrc,lrsttr,nrsttr, ctrcnm,ctrcnl,ctrcun,lutini     !general    
     
    8374#if defined key_trc_diaadd 
    8475      namelist/natadd/ctrc3d,ctrc3l,ctrc2d,ctrc2l, ctrc3u, ctrc2u,     & 
    85                       nwriteadd                             !additional diagnostics 
    86 #endif 
    87  
    88       IF(lwp) THEN 
    89           WRITE(numout,*) ' ' 
    90           WRITE(numout,*) ' ROUTINE trclec' 
    91           WRITE(numout,*) ' **************' 
    92           WRITE(numout,*) ' ' 
    93           WRITE(numout,*) ' namelist for passive tracer' 
    94           WRITE(numout,*) ' ***************************' 
    95           WRITE(numout,*) ' ' 
     76         nwriteadd                             !additional diagnostics 
     77#endif 
     78 
     79      IF(lwp) THEN 
     80         WRITE(numout,*) ' ' 
     81         WRITE(numout,*) ' ROUTINE trclec' 
     82         WRITE(numout,*) ' **************' 
     83         WRITE(numout,*) ' ' 
     84         WRITE(numout,*) ' namelist for passive tracer' 
     85         WRITE(numout,*) ' ***************************' 
     86         WRITE(numout,*) ' ' 
    9687      ENDIF 
    9788 
     
    10293      OPEN( numnat, FILE= clname, FORM='formatted', STATUS = 'old') 
    10394 
    104 !! 1., 2. & 3. initialization with namelist files 
    105 !! ---------------------------------------------- 
    106 !! 1.0 namelist nattrc : 
     95      !! 1., 2. & 3. initialization with namelist files 
     96      !! ---------------------------------------------- 
     97      !! 1.0 namelist nattrc : 
    10798 
    10899      nwritetrc = 10 
     
    111102 
    112103      DO ji=1,jptra 
    113         WRITE (ctrcnm(ji),'("TR_",I1)') ji 
    114         WRITE (ctrcnl(ji),'("TRACER NUMBER ",I1)') ji 
    115         ctrcun(ji)='mmole/m3' 
    116         lutini(ji)=.FALSE.  
     104         WRITE (ctrcnm(ji),'("TR_",I1)') ji 
     105         WRITE (ctrcnl(ji),'("TRACER NUMBER ",I1)') ji 
     106         ctrcun(ji)='mmole/m3' 
     107         lutini(ji)=.FALSE.  
    117108      END DO 
    118109 
     
    122113 
    123114      IF(lwp) THEN 
    124           WRITE(numout,*) ' ' 
    125           WRITE(numout,*) 'nattrc' 
    126           WRITE(numout,*) ' ' 
    127           WRITE(numout,*)          & 
    128               ' frequency of outputs for passive tracers nwritetrc = '    & 
    129               ,nwritetrc   
    130           WRITE(numout,*) ' restart LOGICAL for passive tr. lrsttr = ',   & 
    131      &         lrsttr 
    132           WRITE(numout,*) ' control of time step for p. tr. nrsttr = ',   &  
    133      &         nrsttr 
    134           DO ji=1,jptra 
     115         WRITE(numout,*) ' ' 
     116         WRITE(numout,*) 'nattrc' 
     117         WRITE(numout,*) ' ' 
     118         WRITE(numout,*)          & 
     119            ' frequency of outputs for passive tracers nwritetrc = '    & 
     120            ,nwritetrc   
     121         WRITE(numout,*) ' restart LOGICAL for passive tr. lrsttr = ',   & 
     122            &         lrsttr 
     123         WRITE(numout,*) ' control of time step for p. tr. nrsttr = ',   &  
     124            &         nrsttr 
     125         DO ji=1,jptra 
    135126            WRITE(numout,*) ' tracer nb: ',ji,' name = ',ctrcnm(ji)       &  
    136      &           ,ctrcnl(ji)  
     127               &           ,ctrcnl(ji)  
    137128            WRITE(numout,*) ' in unit = ',ctrcun(ji) 
    138129            WRITE(numout,*) ' initial value in FILE : ',lutini(ji)  
    139130            WRITE(numout,*) ' ' 
    140           END DO 
    141           WRITE(numout,*) ' ' 
     131         END DO 
     132         WRITE(numout,*) ' ' 
    142133      ENDIF 
    143134 
    144135#if defined key_trc_diatrd 
    145136 
    146 !! 1.2 namelist nattrd : passive tracers dynamical trends 
     137      !! 1.2 namelist nattrd : passive tracers dynamical trends 
    147138 
    148139      nwritetrd=10 
    149140 
    150 !! default : no dynamical trend recording 
    151 !! -------------------------------------- 
     141      !! default : no dynamical trend recording 
     142      !! -------------------------------------- 
    152143      DO ji=1,jptra 
    153         luttrd(ji) = .FALSE. 
    154       END DO  
     144         luttrd(ji) = .FALSE. 
     145      END DO 
    155146 
    156147      REWIND(numnat) 
     
    158149 
    159150      IF(lwp) THEN 
    160           WRITE(numout,*) 'natrtd' 
    161           WRITE(numout,*) ' ' 
    162           WRITE(numout,*)                        & 
    163              ' frequency of outputs for dynamical trends nwritetrd = '   & 
    164              ,nwritetrd 
    165           DO ji=1,jptra 
     151         WRITE(numout,*) 'natrtd' 
     152         WRITE(numout,*) ' ' 
     153         WRITE(numout,*)                        & 
     154            ' frequency of outputs for dynamical trends nwritetrd = '   & 
     155            ,nwritetrd 
     156         DO ji=1,jptra 
    166157            WRITE(numout,*)                      & 
    167158               ' keep dynamical trends for tracer number :',ji          & 
    168159               ,luttrd(ji)    
    169           END DO  
    170       ENDIF 
    171 #endif 
    172  
    173 !!1.3 namelist natadd : passive tracers diagnostics 
    174 !!------------------------------------------------- 
     160         END DO 
     161      ENDIF 
     162#endif 
     163 
     164      !!1.3 namelist natadd : passive tracers diagnostics 
     165      !!------------------------------------------------- 
    175166 
    176167#if defined key_trc_diaadd 
     
    178169      nwriteadd = 10 
    179170 
    180 !! default value for 3D output arrays : short and long name, units 
     171      !! default value for 3D output arrays : short and long name, units 
    181172 
    182173      DO ji=1,jpdia3d 
    183         WRITE (ctrc3d(ji),'("3D_",I1)') ji 
    184         WRITE (ctrc3l(ji),'("3D DIAGNOSTIC NUMBER ",I2)') ji 
    185         ctrc3u(ji)=' ' 
    186       END DO  
    187  
    188  
    189 !! default value for 2D output arrays : short and long name, units 
    190 !! --------------------------------------------------------------- 
     174         WRITE (ctrc3d(ji),'("3D_",I1)') ji 
     175         WRITE (ctrc3l(ji),'("3D DIAGNOSTIC NUMBER ",I2)') ji 
     176         ctrc3u(ji)=' ' 
     177      END DO 
     178 
     179 
     180      !! default value for 2D output arrays : short and long name, units 
     181      !! --------------------------------------------------------------- 
    191182      DO ji=1,jpdia2d 
    192         WRITE (ctrc2d(ji),'("2D_",I1)') ji 
    193         WRITE (ctrc2l(ji),'("2D DIAGNOSTIC NUMBER ",I2)') ji 
    194         ctrc2u(ji)=' ' 
    195       END DO  
     183         WRITE (ctrc2d(ji),'("2D_",I1)') ji 
     184         WRITE (ctrc2l(ji),'("2D DIAGNOSTIC NUMBER ",I2)') ji 
     185         ctrc2u(ji)=' ' 
     186      END DO 
    196187 
    197188      REWIND(numnat) 
     
    199190 
    200191      IF(lwp) THEN 
    201           WRITE(numout,*) ' natadd' 
    202           WRITE(numout,*) ' ' 
    203           WRITE(numout,*)                          & 
    204              ' frequency of outputs for additional arrays nwriteadd = '   & 
    205              ,nwriteadd 
    206           DO ji=1,jpdia3d 
     192         WRITE(numout,*) ' natadd' 
     193         WRITE(numout,*) ' ' 
     194         WRITE(numout,*)                          & 
     195            ' frequency of outputs for additional arrays nwriteadd = '   & 
     196            ,nwriteadd 
     197         DO ji=1,jpdia3d 
    207198            WRITE(numout,*)                     & 
    208199               'name of 3d output field number :',ji,' : ',ctrc3d(ji)   
    209200            WRITE(numout,*) ctrc3l(ji)   
    210201            WRITE(numout,*) ' in unit = ',ctrc3u(ji) 
    211           END DO  
    212           WRITE(numout,*) ' ' 
    213           DO ji=1,jpdia2d 
     202         END DO 
     203         WRITE(numout,*) ' ' 
     204         DO ji=1,jpdia2d 
    214205            WRITE(numout,*)                    & 
    215206               'name of 2d output field number :',ji,' : ',ctrc2d(ji)   
    216207            WRITE(numout,*) ctrc2l(ji)   
    217208            WRITE(numout,*) ' in unit = ',ctrc2u(ji) 
    218           END DO  
    219           WRITE(numout,*) ' ' 
    220       ENDIF 
    221 #endif 
    222  
    223 !! 1.1 namelist natnum : 
    224 !! --------------------- 
     209         END DO 
     210         WRITE(numout,*) ' ' 
     211      ENDIF 
     212#endif 
     213 
     214      !! 1.1 namelist natnum : 
     215      !! --------------------- 
    225216      rsc=1. 
    226217      rtrn=1.e-15 
     
    236227 
    237228      IF(lwp) THEN 
    238           WRITE(numout,*) ' ' 
    239           WRITE(numout,*) 'natnum' 
    240           WRITE(numout,*) ' ' 
    241           WRITE(numout,*) ' tuning coefficient              rsc     = ',    & 
    242              rsc 
    243           WRITE(numout,*) ' truncation value                rtrn    = ',    & 
    244              rtrn 
    245           WRITE(numout,*) ' number of corrective phase      ncortrc = ',    & 
    246              ncortrc 
    247           WRITE(numout,*) ' time step freq. for pass. trac. ndttrc  = ',    & 
    248              ndttrc 
    249           WRITE(numout,*) ' 1st time step for pass. trac. nittrc000 = ',    & 
    250              nittrc000 
    251           WRITE(numout,*) ' computes or not crossterms    crosster  = ',    & 
    252              crosster 
    253       ENDIF 
    254  
    255  
    256 !! namelist of transport 
    257 !! --------------------- 
     229         WRITE(numout,*) ' ' 
     230         WRITE(numout,*) 'natnum' 
     231         WRITE(numout,*) ' ' 
     232         WRITE(numout,*) ' tuning coefficient              rsc     = ',    & 
     233            rsc 
     234         WRITE(numout,*) ' truncation value                rtrn    = ',    & 
     235            rtrn 
     236         WRITE(numout,*) ' number of corrective phase      ncortrc = ',    & 
     237            ncortrc 
     238         WRITE(numout,*) ' time step freq. for pass. trac. ndttrc  = ',    & 
     239            ndttrc 
     240         WRITE(numout,*) ' 1st time step for pass. trac. nittrc000 = ',    & 
     241            nittrc000 
     242         WRITE(numout,*) ' computes or not crossterms    crosster  = ',    & 
     243            crosster 
     244      ENDIF 
     245 
     246 
     247      !! namelist of transport 
     248      !! --------------------- 
    258249      CALL trc_trp_lec 
    259250 
    260 !! namelist of SMS 
    261 !! ---------------       
     251      !! namelist of SMS 
     252      !! ---------------       
    262253      CALL trc_lsm 
    263254 
    264 END SUBROUTINE trc_lec  
     255   END SUBROUTINE trc_lec 
    265256 
    266257#else 
    267  
    268 SUBROUTINE trc_lec 
    269   !!============== 
    270      !! no passive tracers 
    271   !!============== 
    272 END SUBROUTINE trc_lec 
     258   !!====================================================================== 
     259   !!  Empty module : No passive tracer 
     260   !!====================================================================== 
     261CONTAINS 
     262 
     263   SUBROUTINE trc_lec 
     264 
     265   END SUBROUTINE trc_lec 
    273266 
    274267#endif 
Note: See TracChangeset for help on using the changeset viewer.