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

Changeset 2113


Ignore:
Timestamp:
2010-09-22T21:20:46+02:00 (14 years ago)
Author:
cetlod
Message:

phasing DEV_r2106_LOCEAN2010 with DEV_r1821_Rivers branch

Location:
branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DYN/sshwzv.F90

    r2000 r2113  
    2727   USE diaar5, ONLY :   lk_diaar5 
    2828   USE iom 
     29   USE sbcrnf, ONLY : rnf_dep, rnf_mod_dep  ! River runoff  
    2930 
    3031   IMPLICIT NONE 
     
    134135         hvr(:,:) = vmask(:,:,1) / ( hv(:,:) + 1.e0 - vmask(:,:,1) ) 
    135136         ! 
     137         ! 
     138         DO jj = 1, jpj 
     139            DO ji = 1, jpi 
     140               rnf_dep(ji,jj) = 0. 
     141               DO jk = 1, rnf_mod_dep(ji,jj)                          ! recalculates rnf_dep to be the depth  
     142                  rnf_dep(ji,jj) = rnf_dep(ji,jj) + fse3t(ji,jj,jk)    ! in metres to the bottom of the relevant grid box  
     143               ENDDO 
     144            ENDDO 
     145         ENDDO 
     146         !  
    136147      ENDIF 
    137148 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/SBC/sbcrnf.F90

    r2006 r2113  
    3333   TYPE(FLD_N)       , PUBLIC ::   sn_cnf                 !: information about the runoff mouth file to be read 
    3434   TYPE(FLD_N)                ::   sn_sal_rnf             !: information about the salinities of runoff file to be read   
    35    TYPE(FLD_N)                ::   sn_tmp_rnf             !: information about the temperatures of runoff file to be read   
     35   TYPE(FLD_N)                ::   sn_tem_rnf             !: information about the temperatures of runoff file to be read   
    3636   TYPE(FLD_N)                ::   sn_dep_rnf             !: information about the depth which river inflow affects 
    3737   LOGICAL           , PUBLIC ::   ln_rnf_mouth = .false. !: specific treatment in mouths vicinity 
     
    4848 
    4949   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_sal_rnf    !: structure of input river runoff salinity (file information, fields read)   
    50    TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tmp_rnf    !: structure of input river runoff temperature (file information, fields read)   
     50   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf_tem_rnf    !: structure of input river runoff temperature (file information, fields read)   
    5151  
    5252   REAL,    PUBLIC, DIMENSION(jpi,jpj) ::  rnf_dep         !: depth of runoff in m   
    5353   INTEGER, PUBLIC, DIMENSION(jpi,jpj) ::  rnf_mod_dep     !: depth of runoff in model levels   
    5454   REAL,    PUBLIC, DIMENSION(jpi,jpj) ::  rnf_sal         !: salinity of river runoff   
    55    REAL,    PUBLIC, DIMENSION(jpi,jpj) ::  rnf_tmp         !: temperature of river runoff   
     55   REAL,    PUBLIC, DIMENSION(jpi,jpj) ::  rnf_tem         !: temperature of river runoff   
    5656   
    5757   INTEGER  ::  ji, jj ,jk    ! dummy loop indices   
     
    9898         IF ( ln_rnf_att ) THEN   
    9999            CALL fld_read ( kt, nn_fsbc, sf_sal_rnf )   
    100             CALL fld_read ( kt, nn_fsbc, sf_tmp_rnf )   
     100            CALL fld_read ( kt, nn_fsbc, sf_tem_rnf )   
    101101         ENDIF   
    102102 
     
    117117            IF ( ln_rnf_att ) THEN   
    118118               rnf_sal(:,:) = ( sf_sal_rnf(1)%fnow(:,:,1) )   
    119                rnf_tmp(:,:) = ( sf_tmp_rnf(1)%fnow(:,:,1) )   
     119               rnf_tem(:,:) = ( sf_tem_rnf(1)%fnow(:,:,1) )   
    120120            ELSE   
    121121               rnf_sal(:,:) = 0   
    122                rnf_tmp(:,:) = -999   
     122               rnf_tem(:,:) = -999   
    123123            ENDIF   
    124124            CALL iom_put( "runoffs", rnf )         ! runoffs 
     
    143143      CHARACTER(len=32) ::   rn_dep_file   ! runoff file name   
    144144      !!  
    145       NAMELIST/namsbc_rnf/ cn_dir, ln_rnf_emp, sn_rnf, sn_cnf, sn_sal_rnf, sn_tmp_rnf, sn_dep_rnf,   &   
     145      NAMELIST/namsbc_rnf/ cn_dir, ln_rnf_emp, sn_rnf, sn_cnf, sn_sal_rnf, sn_tem_rnf, sn_dep_rnf,   &   
    146146         &                 ln_rnf_mouth, ln_rnf_att, rn_hrnf, rn_avt_rnf, rn_rfact   
    147147      !!---------------------------------------------------------------------- 
     
    157157 
    158158      sn_sal_rnf = FLD_N( 'runoffs',  24.  , 'rosaline' ,  .TRUE.    , .true. ,   'yearly'  , ''    , ''  )   
    159       sn_tmp_rnf = FLD_N( 'runoffs',  24.  , 'rotemper' ,  .TRUE.    , .true. ,   'yearly'  , ''    , ''  )   
     159      sn_tem_rnf = FLD_N( 'runoffs',  24.  , 'rotemper' ,  .TRUE.    , .true. ,   'yearly'  , ''    , ''  )   
    160160      sn_dep_rnf = FLD_N( 'runoffs',   0.  , 'rodepth'  ,  .FALSE.   , .true. ,   'yearly'  , ''    , ''  )   
    161161      ! 
     
    190190      ELSE                                      ! runoffs read in a file : set sf_rnf structure  
    191191         ! 
    192          ! Allocate sf_rnf structure and (if required) sf_sal_rnf and sf_tmp_rnf structures 
     192         ! Allocate sf_rnf structure and (if required) sf_sal_rnf and sf_tem_rnf structures 
    193193         ALLOCATE( sf_rnf(1), STAT=ierror ) 
    194194         IF( ierror > 0 ) THEN 
     
    206206            ALLOCATE( sf_sal_rnf(1)%fdta(jpi,jpj,1,2) ) 
    207207 
    208             ALLOCATE( sf_tmp_rnf(1), STAT=ierror ) 
     208            ALLOCATE( sf_tem_rnf(1), STAT=ierror ) 
    209209            IF( ierror > 0 ) THEN 
    210                 CALL ctl_stop( 'sbc_tmp_rnf: unable to allocate sf_tmp_rnf structure' )   ;   RETURN 
     210                CALL ctl_stop( 'sbc_tmp_rnf: unable to allocate sf_tem_rnf structure' )   ;   RETURN 
    211211            ENDIF 
    212             ALLOCATE( sf_tmp_rnf(1)%fnow(jpi,jpj,1) ) 
    213             ALLOCATE( sf_tmp_rnf(1)%fdta(jpi,jpj,1,2) ) 
     212            ALLOCATE( sf_tem_rnf(1)%fnow(jpi,jpj,1) ) 
     213            ALLOCATE( sf_tem_rnf(1)%fdta(jpi,jpj,1,2) ) 
    214214         ENDIF 
    215215         ! fill sf_rnf with sn_rnf and control print 
     
    218218         IF ( ln_rnf_att ) THEN   
    219219            CALL fld_fill (sf_sal_rnf, (/ sn_sal_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff salinity data', 'namsbc_rnf' )   
    220             CALL fld_fill (sf_tmp_rnf, (/ sn_tmp_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff temperature data', 'namsbc_rnf' )   
     220            CALL fld_fill (sf_tem_rnf, (/ sn_tem_rnf /), cn_dir, 'sbc_rnf_init', 'read runoff temperature data', 'namsbc_rnf' )   
    221221   
    222222            rn_dep_file = TRIM( cn_dir )//TRIM( sn_dep_rnf%clname )   
     
    225225            CALL iom_close( inum )                                      ! close file   
    226226   
    227             rnf_mod_dep(:,:)=0   
    228             DO jj=1,jpj   
    229               DO ji=1,jpi   
     227            rnf_mod_dep(:,:) = 0.   
     228            DO jj = 1, jpj   
     229              DO ji = 1, jpi   
    230230                IF ( rnf_dep(ji,jj) > 0.e0 ) THEN   
    231                   jk= 
    232                   DO WHILE ( jk/=jpkm1 .AND. fsdept(ji,jj,jk) < rnf_dep(ji,jj) );  jk=jk+1;   ENDDO   
    233                   rnf_mod_dep(ji,jj)=jk   
    234                 ELSE IF ( rnf_dep(ji,jj) .eq. -1 ) THEN   
    235                   rnf_mod_dep(ji,jj)=1   
    236                 ELSE IF ( rnf_dep(ji,jj) .eq. -999 ) THEN   
    237                   rnf_mod_dep(ji,jj)=jpkm1   
    238                 ELSE IF ( rnf_dep(ji,jj) /= 0 ) THEN   
     231                  jk =  
     232                  DO WHILE ( jk /= jpkm1 .AND. fsdept(ji,jj,jk) < rnf_dep(ji,jj) ) ;  jk = jk + 1 ;   ENDDO   
     233                  rnf_mod_dep(ji,jj) = jk   
     234                ELSE IF ( rnf_dep(ji,jj) == -1. ) THEN   
     235                  rnf_mod_dep(ji,jj) = 1.   
     236                ELSE IF ( rnf_dep(ji,jj) == -999 ) THEN   
     237                  rnf_mod_dep(ji,jj) = jpkm1   
     238                ELSE IF ( rnf_dep(ji,jj) /= 0. ) THEN   
    239239                  CALL ctl_stop( 'runoff depth not positive, and not -999 or -1, rnf value in file fort.999'  )   
    240240                  WRITE(999,*) 'ji, jj, rnf(ji,jj) :', ji, jj, rnf(ji,jj)   
     
    243243            ENDDO   
    244244         ELSE   
    245             rnf_mod_dep(:,:)=1   
     245            rnf_mod_dep(:,:) = 1.   
    246246         ENDIF   
    247247      !  
    248248      ENDIF 
     249      ! 
     250      DO jj = 1, jpj 
     251         DO ji = 1, jpi 
     252            rnf_dep(ji,jj) = 0. 
     253            DO jk = 1, rnf_mod_dep(ji,jj)                          ! recalculates rnf_dep to be the depth  
     254               rnf_dep(ji,jj) = rnf_dep(ji,jj) + fse3t(ji,jj,jk)    ! in metres to the bottom of the relevant grid box  
     255            ENDDO 
     256         ENDDO 
     257      ENDDO 
     258      !  
    249259 
    250260      !                                   ! ======================== 
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/TRA/trasbc.F90

    r2104 r2113  
    152152        DO jj = 1, jpj   
    153153           DO ji = 1, jpi   
    154               rnf_dep(ji,jj) = 0.e0  
    155               DO jk = 1, rnf_mod_dep(ji,jj)                          ! recalculates rnf_dep to be the depth   
    156                 rnf_dep(ji,jj) = rnf_dep(ji,jj) + fse3t(ji,jj,jk)    ! in metres to the bottom of the relevant grid box   
    157               END DO   
    158154              zdep = 1. / rnf_dep(ji,jj)   
    159155              zse3t= 1. / fse3t(ji,jj,1)   
    160               IF( rnf_tmp(ji,jj) == -999 )   rnf_tmp(ji,jj) = tsn(ji,jj,1,jp_tem)   ! if not specified set runoff temp to be sst   
     156              IF( rnf_tem(ji,jj) == -999 )   rnf_tem(ji,jj) = tsn(ji,jj,1,jp_tem)   ! if not specified set runoff temp to be sst   
    161157   
    162158              IF( rnf(ji,jj) > 0.e0 ) THEN   
     
    181177     
    182178                  ! direct flux   
    183                   zta = rnf_tmp(ji,jj) * rnf(ji,jj) * zsrau * zdep   
     179                  zta = rnf_tem(ji,jj) * rnf(ji,jj) * zsrau * zdep   
    184180                  zsa = rnf_sal(ji,jj) * rnf(ji,jj) * zsrau * zdep   
    185181     
     
    190186                ELSE   
    191187                  DO jk = 1, rnf_mod_dep(ji,jj)   
    192                     zta = ( rnf_tmp(ji,jj) - tsn(ji,jj,jk,jp_tem) ) * rnf(ji,jj) * zsrau * zdep   
     188                    zta = ( rnf_tem(ji,jj) - tsn(ji,jj,jk,jp_tem) ) * rnf(ji,jj) * zsrau * zdep   
    193189                    zsa = ( rnf_sal(ji,jj) - tsn(ji,jj,jk,jp_sal) ) * rnf(ji,jj) * zsrau * zdep   
    194190                    tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) + zta        ! add the trend to the general tracer trend 
Note: See TracChangeset for help on using the changeset viewer.