Ignore:
Timestamp:
2019-12-09T12:29:10+01:00 (7 months ago)
Author:
smueller
Message:

Modifications to make modules diadetide and diamlr compilable and compatible with module tide_mod (tickets #2175 and #2194)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11879_ENHANCE-05_SimonM-Harmonic_Analysis/src/OCE/DIA/diadetide.F90

    r12022 r12122  
    1111   USE dom_oce        , ONLY :   rdt, nsec_day 
    1212   USE phycst         , ONLY :   rpi 
    13    USE tide_mod       , ONLY :   tide_harmo, jpmax_harmo, Wave 
     13   USE tide_mod 
    1414   USE xios 
    1515 
     
    3939      !!---------------------------------------------------------------------- 
    4040 
    41       LOGICAL                             ::   llxatt_enabled 
    42       INTEGER, ALLOCATABLE, DIMENSION(:)  ::   itide                                    ! Tidal-constituent index 
    43       REAL(wp), ALLOCATABLE, DIMENSION(:) ::   ztide_omega, ztide_u, ztide_v, ztide_f   ! Tidal-constituent parameters 
    44       REAL(wp)                            ::   zdt 
    45       INTEGER                             ::   jn 
     41      REAL(wp)                                   ::   zdt 
     42      INTEGER                                    ::   jn 
     43      CHARACTER (LEN=4), DIMENSION(jpmax_harmo)  ::   ctide_selected = ' n/a ' 
     44      TYPE(tide_harmonic), DIMENSION(:), POINTER ::   stideconst 
    4645 
    4746      ! Enquire detiding activation state (test for presence of detiding-related 
    4847      ! weights field and output file group) 
    49       IF ( xios_is_valid_field( "diadetide_weight" ).AND.xios_is_valid_filegroup( "diadetide_files" ) ) THEN 
    50          llxatt_enabled = .TRUE. 
     48      IF ( xios_is_valid_field( "diadetide_weight" ).AND.xios_is_valid_filegroup( "diadetide_files" ).AND.ln_tide ) THEN 
     49         lk_diadetide = .TRUE. 
    5150      ELSE 
    52          llxatt_enabled = .FALSE. 
     51         lk_diadetide = .FALSE. 
    5352      END IF 
    54       lk_diadetide = llxatt_enabled 
    5553 
    5654      IF (lwp) THEN 
     
    6361      IF (lk_diadetide) THEN 
    6462         ! Retrieve information about M2 tidal constituent 
    65          ALLOCATE( ztide_omega(1), ztide_v(1), ztide_u(1), ztide_f(1), itide(1) ) 
    66          DO jn = 1, jpmax_harmo 
    67             IF (TRIM( Wave(jn)%cname_tide ) == 'M2') itide(1) = jn 
    68          END DO 
    69          CALL tide_harmo( ztide_omega, ztide_v, ztide_u, ztide_f, itide, 1 ) 
     63         ctide_selected(1) = 'M2' 
     64         CALL tide_init_harmonics(ctide_selected, stideconst)  
     65 
    7066         ! For M2, twice the tidal period spans slightly more than one full 
    7167         ! day. Compute the maximum number of equal intervals that span exactly 
    7268         ! twice the tidal period *and* whose mid-points fall within a 24-hour 
    7369         ! period from midnight to midnight. 
    74          zdt = Wave(itide(1))%nt * 2.0_wp * rpi / ztide_omega(1) 
     70         zdt = 2.0_wp * 2.0_wp * rpi / stideconst(1)%omega 
    7571         ndiadetide = FLOOR( zdt / ( zdt - 86400.0_wp ) ) 
    76          DEALLOCATE( ztide_omega, ztide_v, ztide_u, ztide_f, itide ) 
    7772         ! Compute mid-points of the intervals to be included in the detided 
    7873         ! average 
Note: See TracChangeset for help on using the changeset viewer.