Changeset 5889


Ignore:
Timestamp:
2015-11-13T17:58:13+01:00 (5 years ago)
Author:
kuniko
Message:

Incorporated flux adjustment. Job compiles and runs.

Location:
branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r5880 r5889  
    4545   LOGICAL , PUBLIC ::   ln_rnf         !: runoffs / runoff mouths 
    4646   LOGICAL , PUBLIC ::   ln_ssr         !: Sea Surface restoring on SST and/or SSS       
     47   LOGICAL , PUBLIC ::   ln_flx_adj         !: Sea Surface restoring on SST and/or SSS       
    4748   LOGICAL , PUBLIC ::   ln_apr_dyn     !: Atmospheric pressure forcing used on dynamics (ocean & ice) 
    4849   INTEGER , PUBLIC ::   nn_ice         !: flag for ice in the surface boundary condition (=0/1/2/3) 
  • branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx_adj.F90

    r5881 r5889  
    3737   INTEGER, PUBLIC ::   nn_flxadjht     ! Heat/freshwater flux adjustment indicator 
    3838   INTEGER, PUBLIC ::   nn_flxadjfw     ! Heat/freshwater flux adjustment indicator 
    39    REAL(wp)        ::   rn_dqdt         ! restoring factor on SST and SSS 
    40    REAL(wp)        ::   rn_deds         ! restoring factor on SST and SSS 
    4139   LOGICAL         ::   ln_sssr_bnd     ! flag to bound erp term  
    4240   REAL(wp)        ::   rn_sssr_bnd     ! ABS(Max./Min.) value of erp term [mm/day] 
     
    7472      REAL(wp) ::   zerp     ! local scalar for evaporation damping 
    7573      REAL(wp) ::   zqrp     ! local scalar for heat flux damping 
    76       REAL(wp) ::   zsrp     ! local scalar for unit conversion of rn_deds factor 
    7774      REAL(wp) ::   zerp_bnd ! local scalar for unit conversion of rn_epr_max factor 
    7875      INTEGER  ::   ierror   ! return error code 
     
    104101            ! 
    105102            IF( nn_flxadjfw == 1 ) THEN                               !* Anomalous freshwater term !(salt flux only (sfx)) 
    106                zsrp = rn_deds / rday                                  ! from [mm/day] to [kg/m2/s] 
    107103!CDIR COLLAPSE 
    108104               DO jj = 1, jpj 
     
    117113               ! 
    118114            ELSEIF( nn_flxadjfw == 2 ) THEN                               !* Salinity damping term (volume flux (emp) and associated heat flux (qns) 
    119                zsrp = rn_deds / rday                                  ! from [mm/day] to [kg/m2/s] 
    120115               zerp_bnd = rn_sssr_bnd / rday                          !       -              -     
    121116!CDIR COLLAPSE 
     
    152147      REAL(wp) ::   zerp     ! local scalar for evaporation damping 
    153148      REAL(wp) ::   zqrp     ! local scalar for heat flux damping 
    154       REAL(wp) ::   zsrp     ! local scalar for unit conversion of rn_deds factor 
    155149      REAL(wp) ::   zerp_bnd ! local scalar for unit conversion of rn_epr_max factor 
    156150      INTEGER  ::   ierror   ! return error code 
     
    158152      CHARACTER(len=100) ::  cn_dir          ! Root directory for location of ssr files 
    159153      TYPE(FLD_N) ::   sn_qrp, sn_erp        ! informations about the fields to be read 
    160       NAMELIST/namsbc_flx_adj/ cn_dir, nn_flxadjht, nn_flxadjfw, rn_dqdt, rn_deds, sn_qrp, sn_erp, ln_sssr_bnd, rn_sssr_bnd 
     154      NAMELIST/namsbc_flx_adj/ cn_dir, nn_flxadjht, nn_flxadjfw, sn_qrp, sn_erp,   & 
     155         &                     ln_sssr_bnd, rn_sssr_bnd 
    161156      INTEGER     ::  ios 
    162157      !!---------------------------------------------------------------------- 
     
    177172         WRITE(numout,*) '~~~~~~~ ' 
    178173         WRITE(numout,*) '   Namelist namsbc_flx_adj :' 
    179          WRITE(numout,*) '      Anomalous heat flux (qrp) term (Yes=1)             nn_flxadjht     = ', nn_flxadjht 
    180          WRITE(numout,*) '      Anomalous freshwater flux (erp) term (Yes=1, salt flux)    nn_flxadjfw     = ', nn_flxadjfw 
     174         WRITE(numout,*) '      Anom. heat flux (qrp) term (Yes=1)             nn_flxadjht     = ', nn_flxadjht 
     175         WRITE(numout,*) '      Anom. fw flux (erp) term (Yes=1, salt flux)    nn_flxadjfw     = ', nn_flxadjfw 
    181176         WRITE(numout,*) '                                           (Yes=2, volume flux) ' 
    182          WRITE(numout,*) '      dQ/dT (restoring magnitude on SST)     rn_dqdt     = ', rn_dqdt, ' W/m2/K' 
    183          WRITE(numout,*) '      dE/dS (restoring magnitude on SST)     rn_deds     = ', rn_deds, ' mm/day' 
    184177         WRITE(numout,*) '      flag to bound erp term                 ln_sssr_bnd = ', ln_sssr_bnd 
    185178         WRITE(numout,*) '      ABS(Max./Min.) erp threshold           rn_sssr_bnd = ', rn_sssr_bnd, ' mm/day' 
     
    194187         ALLOCATE( sf_qrp(1), STAT=ierror ) 
    195188         IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_flx_adj: unable to allocate sf_qrp structure' ) 
    196          ALLOCATE( sf_sst(1)%fnow(jpi,jpj,1), STAT=ierror ) 
     189         ALLOCATE( sf_qrp(1)%fnow(jpi,jpj,1), STAT=ierror ) 
    197190         IF( ierror > 0 )   CALL ctl_stop( 'STOP', 'sbc_flx_adj: unable to allocate sf_qrp now array' ) 
    198191         ! 
  • branches/UKMO/dev_r5518_flux_adjust/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90

    r5881 r5889  
    9090         &             ln_blk_mfs, ln_apr_dyn, nn_ice, nn_ice_embd, ln_dm2dc   , ln_rnf   ,   & 
    9191         &             ln_ssr    , nn_isf    , nn_fwb, ln_cdgw    , ln_wave    , ln_sdw   ,   & 
    92          &             nn_lsm    , nn_limflx , nn_components, ln_cpl 
     92         &             nn_lsm    , nn_limflx , nn_components, ln_cpl, ln_flx_adj 
    9393      INTEGER  ::   ios 
    9494      INTEGER  ::   ierr, ierr0, ierr1, ierr2, ierr3, jpm 
     
    144144         WRITE(numout,*) '              iceshelf formulation                       nn_isf      = ', nn_isf 
    145145         WRITE(numout,*) '              Sea Surface Restoring on SST and/or SSS    ln_ssr      = ', ln_ssr 
     146         WRITE(numout,*) '              Sea Surface Flux adjustment on heat and/or freshwater    ln_flx_adj      = ', ln_flx_adj 
    146147         WRITE(numout,*) '              FreshWater Budget control  (=0/1/2)        nn_fwb      = ', nn_fwb 
    147148         WRITE(numout,*) '              closed sea (=0/1) (set in namdom)          nn_closea   = ', nn_closea 
     
    299300      ! 
    300301      ! KY 12/11/2015 
    301                                CALL sbc_flx_adj_init           ! Sea-Surface Flux adjustment 
     302      IF( ln_flx_adj       )   CALL sbc_flx_adj_init           ! Sea-Surface Flux adjustment 
    302303      ! 
    303304      IF( ln_ssr           )   CALL sbc_ssr_init               ! Sea-Surface Restoring initialisation 
     
    404405  
    405406      ! KY 12/11/2015 
    406                              CALL sbc_flx_adj( kt )               ! add flux adjustment term 
     407      IF( ln_flx_adj     )   CALL sbc_flx_adj( kt )               ! add flux adjustment term 
    407408  
    408409      IF( ln_ssr         )   CALL sbc_ssr( kt )                   ! add SST/SSS damping term 
Note: See TracChangeset for help on using the changeset viewer.