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

Changeset 4570


Ignore:
Timestamp:
2014-03-25T18:47:41+01:00 (10 years ago)
Author:
vichi
Message:

Add reading of river runoff data in off-line simulation, Ticket #1252

Location:
trunk/NEMOGCM/NEMO
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r4313 r4570  
    5050   LOGICAL            ::   ln_dynwzv    !: vertical velocity read in a file (T) or computed from u/v (F) 
    5151   LOGICAL            ::   ln_dynbbl    !: bbl coef read in a file (T) or computed (F) 
    52    LOGICAL            ::   ln_degrad    !: degradation option enabled or not  
    53  
    54    INTEGER  , PARAMETER ::   jpfld = 20     ! maximum number of fields to read 
     52   LOGICAL            ::   ln_degrad    !: degradation option enabled or not 
     53   LOGICAL            ::   ln_dynrnf    !: read runoff data in file (T) or set to zero (F) 
     54 
     55   INTEGER  , PARAMETER ::   jpfld = 21     ! maximum number of fields to read 
    5556   INTEGER  , SAVE      ::   jf_tem         ! index of temperature 
    5657   INTEGER  , SAVE      ::   jf_sal         ! index of salinity 
     
    6465   INTEGER  , SAVE      ::   jf_wnd         ! index of wind speed 
    6566   INTEGER  , SAVE      ::   jf_ice         ! index of sea ice cover 
     67   INTEGER  , SAVE      ::   jf_rnf         ! index of river runoff 
    6668   INTEGER  , SAVE      ::   jf_ubl         ! index of u-bbl coef 
    6769   INTEGER  , SAVE      ::   jf_vbl         ! index of v-bbl coef 
     
    257259      fr_i(:,:)        = sf_dyn(jf_ice)%fnow(:,:,1) * tmask(:,:,1)    ! Sea-ice fraction 
    258260      qsr (:,:)        = sf_dyn(jf_qsr)%fnow(:,:,1) * tmask(:,:,1)    ! solar radiation 
     261      IF ( ln_dynrnf ) & 
     262      rnf (:,:)        = sf_dyn(jf_rnf)%fnow(:,:,1) * tmask(:,:,1)    ! river runoffs  
    259263 
    260264      !                                                      ! bbl diffusive coef 
     
    329333      CHARACTER(len=100)            ::  cn_dir   !   Root directory for location of core files 
    330334      TYPE(FLD_N), DIMENSION(jpfld) ::  slf_d    ! array of namelist informations on the fields to read 
    331       TYPE(FLD_N) :: sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd  ! informations about the fields to be read 
     335      TYPE(FLD_N) :: sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd, sn_rnf  ! informations about the fields to be read 
    332336      TYPE(FLD_N) :: sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl          !   "                                 " 
    333337      TYPE(FLD_N) :: sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_fmf  !   "                                 " 
    334338      !!---------------------------------------------------------------------- 
    335339      ! 
    336       NAMELIST/namdta_dyn/cn_dir, ln_dynwzv, ln_dynbbl, ln_degrad,    & 
    337          &                sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd, & 
     340      NAMELIST/namdta_dyn/cn_dir, ln_dynwzv, ln_dynbbl, ln_degrad, ln_dynrnf,    & 
     341         &                sn_tem, sn_sal, sn_mld, sn_emp, sn_ice, sn_qsr, sn_wnd, sn_rnf, & 
    338342         &                sn_uwd, sn_vwd, sn_wwd, sn_avt, sn_ubl, sn_vbl,          & 
    339343         &                sn_ahu, sn_ahv, sn_ahw, sn_eiu, sn_eiv, sn_eiw, sn_fmf 
     
    357361         WRITE(numout,*) '      bbl coef read from file (T) or computed (F)          ln_dynbbl  = ', ln_dynbbl 
    358362         WRITE(numout,*) '      degradation option enabled (T) or not (F)            ln_degrad  = ', ln_degrad 
     363         WRITE(numout,*) '      river runoff option enabled (T) or not (F)           ln_dynrnf  = ', ln_dynrnf 
    359364         WRITE(numout,*) 
    360365      ENDIF 
     
    370375 
    371376      jf_tem = 1   ;   jf_sal = 2   ;  jf_mld = 3   ;  jf_emp = 4   ;   jf_fmf  = 5   ;  jf_ice = 6   ;   jf_qsr = 7 
    372       jf_wnd = 8   ;   jf_uwd = 9   ;  jf_vwd = 10  ;  jf_wwd = 11  ;   jf_avt  = 12  ;  jfld  = 12 
     377      jf_wnd = 8   ;   jf_uwd = 9   ;  jf_vwd = 10  ;  jf_wwd = 11  ;   jf_avt  = 12  ;  jfld  = jf_avt 
    373378      ! 
    374379      slf_d(jf_tem) = sn_tem   ;   slf_d(jf_sal)  = sn_sal   ;   slf_d(jf_mld) = sn_mld 
     
    376381      slf_d(jf_qsr) = sn_qsr   ;   slf_d(jf_wnd)  = sn_wnd   ;   slf_d(jf_avt) = sn_avt  
    377382      slf_d(jf_uwd) = sn_uwd   ;   slf_d(jf_vwd)  = sn_vwd   ;   slf_d(jf_wwd) = sn_wwd 
     383 
     384      ! 
     385      IF ( ln_dynrnf ) THEN 
     386                jf_rnf = jfld + 1  ;  jfld  = jf_rnf 
     387         slf_d(jf_rnf) = sn_rnf 
     388      ELSE 
     389         rnf (:,:) = 0._wp 
     390      ENDIF 
     391 
    378392      ! 
    379393      IF( .NOT.ln_degrad ) THEN     ! no degrad option 
    380394         IF( lk_traldf_eiv .AND. ln_dynbbl ) THEN        ! eiv & bbl 
    381                  jf_ubl  = 13      ;         jf_vbl  = 14      ;         jf_eiw  = 15   ;   jfld = 15 
     395                 jf_ubl  = jfld + 1 ;        jf_vbl  = jfld + 2 ;        jf_eiw  = jfld + 3   ;   jfld = jf_eiw 
    382396           slf_d(jf_ubl) = sn_ubl  ;   slf_d(jf_vbl) = sn_vbl  ;   slf_d(jf_eiw) = sn_eiw 
    383397         ENDIF 
    384398         IF( .NOT.lk_traldf_eiv .AND. ln_dynbbl ) THEN   ! no eiv & bbl 
    385                  jf_ubl  = 13      ;         jf_vbl  = 14      ;   jfld = 14 
     399                 jf_ubl  = jfld + 1 ;        jf_vbl  = jfld + 2 ;  jfld = jf_vbl 
    386400           slf_d(jf_ubl) = sn_ubl  ;   slf_d(jf_vbl) = sn_vbl 
    387401         ENDIF 
    388402         IF( lk_traldf_eiv .AND. .NOT.ln_dynbbl ) THEN   ! eiv & no bbl 
    389            jf_eiw = 13   ;   jfld = 13   ;  slf_d(jf_eiw) = sn_eiw 
     403           jf_eiw = jfld + 1 ; jfld = jf_eiw ; slf_d(jf_eiw) = sn_eiw 
    390404         ENDIF 
    391405      ELSE 
    392               jf_ahu  = 13      ;         jf_ahv  = 14      ;         jf_ahw  = 15   ;   jfld = 15 
     406              jf_ahu  = jfld + 1 ;        jf_ahv  = jfld + 2 ;        jf_ahw  = jfld + 3  ;  jfld = jf_ahw 
    393407        slf_d(jf_ahu) = sn_ahu  ;   slf_d(jf_ahv) = sn_ahv  ;   slf_d(jf_ahw) = sn_ahw 
    394408        IF( lk_traldf_eiv .AND. ln_dynbbl ) THEN         ! eiv & bbl 
    395                  jf_ubl  = 16      ;         jf_vbl  = 17       
    396            slf_d(jf_ubl) = sn_ubl  ;   slf_d(jf_vbl) = sn_vbl   
    397                  jf_eiu  = 18      ;         jf_eiv  = 19      ;          jf_eiw  = 20   ;   jfld = 20 
     409                 jf_ubl  = jfld + 1 ;        jf_vbl  = jfld + 2 ; 
     410           slf_d(jf_ubl) = sn_ubl  ;   slf_d(jf_vbl) = sn_vbl 
     411                 jf_eiu  = jfld + 3 ;        jf_eiv  = jfld + 4 ;    jf_eiw  = jfld + 5   ;  jfld = jf_eiw  
    398412           slf_d(jf_eiu) = sn_eiu  ;   slf_d(jf_eiv) = sn_eiv  ;    slf_d(jf_eiw) = sn_eiw 
    399413        ENDIF 
    400414        IF( .NOT.lk_traldf_eiv .AND. ln_dynbbl ) THEN    ! no eiv & bbl 
    401                  jf_ubl  = 16      ;         jf_vbl  = 17      ;   jfld = 17 
     415                 jf_ubl  = jfld + 1 ;        jf_vbl  = jfld + 2 ;  jfld = jf_vbl 
    402416           slf_d(jf_ubl) = sn_ubl  ;   slf_d(jf_vbl) = sn_vbl 
    403417        ENDIF 
    404418        IF( lk_traldf_eiv .AND. .NOT.ln_dynbbl ) THEN    ! eiv & no bbl 
    405                  jf_eiu  = 16      ;         jf_eiv  = 17      ;         jf_eiw  = 18   ;   jfld = 18 
     419                 jf_eiu  = jfld + 1 ;         jf_eiv  = jfld + 2 ;    jf_eiw  = jfld + 3   ; jfld = jf_eiw  
    406420           slf_d(jf_eiu) = sn_eiu  ;   slf_d(jf_eiv) = sn_eiv  ;   slf_d(jf_eiw) = sn_eiw 
    407421        ENDIF 
  • trunk/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r4492 r4570  
    152152         z3d(:,:,1) = tsn(:,:,1,jp_tem) * z3d(:,:,1) 
    153153         CALL iom_put( "sst2" , z3d(:,:,1)                 )   ! sea surface content of squared temperature 
    154          z3d(:,:,:) = tsn(:,:,:,jp_sal) * fse3t_n(:,:,:) 
     154         z3d(:,:,:) = tsn(:,:,:,jp_sal) * fse3t_n(:,:,:)             
    155155         CALL iom_put( "soce" , z3d                        )   ! salinity content 
    156156         CALL iom_put( "sss"  , z3d(:,:,1)                 )   ! sea surface salinity content 
     
    431431         CALL histdef( nid_T, "sowaflup", "Net Upward Water Flux"              , "Kg/m2/s",   &  ! (emp-rnf) 
    432432            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout ) 
     433         CALL histdef( nid_T, "sorunoff", "River runoffs"                      , "Kg/m2/s",   &  ! runoffs 
     434            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout ) 
    433435         CALL histdef( nid_T, "sosfldow", "downward salt flux"                 , "PSU/m2/s",  &  ! sfx 
    434436            &          jpi, jpj, nh_T, 1  , 1, 1  , -99 , 32, clop, zsto, zout ) 
     
    642644      CALL histwrite( nid_T, "sossheig", it, sshn          , ndim_hT, ndex_hT )   ! sea surface height 
    643645      CALL histwrite( nid_T, "sowaflup", it, ( emp-rnf )   , ndim_hT, ndex_hT )   ! upward water flux 
     646      CALL histwrite( nid_T, "sorunoff", it, rnf           , ndim_hT, ndex_hT )   ! river runoffs 
    644647      CALL histwrite( nid_T, "sosfldow", it, sfx           , ndim_hT, ndex_hT )   ! downward salt flux  
    645648                                                                                  ! (includes virtual salt flux beneath ice  
Note: See TracChangeset for help on using the changeset viewer.