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 15547 – NEMO

Changeset 15547


Ignore:
Timestamp:
2021-11-27T11:04:33+01:00 (2 years ago)
Author:
hadjt
Message:

Moving ftide, utide, v0tide output to sbctides, adding tide_t output to diaharm_fast

Location:
NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/DIA/diaharm_fast.F90

    r15502 r15547  
    77 
    88   !!---------------------------------------------------------------------- 
    9    !!   'key_harm_ana'  :                Calculate harmonic analysis 
     9   !!                   :                Calculate harmonic analysis 
    1010   !!---------------------------------------------------------------------- 
    1111   !!   harm_ana        : 
     
    162162 
    163163         
    164     DO jh = 1, nb_ana        
    165  
    166         tmp_name=TRIM(Wave(ntide_all(jh))%cname_tide)//'_anau_utide' 
    167         IF( iom_use(TRIM(tmp_name)) )  THEN 
    168         !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
    169             CALL iom_put( TRIM(tmp_name), anau(jh) ) 
    170         !ELSE 
    171         !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
    172         ENDIF     
    173  
    174         tmp_name=TRIM(Wave(ntide_all(jh))%cname_tide)//'_anav_v0tide' 
    175         IF( iom_use(TRIM(tmp_name)) )  THEN 
    176         !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anav(jh) ) 
    177             CALL iom_put( TRIM(tmp_name), anav(jh) ) 
    178         !ELSE 
    179         !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
    180         ENDIF 
    181  
    182         tmp_name=TRIM(Wave(ntide_all(jh))%cname_tide)//'_anaf_ftide' 
    183         IF( iom_use(TRIM(tmp_name)) )  THEN 
    184         !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anaf(jh) ) 
    185             CALL iom_put( TRIM(tmp_name), anaf(jh) ) 
    186         !ELSE 
    187         !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
    188         ENDIF 
    189  
    190      END DO 
    191         
     164!    DO jh = 1, nb_ana        
     165 
     166!        tmp_name=TRIM(Wave(ntide_all(jh))%cname_tide)//'_anau_utide' 
     167!        IF( iom_use(TRIM(tmp_name)) )  THEN 
     168!        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     169!            CALL iom_put( TRIM(tmp_name), anau(jh) ) 
     170!        !ELSE 
     171!        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     172!        ENDIF     
     173 
     174!        tmp_name=TRIM(Wave(ntide_all(jh))%cname_tide)//'_anav_v0tide' 
     175!        IF( iom_use(TRIM(tmp_name)) )  THEN 
     176!        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anav(jh) ) 
     177!            CALL iom_put( TRIM(tmp_name), anav(jh) ) 
     178!        !ELSE 
     179!        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     180!        ENDIF 
     181 
     182!        tmp_name=TRIM(Wave(ntide_all(jh))%cname_tide)//'_anaf_ftide' 
     183!        IF( iom_use(TRIM(tmp_name)) )  THEN 
     184!        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anaf(jh) ) 
     185!            CALL iom_put( TRIM(tmp_name), anaf(jh) ) 
     186!        !ELSE 
     187!        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     188!        ENDIF 
     189 
     190!     END DO 
     191!        
    192192 
    193193     IF ( ln_diaharm_fast .and. ln_diaharm_store .and. ( lk_diaharm_2D .or. lk_diaharm_3D) ) THEN 
     
    199199          sec2start_old = nint( (fjulday-fjulday_startharm)*86400._wp )  
    200200          sec2start = nsec_day - NINT(0.5_wp * rdt) 
     201 
     202 
     203 
     204 
     205          IF( iom_use('tide_t') ) CALL iom_put( 'tide_t', sec2start ) 
     206 
     207 
     208 
     209 
    201210          !IF(lwp) WRITE(numout,*) "ztime NEW", kt, sec2start, fjulday_startharm 
    202211 
  • NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/SBC/sbctide.F90

    r14266 r15547  
    1919   USE bdytides ! davbyr - Access to love number 
    2020 
     21   USE tide_mod 
     22 
    2123   IMPLICIT NONE 
    2224   PUBLIC 
     
    4850      INTEGER               ::   jk     ! dummy loop index 
    4951      INTEGER               ::   nsec_day_orig     ! Temporary variable 
     52      CHARACTER (len=40) :: tmp_name 
    5053      !!---------------------------------------------------------------------- 
    5154       
     
    97100         nsec_day = nsec_day_orig  
    98101      ENDIF 
     102 
     103 
     104        DO jk = 1, nb_harmo 
     105 
     106 
     107 
     108 
     109            tmp_name=TRIM(Wave(ntide(jk))%cname_tide)//'_utide' 
     110            IF( iom_use(TRIM(tmp_name)) )  THEN 
     111            !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     112                CALL iom_put( TRIM(tmp_name), utide(jk) ) 
     113            !ELSE 
     114            !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     115            ENDIF     
     116 
     117            tmp_name=TRIM(Wave(ntide(jk))%cname_tide)//'_v0tide' 
     118            IF( iom_use(TRIM(tmp_name)) )  THEN 
     119            !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     120                CALL iom_put( TRIM(tmp_name), v0tide(jk) ) 
     121            !ELSE 
     122            !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     123            ENDIF     
     124 
     125            tmp_name=TRIM(Wave(ntide(jk))%cname_tide)//'_v0tide_origin' 
     126            IF( iom_use(TRIM(tmp_name)) )  THEN 
     127            !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     128                CALL iom_put( TRIM(tmp_name), v0linearintercept(jk) ) 
     129            !ELSE 
     130            !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     131            ENDIF     
     132 
     133 
     134            tmp_name=TRIM(Wave(ntide(jk))%cname_tide)//'_ftide' 
     135            IF( iom_use(TRIM(tmp_name)) )  THEN 
     136            !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     137                CALL iom_put( TRIM(tmp_name), ftide(jk) ) 
     138            !ELSE 
     139            !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     140            ENDIF     
     141 
     142 
     143            tmp_name=TRIM(Wave(ntide(jk))%cname_tide)//'_per' 
     144            IF( iom_use(TRIM(tmp_name)) )  THEN 
     145            !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     146                CALL iom_put( TRIM(tmp_name), 2*rpi/(3600.0_wp*omega_tide(jk)) ) 
     147            !ELSE 
     148            !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     149            ENDIF     
     150 
     151 
     152            tmp_name=TRIM(Wave(ntide(jk))%cname_tide)//'_freq' 
     153            IF( iom_use(TRIM(tmp_name)) )  THEN 
     154            !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     155                CALL iom_put( TRIM(tmp_name), omega_tide(jk) ) 
     156            !ELSE 
     157            !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     158            ENDIF     
     159 
     160 
     161        END DO 
    99162      ! 
    100163   END SUBROUTINE sbc_tide 
     164 
    101165 
    102166 
  • NEMO/branches/UKMO/NEMO_4.0.4_CO9_shelf_climate/src/OCE/SBC/tide_mod.F90

    r15500 r15547  
    1515   USE ioipsl  , ONLY :   ymds2ju      ! for calendar 
    1616 
     17   USE iom 
    1718 
    1819   IMPLICIT NONE 
     
    2526   ! davbyr: increase maximum number of harmonics from 19 to 34 
    2627   INTEGER, PUBLIC, PARAMETER ::   jpmax_harmo = 34   !: maximum number of harmonic 
     28 
     29 
     30   REAL(wp), PUBLIC, ALLOCATABLE, DIMENSION(:) ::   v0linearintercept             
     31 
     32 
    2733 
    2834   TYPE, PUBLIC ::    tide 
     
    140146      ENDIF 
    141147 
    142       IF ( ln_tide_compress   )  CALL astronomic_angle_origin 
     148      !IF ( ln_tide_compress   )   
     149      CALL astronomic_angle_origin 
    143150 
    144151   END SUBROUTINE tide_init_calendar_options 
     
    969976      REAL(wp)                             :: hours_since_origin 
    970977      REAL(wp), DIMENSION(kc) ::   pomega           ! pulsation in radians/s 
    971       REAL(wp), DIMENSION(kc) ::   freq_per_day,   v0linearslope,v0linearintercept             ! pulsation in radians/s  !offset,cycle_reset,freq,per_hr 
     978      REAL(wp), DIMENSION(kc) ::   freq_per_day,   v0linearslope ! ,v0linearintercept             ! pulsation in radians/s  !offset,cycle_reset,freq,per_hr 
     979      CHARACTER (len=40) :: tmp_name 
    972980      !! JT for compress 
    973981 
    974982 
     983      IF( .NOT. ALLOCATED(v0linearintercept) )  ALLOCATE( v0linearintercept(kc)   ) 
     984     
    975985 
    976986      IF ( ln_tide_compress) THEN 
     
    12741284         !  Linear with time 
    12751285 
     1286        v0linearintercept(jh) = sh_T_o * Wave( ktide(jh) )%nT    & 
     1287            &    + sh_s_o * Wave( ktide(jh) )%ns    & 
     1288            &    + sh_h_o * Wave( ktide(jh) )%nh    & 
     1289            &    + sh_p_o * Wave( ktide(jh) )%np    & 
     1290            &    + sh_p1_o* Wave( ktide(jh) )%np1   & 
     1291            &    +          Wave( ktide(jh) )%shift * rad 
     1292 
     1293 
    12761294         IF ( ln_tide_compress ) THEN 
    1277  
    1278             v0linearintercept(jh) = sh_T_o * Wave( ktide(jh) )%nT    & 
    1279                 &    + sh_s_o * Wave( ktide(jh) )%ns    & 
    1280                 &    + sh_h_o * Wave( ktide(jh) )%nh    & 
    1281                 &    + sh_p_o * Wave( ktide(jh) )%np    & 
    1282                 &    + sh_p1_o* Wave( ktide(jh) )%np1   & 
    1283                 &    +          Wave( ktide(jh) )%shift * rad 
    1284  
    1285  
    12861295 
    12871296             !JT pvt(jh) = mod(  ( (v0linearslope(jh)*days_since_origin) + v0linearintercept(  ktide(jh)  ) ),  2*rpi)-(2*rpi) 
     
    13291338          END DO 
    13301339      ENDIF 
     1340 
     1341 
     1342 
     1343 
     1344    DO jh = 1, kc        
     1345 
     1346        tmp_name=TRIM(Wave(ktide(jh))%cname_tide)//'_utide' 
     1347        IF( iom_use(TRIM(tmp_name)) )  THEN 
     1348        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anau(jh) ) 
     1349            CALL iom_put( TRIM(tmp_name), put(jh) ) 
     1350        !ELSE 
     1351        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     1352        ENDIF     
     1353 
     1354        tmp_name=TRIM(Wave(ktide(jh))%cname_tide)//'_v0tide' 
     1355        IF( iom_use(TRIM(tmp_name)) )  THEN 
     1356        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anav(jh) ) 
     1357            CALL iom_put( TRIM(tmp_name), pvt(jh) ) 
     1358        !ELSE 
     1359        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     1360        ENDIF 
     1361 
     1362        tmp_name=TRIM(Wave(ktide(jh))%cname_tide)//'_v0tide_origin' 
     1363        IF( iom_use(TRIM(tmp_name)) )  THEN 
     1364        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anav(jh) ) 
     1365            CALL iom_put( TRIM(tmp_name), v0linearintercept(jh) ) 
     1366        !ELSE 
     1367        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     1368        ENDIF 
     1369 
     1370 
     1371 
     1372 
     1373        tmp_name=TRIM(Wave(ktide(jh))%cname_tide)//'_ftide' 
     1374        IF( iom_use(TRIM(tmp_name)) )  THEN 
     1375        !    IF(lwp) WRITE(numout,*) "harm_ana_out: iom_put: ",TRIM(tmp_name),'; shape = ', SHAPE(anaf(jh) ) 
     1376            CALL iom_put( TRIM(tmp_name), pcor(jh) ) 
     1377        !ELSE 
     1378        !    IF(lwp) WRITE(numout,*) "harm_ana_out: not requested: ",TRIM(tmp_name) 
     1379        ENDIF 
     1380 
     1381     END DO 
     1382 
     1383 
     1384 
     1385 
     1386 
     1387 
     1388 
     1389 
     1390 
    13311391 
    13321392 
Note: See TracChangeset for help on using the changeset viewer.