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 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90 – NEMO

Ignore:
Timestamp:
2012-01-28T17:44:18+01:00 (12 years ago)
Author:
rblod
Message:

Merge of 3.4beta into the trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/TRA/tradmp.F90

    r2715 r3294  
    1414   !!            3.2  ! 2009-08  (G. Madec, C. Talandier)  DOCTOR norm for namelist parameter 
    1515   !!            3.3  ! 2010-06  (C. Ethe, G. Madec) merge TRA-TRC  
     16   !!            3.4  ! 2011-04  (G. Madec, C. Ethe) Merge of dtatem and dtasal + suppression of CPP keys 
    1617   !!---------------------------------------------------------------------- 
    17 #if   defined key_tradmp   ||   defined key_esopa 
    18    !!---------------------------------------------------------------------- 
    19    !!   'key_tradmp'                                       internal damping 
     18 
    2019   !!---------------------------------------------------------------------- 
    2120   !!   tra_dmp_alloc : allocate tradmp arrays 
     
    3231   USE zdf_oce        ! ocean: vertical physics 
    3332   USE phycst         ! physical constants 
    34    USE dtatem         ! data: temperature 
    35    USE dtasal         ! data: salinity 
     33   USE dtatsd         ! data: temperature & salinity 
    3634   USE zdfmxl         ! vertical physics: mixed layer depth 
    3735   USE in_out_manager ! I/O manager 
    3836   USE lib_mpp        ! MPP library 
    3937   USE prtctl         ! Print control 
     38   USE wrk_nemo       ! Memory allocation 
     39   USE timing         ! Timing 
    4040 
    4141   IMPLICIT NONE 
     
    4747   PUBLIC   dtacof_zoom  ! routine called by in both tradmp.F90 and trcdmp.F90 
    4848 
    49 #if ! defined key_agrif 
    50    LOGICAL, PUBLIC, PARAMETER ::   lk_tradmp = .TRUE.     !: internal damping flag 
    51 #else 
    52    LOGICAL, PUBLIC            ::   lk_tradmp = .TRUE.     !: internal damping flag 
    53 #endif 
     49   !                                !!* Namelist namtra_dmp : T & S newtonian damping * 
     50   LOGICAL, PUBLIC ::   ln_tradmp = .TRUE.    !: internal damping flag 
     51   INTEGER         ::   nn_hdmp   =   -1      ! = 0/-1/'latitude' for damping over T and S 
     52   INTEGER         ::   nn_zdmp   =    0      ! = 0/1/2 flag for damping in the mixed layer 
     53   REAL(wp)        ::   rn_surf   =   50._wp  ! surface time scale for internal damping        [days] 
     54   REAL(wp)        ::   rn_bot    =  360._wp  ! bottom time scale for internal damping         [days] 
     55   REAL(wp)        ::   rn_dep    =  800._wp  ! depth of transition between rn_surf and rn_bot [meters] 
     56   INTEGER         ::   nn_file   =    2      ! = 1 create a damping.coeff NetCDF file  
     57 
    5458   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   strdmp   !: damping salinity trend (psu/s) 
    5559   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   ttrdmp   !: damping temperature trend (Celcius/s) 
    5660   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   resto    !: restoring coeff. on T and S (s-1) 
    57     
    58    !                                !!* Namelist namtra_dmp : T & S newtonian damping * 
    59    INTEGER  ::   nn_hdmp =   -1      ! = 0/-1/'latitude' for damping over T and S 
    60    INTEGER  ::   nn_zdmp =    0      ! = 0/1/2 flag for damping in the mixed layer 
    61    REAL(wp) ::   rn_surf =   50._wp  ! surface time scale for internal damping        [days] 
    62    REAL(wp) ::   rn_bot  =  360._wp  ! bottom time scale for internal damping         [days] 
    63    REAL(wp) ::   rn_dep  =  800._wp  ! depth of transition between rn_surf and rn_bot [meters] 
    64    INTEGER  ::   nn_file =    2      ! = 1 create a damping.coeff NetCDF file  
    6561 
    6662   !! * Substitutions 
     
    7672   INTEGER FUNCTION tra_dmp_alloc() 
    7773      !!---------------------------------------------------------------------- 
    78       !!                ***  FUNCTION tra_bbl_alloc  *** 
    79       !!---------------------------------------------------------------------- 
    80       ALLOCATE( strdmp(jpi,jpj,jpk) , ttrdmp(jpi,jpj,jpk) , resto(jpi,jpj,jpk), STAT= tra_dmp_alloc ) 
     74      !!                ***  FUNCTION tra_dmp_alloc  *** 
     75      !!---------------------------------------------------------------------- 
     76      ALLOCATE( strdmp(jpi,jpj,jpk) , ttrdmp(jpi,jpj,jpk), resto(jpi,jpj,jpk), STAT= tra_dmp_alloc ) 
    8177      ! 
    8278      IF( lk_mpp            )   CALL mpp_sum ( tra_dmp_alloc ) 
    8379      IF( tra_dmp_alloc > 0 )   CALL ctl_warn('tra_dmp_alloc: allocation of arrays failed') 
     80      ! 
    8481   END FUNCTION tra_dmp_alloc 
    8582 
     
    103100      !! ** Action  : - (ta,sa)   tracer trends updated with the damping trend 
    104101      !!---------------------------------------------------------------------- 
     102      ! 
    105103      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    106104      !! 
    107105      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    108       REAL(wp) ::   zta, zsa     ! local scalars 
    109       !!---------------------------------------------------------------------- 
     106      REAL(wp) ::   zta, zsa             ! local scalars 
     107      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::  zts_dta  
     108      !!---------------------------------------------------------------------- 
     109      ! 
     110      IF( nn_timing == 1 )  CALL timing_start( 'tra_dmp') 
     111      ! 
     112      CALL wrk_alloc( jpi, jpj, jpk, jpts,  zts_dta ) 
     113      !                           !==   input T-S data at kt   ==! 
     114      CALL dta_tsd( kt, zts_dta )            ! read and interpolates T-S data at kt 
    110115      ! 
    111116      SELECT CASE ( nn_zdmp )     !==    type of damping   ==! 
     
    115120            DO jj = 2, jpjm1 
    116121               DO ji = fs_2, fs_jpim1   ! vector opt. 
    117                   zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) ) 
    118                   zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) ) 
     122                  zta = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_tem) - tsb(ji,jj,jk,jp_tem) ) 
     123                  zsa = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_sal) - tsb(ji,jj,jk,jp_sal) ) 
    119124                  tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + zta 
    120125                  tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) + zsa 
    121                   strdmp(ji,jj,jk) = zsa           ! save the salinity trend (used in asmtrj) 
    122                   ttrdmp(ji,jj,jk) = zta 
     126                  strdmp(ji,jj,jk) = zsa           ! save the trend (used in asmtrj) 
     127                  ttrdmp(ji,jj,jk) = zta       
    123128               END DO 
    124129            END DO 
     
    130135               DO ji = fs_2, fs_jpim1   ! vector opt. 
    131136                  IF( avt(ji,jj,jk) <= 5.e-4_wp ) THEN 
    132                      zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) ) 
    133                      zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) ) 
     137                     zta = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_tem) - tsb(ji,jj,jk,jp_tem) ) 
     138                     zsa = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_sal) - tsb(ji,jj,jk,jp_sal) ) 
    134139                  ELSE 
    135140                     zta = 0._wp 
     
    149154               DO ji = fs_2, fs_jpim1   ! vector opt. 
    150155                  IF( fsdept(ji,jj,jk) >= hmlp (ji,jj) ) THEN 
    151                      zta = resto(ji,jj,jk) * ( t_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_tem) ) 
    152                      zsa = resto(ji,jj,jk) * ( s_dta(ji,jj,jk) - tsb(ji,jj,jk,jp_sal) ) 
     156                     zta = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_tem) - tsb(ji,jj,jk,jp_tem) ) 
     157                     zsa = resto(ji,jj,jk) * ( zts_dta(ji,jj,jk,jp_sal) - tsb(ji,jj,jk,jp_sal) ) 
    153158                  ELSE 
    154159                     zta = 0._wp 
     
    173178         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    174179      ! 
     180      CALL wrk_dealloc( jpi, jpj, jpk, jpts,  zts_dta ) 
     181      ! 
     182      IF( nn_timing == 1 )  CALL timing_stop( 'tra_dmp') 
     183      ! 
    175184   END SUBROUTINE tra_dmp 
    176185 
     
    184193      !! ** Method  :   read the nammbf namelist and check the parameters 
    185194      !!---------------------------------------------------------------------- 
    186       NAMELIST/namtra_dmp/ nn_hdmp, nn_zdmp, rn_surf, rn_bot, rn_dep, nn_file 
     195      NAMELIST/namtra_dmp/ ln_tradmp, nn_hdmp, nn_zdmp, rn_surf, rn_bot, rn_dep, nn_file 
    187196      !!---------------------------------------------------------------------- 
    188197 
     
    194203      IF(lwp) THEN                       ! Namelist print 
    195204         WRITE(numout,*) 
    196          WRITE(numout,*) 'tra_dmp : T and S newtonian damping' 
     205         WRITE(numout,*) 'tra_dmp_init : T and S newtonian damping' 
    197206         WRITE(numout,*) '~~~~~~~' 
    198207         WRITE(numout,*) '   Namelist namtra_dmp : set damping parameter' 
    199          WRITE(numout,*) '      T and S damping option         nn_hdmp = ', nn_hdmp 
    200          WRITE(numout,*) '      mixed layer damping option     nn_zdmp = ', nn_zdmp, '(zoom: forced to 0)' 
    201          WRITE(numout,*) '      surface time scale (days)      rn_surf = ', rn_surf 
    202          WRITE(numout,*) '      bottom time scale (days)       rn_bot  = ', rn_bot 
    203          WRITE(numout,*) '      depth of transition (meters)   rn_dep  = ', rn_dep 
    204          WRITE(numout,*) '      create a damping.coeff file    nn_file = ', nn_file 
     208         WRITE(numout,*) '      add a damping termn or not      ln_tradmp = ', ln_tradmp 
     209         WRITE(numout,*) '      T and S damping option          nn_hdmp   = ', nn_hdmp 
     210         WRITE(numout,*) '      mixed layer damping option      nn_zdmp   = ', nn_zdmp, '(zoom: forced to 0)' 
     211         WRITE(numout,*) '      surface time scale (days)       rn_surf   = ', rn_surf 
     212         WRITE(numout,*) '      bottom time scale (days)        rn_bot    = ', rn_bot 
     213         WRITE(numout,*) '      depth of transition (meters)    rn_dep    = ', rn_dep 
     214         WRITE(numout,*) '      create a damping.coeff file     nn_file   = ', nn_file 
     215         WRITE(numout,*) 
    205216      ENDIF 
    206217 
    207       !                              ! allocate tradmp arrays 
    208       IF( tra_dmp_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'tra_dmp_init: unable to allocate arrays' ) 
    209  
    210       SELECT CASE ( nn_hdmp ) 
    211       CASE (  -1  )   ;   IF(lwp) WRITE(numout,*) '   tracer damping in the Med & Red seas only' 
    212       CASE ( 1:90 )   ;   IF(lwp) WRITE(numout,*) '   tracer damping poleward of', nn_hdmp, ' degrees' 
    213       CASE DEFAULT 
    214          WRITE(ctmp1,*) '          bad flag value for nn_hdmp = ', nn_hdmp 
    215          CALL ctl_stop(ctmp1) 
    216       END SELECT 
    217  
    218       SELECT CASE ( nn_zdmp ) 
    219       CASE ( 0 )   ;   IF(lwp) WRITE(numout,*) '   tracer damping throughout the water column' 
    220       CASE ( 1 )   ;   IF(lwp) WRITE(numout,*) '   no tracer damping in the turbocline (avt > 5 cm2/s)' 
    221       CASE ( 2 )   ;   IF(lwp) WRITE(numout,*) '   no tracer damping in the mixed layer' 
    222       CASE DEFAULT 
    223          WRITE(ctmp1,*) 'bad flag value for nn_zdmp = ', nn_zdmp 
    224          CALL ctl_stop(ctmp1) 
    225       END SELECT 
    226  
    227       IF( .NOT.lk_dtasal .OR. .NOT.lk_dtatem )   & 
    228          &   CALL ctl_stop( 'no temperature and/or salinity data define key_dtatem and key_dtasal' ) 
    229  
    230       strdmp(:,:,:) = 0._wp       ! internal damping salinity trend (used in asmtrj) 
    231       ttrdmp(:,:,:) = 0._wp 
    232       !                          ! Damping coefficients initialization 
    233       IF( lzoom ) THEN   ;   CALL dtacof_zoom( resto ) 
    234       ELSE               ;   CALL dtacof( nn_hdmp, rn_surf, rn_bot, rn_dep,  & 
    235                              &            nn_file, 'TRA'  , resto            ) 
     218      IF( ln_tradmp ) THEN               ! initialization for T-S damping 
     219         ! 
     220         IF( tra_dmp_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'tra_dmp_init: unable to allocate arrays' ) 
     221         ! 
     222         SELECT CASE ( nn_hdmp ) 
     223         CASE (  -1  )   ;   IF(lwp) WRITE(numout,*) '   tracer damping in the Med & Red seas only' 
     224         CASE ( 1:90 )   ;   IF(lwp) WRITE(numout,*) '   tracer damping poleward of', nn_hdmp, ' degrees' 
     225         CASE DEFAULT 
     226            WRITE(ctmp1,*) '          bad flag value for nn_hdmp = ', nn_hdmp 
     227            CALL ctl_stop(ctmp1) 
     228         END SELECT 
     229         ! 
     230         SELECT CASE ( nn_zdmp ) 
     231         CASE ( 0 )   ;   IF(lwp) WRITE(numout,*) '   tracer damping throughout the water column' 
     232         CASE ( 1 )   ;   IF(lwp) WRITE(numout,*) '   no tracer damping in the turbocline (avt > 5 cm2/s)' 
     233         CASE ( 2 )   ;   IF(lwp) WRITE(numout,*) '   no tracer damping in the mixed layer' 
     234         CASE DEFAULT 
     235            WRITE(ctmp1,*) 'bad flag value for nn_zdmp = ', nn_zdmp 
     236            CALL ctl_stop(ctmp1) 
     237         END SELECT 
     238         ! 
     239         IF( .NOT.ln_tsd_tradmp ) THEN 
     240            CALL ctl_warn( 'tra_dmp_init: read T-S data not initialized, we force ln_tsd_tradmp=T' ) 
     241            CALL dta_tsd_init( ld_tradmp=ln_tradmp )        ! forces the initialisation of T-S data 
     242         ENDIF 
     243         ! 
     244         strdmp(:,:,:) = 0._wp       ! internal damping salinity trend (used in asmtrj) 
     245         ttrdmp(:,:,:) = 0._wp 
     246         !                          ! Damping coefficients initialization 
     247         IF( lzoom ) THEN   ;   CALL dtacof_zoom( resto ) 
     248         ELSE               ;   CALL dtacof( nn_hdmp, rn_surf, rn_bot, rn_dep, nn_file, 'TRA', resto ) 
     249         ENDIF 
     250         ! 
    236251      ENDIF 
    237252      ! 
     
    258273      REAL(wp), DIMENSION(6)  ::   zfact               ! 1Dworkspace 
    259274      !!---------------------------------------------------------------------- 
     275      ! 
     276      IF( nn_timing == 1 )  CALL timing_start( 'dtacof_zoom') 
     277      ! 
    260278 
    261279      zfact(1) =  1._wp 
     
    309327      presto(:,:,:) = presto(:,:,:) * tmask(:,:,:) 
    310328      ! 
     329      IF( nn_timing == 1 )  CALL timing_stop( 'dtacof_zoom') 
     330      ! 
    311331   END SUBROUTINE dtacof_zoom 
    312332 
     
    327347      USE iom 
    328348      USE ioipsl 
    329       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    330       USE wrk_nemo, ONLY:   zhfac => wrk_1d_1, zmrs => wrk_2d_1 , zdct  => wrk_3d_1   ! 1D, 2D, 3D workspace 
    331349      !! 
    332350      INTEGER                         , INTENT(in   )  ::  kn_hdmp    ! damping option 
     
    344362      REAL(wp) ::   zlat, zlat0, zlat1, zlat2   !   -      - 
    345363      REAL(wp) ::   zsdmp, zbdmp                !   -      - 
    346       CHARACTER(len=20)                ::   cfile 
    347       !!---------------------------------------------------------------------- 
    348  
    349       IF( wrk_in_use(1, 1) .OR.   & 
    350           wrk_in_use(2, 1) .OR.   & 
    351           wrk_in_use(3, 1)   ) THEN 
    352           CALL ctl_stop('dtacof: requested workspace arrays unavailable')   ;   RETURN 
    353       ENDIF 
     364      CHARACTER(len=20)                   :: cfile 
     365      REAL(wp), POINTER, DIMENSION(:    ) :: zhfac  
     366      REAL(wp), POINTER, DIMENSION(:,:  ) :: zmrs  
     367      REAL(wp), POINTER, DIMENSION(:,:,:) :: zdct  
     368      !!---------------------------------------------------------------------- 
     369      ! 
     370      IF( nn_timing == 1 )  CALL timing_start('dtacof') 
     371      ! 
     372      CALL wrk_alloc( jpk, zhfac          ) 
     373      CALL wrk_alloc( jpi, jpj, zmrs      ) 
     374      CALL wrk_alloc( jpi, jpj, jpk, zdct ) 
    354375      !                                   ! ==================== 
    355376      !                                   !  ORCA configuration : global domain 
     
    529550      ELSE                         !     No damping     ! 
    530551         !                         !--------------------! 
    531          CALL ctl_stop( 'Choose a correct value of nn_hdmp or DO NOT defined key_tradmp' ) 
     552         CALL ctl_stop( 'Choose a correct value of nn_hdmp or put ln_tradmp to FALSE' ) 
    532553      ENDIF 
    533554 
     
    544565      ENDIF 
    545566      ! 
    546       IF( wrk_not_released(1, 1) .OR.   & 
    547           wrk_not_released(2, 1) .OR.   & 
    548           wrk_not_released(3, 1) )   CALL ctl_stop('dtacof: failed to release workspace arrays') 
     567      CALL wrk_dealloc( jpk, zhfac) 
     568      CALL wrk_dealloc( jpi, jpj, zmrs ) 
     569      CALL wrk_dealloc( jpi, jpj, jpk, zdct ) 
     570      ! 
     571      IF( nn_timing == 1 )  CALL timing_stop('dtacof') 
    549572      ! 
    550573   END SUBROUTINE dtacof 
     
    572595      !!---------------------------------------------------------------------- 
    573596      USE ioipsl      ! IOipsl librairy 
    574       USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
    575       USE wrk_nemo, ONLY:   zxt => wrk_2d_1 , zyt => wrk_2d_2 , zzt => wrk_2d_3, zmask => wrk_2d_4 
    576597      !! 
    577598      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT( out ) ::   pdct   ! distance to the coastline 
     
    581602      CHARACTER (len=32) ::   clname                     ! local name 
    582603      REAL(wp) ::   zdate0                               ! local scalar 
    583       LOGICAL , ALLOCATABLE, DIMENSION(:,:) ::   llcotu, llcotv, llcotf   ! 2D logical workspace 
    584       REAL(wp), ALLOCATABLE, DIMENSION(:)   ::   zxc, zyc, zzc, zdis    ! temporary workspace 
    585       !!---------------------------------------------------------------------- 
    586  
    587       IF( wrk_in_use(2, 1,2,3,4) .OR.  & 
    588           wrk_in_use(1, 1,2,3,4)  ) THEN 
    589           CALL ctl_stop('cofdis: requested workspace arrays unavailable')   ;   RETURN 
    590       ENDIF 
    591  
    592       ALLOCATE( llcotu(jpi,jpj) , llcotv(jpi,jpj) , llcotf(jpi,jpj) ,                        & 
    593          &      zxc (3*jpi*jpj) , zyc (3*jpi*jpj) , zzc (3*jpi*jpj) , zdis (3*jpi*jpj) , STAT=ierr ) 
     604      REAL(wp), POINTER, DIMENSION(:,:) ::  zxt, zyt, zzt, zmask 
     605      REAL(wp), POINTER, DIMENSION(:  ) ::  zxc, zyc, zzc, zdis    ! temporary workspace 
     606      LOGICAL , ALLOCATABLE, DIMENSION(:,:) ::  llcotu, llcotv, llcotf   ! 2D logical workspace 
     607      !!---------------------------------------------------------------------- 
     608      ! 
     609      IF( nn_timing == 1 )  CALL timing_start('cofdis') 
     610      ! 
     611      CALL wrk_alloc( jpi, jpj , zxt, zyt, zzt, zmask    ) 
     612      CALL wrk_alloc( 3*jpi*jpj, zxc, zyc, zzc, zdis     ) 
     613      ALLOCATE( llcotu(jpi,jpj), llcotv(jpi,jpj), llcotf(jpi,jpj)  ) 
     614      ! 
    594615      IF( lk_mpp    )   CALL mpp_sum( ierr ) 
    595616      IF( ierr /= 0 )   CALL ctl_stop( 'STOP', 'cofdis: requested local arrays unavailable') 
     
    745766      CALL restclo( icot ) 
    746767      ! 
    747       IF( wrk_not_released(2, 1,2,3,4) .OR. &  
    748           wrk_not_released(1, 1,2,3,4)  )   CALL ctl_stop('cofdis: failed to release workspace arrays') 
    749       DEALLOCATE( llcotu , llcotv , llcotf ,      & 
    750          &        zxc    , zyc    , zzc    , zdis ) 
     768      CALL wrk_dealloc( jpi, jpj , zxt, zyt, zzt, zmask    ) 
     769      CALL wrk_dealloc( 3*jpi*jpj, zxc, zyc, zzc, zdis     ) 
     770      DEALLOCATE( llcotu, llcotv, llcotf  ) 
     771      ! 
     772      IF( nn_timing == 1 )  CALL timing_stop('cofdis') 
    751773      ! 
    752774   END SUBROUTINE cofdis 
    753  
    754 #else 
    755    !!---------------------------------------------------------------------- 
    756    !!   Default key                                     NO internal damping 
    757    !!---------------------------------------------------------------------- 
    758    LOGICAL , PUBLIC, PARAMETER ::   lk_tradmp = .FALSE.    !: internal damping flag 
    759 CONTAINS 
    760    SUBROUTINE tra_dmp( kt )        ! Empty routine 
    761       WRITE(*,*) 'tra_dmp: You should not have seen this print! error?', kt 
    762    END SUBROUTINE tra_dmp 
    763    SUBROUTINE tra_dmp_init        ! Empty routine 
    764    END SUBROUTINE tra_dmp_init 
    765 #endif 
    766  
    767775   !!====================================================================== 
    768776END MODULE tradmp 
Note: See TracChangeset for help on using the changeset viewer.