Changeset 7451


Ignore:
Timestamp:
2016-12-05T18:55:31+01:00 (4 years ago)
Author:
emanuelaclementi
Message:

#1805 dev_INGV_UKMO_2016: updates in sbcwave.F90 removing double allocations. Updates in namelist_ref for significant wave hiegh

Location:
branches/2016/dev_INGV_UKMO_2016/NEMOGCM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/CONFIG/SHARED/namelist_ref

    r7422 r7451  
    559559   sn_usd      =  'sdw_wave' ,        1          , 'u_sd2d'     ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    560560   sn_vsd      =  'sdw_wave' ,        1          , 'v_sd2d'     ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    561    sn_swh      =  'sdw_wave' ,        1          , 'hs'         ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
     561   sn_hsw      =  'sdw_wave' ,        1          , 'hs'         ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    562562   sn_wmp      =  'sdw_wave' ,        1          , 'wmp'        ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    563563   sn_wnum     =  'sdw_wave' ,        1          , 'wave_num'   ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90

    r7422 r7451  
    164164      ELSE                   ;   ik = 2   ! w=0 at the surface (set one for all in sbc_wave_init) 
    165165      ENDIF 
    166       DO jk = jpkm1, ik, -1          ! integrate from the bottom the e3t * hor. divergence (NB: at k=jpk w is always zero) 
     166      DO jk = jpkm1, ik, -1          ! integrate from the bottom the hor. divergence (NB: at k=jpk w is always zero) 
    167167         wsd(:,:,jk) = wsd(:,:,jk+1) - ze3divh(:,:,jk) 
    168168      END DO 
     
    276276         IF( .NOT. cpl_wdrag ) THEN 
    277277            ALLOCATE( sf_cd(1), STAT=ierror )           !* allocate and fill sf_wave with sn_cdg 
    278             IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave: unable to allocate sf_wave structure' ) 
     278            IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wave structure' ) 
    279279            ! 
    280280                                   ALLOCATE( sf_cd(1)%fnow(jpi,jpj,1)   ) 
    281281            IF( sn_cdg%ln_tint )   ALLOCATE( sf_cd(1)%fdta(jpi,jpj,1,2) ) 
    282             CALL fld_fill( sf_cd, (/ sn_cdg /), cn_dir, 'sbc_wave', 'Wave module ', 'namsbc_wave' ) 
     282            CALL fld_fill( sf_cd, (/ sn_cdg /), cn_dir, 'sbc_wave_init', 'Wave module ', 'namsbc_wave' ) 
    283283         ENDIF 
    284284         ALLOCATE( cdn_wave(jpi,jpj) ) 
     
    288288         IF( .NOT. cpl_wstrf ) THEN 
    289289            ALLOCATE( sf_tauoc(1), STAT=ierror )           !* allocate and fill sf_wave with sn_tauoc 
    290             IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave: unable to allocate sf_wave structure' ) 
     290            IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wave structure' ) 
    291291            ! 
    292292                                    ALLOCATE( sf_tauoc(1)%fnow(jpi,jpj,1)   ) 
    293293            IF( sn_tauoc%ln_tint )  ALLOCATE( sf_tauoc(1)%fdta(jpi,jpj,1,2) ) 
    294             CALL fld_fill( sf_tauoc, (/ sn_tauoc /), cn_dir, 'sbc_wave', 'Wave module', 'namsbc_wave' ) 
     294            CALL fld_fill( sf_tauoc, (/ sn_tauoc /), cn_dir, 'sbc_wave_init', 'Wave module', 'namsbc_wave' ) 
    295295         ENDIF 
    296296         ALLOCATE( tauoc_wave(jpi,jpj) ) 
     
    325325            IF( jp_wmp > 0 )   slf_i(jp_wmp) = sn_wmp 
    326326            ALLOCATE( sf_sd(jpfld), STAT=ierror )   !* allocate and fill sf_sd with stokes drift 
    327             IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave: unable to allocate sf_wave structure' ) 
     327            IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave_init: unable to allocate sf_wave structure' ) 
    328328            ! 
    329329            DO ifpr= 1, jpfld 
     
    332332            END DO 
    333333            ! 
    334             CALL fld_fill( sf_sd, slf_i, cn_dir, 'sbc_wave', 'Wave module ', 'namsbc_wave' ) 
     334            CALL fld_fill( sf_sd, slf_i, cn_dir, 'sbc_wave_init', 'Wave module ', 'namsbc_wave' ) 
    335335         ENDIF 
    336336         ALLOCATE( usd  (jpi,jpj,jpk), vsd  (jpi,jpj,jpk), wsd(jpi,jpj,jpk) ) 
    337          ALLOCATE( usd  (jpi,jpj,jpk), vsd  (jpi,jpj,jpk) ) 
    338337         ALLOCATE( hsw  (jpi,jpj)    , wmp  (jpi,jpj)     ) 
    339338         ALLOCATE( ut0sd(jpi,jpj)    , vt0sd(jpi,jpj)     ) 
    340339         ALLOCATE( div_sd(jpi,jpj) ) 
     340         ALLOCATE( tsd2d (jpi,jpj) ) 
    341341         usd(:,:,:) = 0._wp 
    342342         vsd(:,:,:) = 0._wp 
    343343         wsd(:,:,:) = 0._wp 
    344          IF( ln_zdfqiao ) THEN     !==  Vertical mixing enhancement using Qiao,2010  ==! 
    345             IF( .NOT. cpl_wnum ) THEN 
    346                ALLOCATE( sf_wn(1), STAT=ierror )           !* allocate and fill sf_wave with sn_wnum 
    347                IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave: unable toallocate sf_wave structure' ) 
    348                                       ALLOCATE( sf_wn(1)%fnow(jpi,jpj,1)   ) 
    349                IF( sn_wnum%ln_tint )  ALLOCATE( sf_wn(1)%fdta(jpi,jpj,1,2) ) 
    350                CALL fld_fill( sf_wn, (/ sn_wnum /), cn_dir, 'sbc_wave', 'Wave module', 'namsbc_wave' ) 
    351             ENDIF 
    352             ALLOCATE( wnum(jpi,jpj),tsd2d(jpi,jpj) ) 
    353          ENDIF 
     344         ! Wave number needed only if ln_zdfqiao=T 
     345         IF( .NOT. cpl_wnum ) THEN 
     346            ALLOCATE( sf_wn(1), STAT=ierror )           !* allocate and fill sf_wave with sn_wnum 
     347            IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_wave_init: unable toallocate sf_wave structure' ) 
     348                                   ALLOCATE( sf_wn(1)%fnow(jpi,jpj,1)   ) 
     349            IF( sn_wnum%ln_tint )  ALLOCATE( sf_wn(1)%fdta(jpi,jpj,1,2) ) 
     350            CALL fld_fill( sf_wn, (/ sn_wnum /), cn_dir, 'sbc_wave', 'Wave module', 'namsbc_wave' ) 
     351         ENDIF 
     352         ALLOCATE( wnum(jpi,jpj) ) 
    354353      ENDIF 
    355354      ! 
Note: See TracChangeset for help on using the changeset viewer.