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 5193 for branches/2015/dev_r5171_CNRS_LIM3_seaicebgc – NEMO

Ignore:
Timestamp:
2015-04-03T10:48:51+02:00 (9 years ago)
Author:
vancop
Message:

A few cosmetic changes before SETTE

Location:
branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90

    r4996 r5193  
    216216902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissbc in configuration namelist', lwp ) 
    217217      IF(lwm) WRITE ( numonp, nampissbc ) 
     218 
     219      IF ( ( nn_ice_tr >= 0 ) .AND. ln_ironice ) THEN  
     220         WRITE(numout,*) ' ln_ironice incompatible with nn_ice_tr = ', nn_ice_tr 
     221         WRITE(numout,*) ' Specify your sea ice iron concentration in nampisice instead ' 
     222         WRITE(numout,*) ' ln_ironice is forced to .FALSE. ' 
     223         ln_ironice = .FALSE. 
     224      ENDIF 
    218225 
    219226      IF(lwp) THEN 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsed.F90

    r5184 r5193  
    7373      CHARACTER (len=25) :: charout 
    7474      REAL(wp), POINTER, DIMENSION(:,:  ) :: zpdep, zsidep, zwork1, zwork2, zwork3, zwork4 
    75       REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zbureff 
     75      REAL(wp), POINTER, DIMENSION(:,:  ) :: zdenit2d, zironice, zbureff 
    7676      REAL(wp), POINTER, DIMENSION(:,:  ) :: zwsbio3, zwsbio4, zwscal 
    7777      REAL(wp), POINTER, DIMENSION(:,:,:) :: znitrpot, zirondep, zsoufer 
     
    9797      zwork3  (:,:) = 0.e0 
    9898      zwork4  (:,:) = 0.e0 
     99 
     100      ! Iron input/uptake due to sea ice : Crude parameterization based on Lancelot et al. 
     101      ! ---------------------------------------------------- 
     102      IF( ln_ironice ) THEN   
     103         !                                               
     104         CALL wrk_alloc( jpi, jpj, zironice ) 
     105         !                                               
     106         DO jj = 1, jpj 
     107            DO ji = 1, jpi 
     108               zdep    = rfact2 / fse3t(ji,jj,1) 
     109               zwflux  = fmmflx(ji,jj) / 1000._wp 
     110               zfminus = MIN( 0._wp, -zwflux ) * trn(ji,jj,1,jpfer) * zdep 
     111               zfplus  = MAX( 0._wp, -zwflux ) * icefeinput * zdep 
     112               zironice(ji,jj) =  zfplus + zfminus 
     113            END DO 
     114         END DO 
     115         ! 
     116         trn(:,:,1,jpfer) = trn(:,:,1,jpfer) + zironice(:,:)  
     117         !  
     118         IF( lk_iomput .AND. jnt == nrdttrc .AND. iom_use( "Ironice" ) )   & 
     119            &   CALL iom_put( "Ironice", zironice(:,:) * 1.e+3 * rfact2r * fse3t(:,:,1) * tmask(:,:,1) ) ! iron flux from ice 
     120         ! 
     121         CALL wrk_dealloc( jpi, jpj, zironice ) 
     122         !                                               
     123      ENDIF 
     124 
    99125 
    100126      ! Add the external input of nutrients from dust deposition 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/PISCES/trcice_pisces.F90

    r5185 r5193  
    2121   USE sms_pisces      ! PISCES Source Minus Sink variables 
    2222   USE p4zsbc 
     23   USE in_out_manager 
    2324 
    2425   IMPLICIT NONE 
     
    114115      !-------------------------------------------- 
    115116 
    116       REWIND( numnatp ) 
    117       READ( numnatp, nampisice ) 
     117      REWIND( numnatp_ref ) 
     118      READ( numnatp_ref, nampisice, IOSTAT = ios, ERR = 901 ) 
     119901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisice in reference namelist', lwp ) 
     120 
     121      REWIND( numnatp_cfg ) 
     122      READ( numnatp_cfg, nampisice, IOSTAT = ios, ERR = 902 ) 
     123902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisice in configuration namelist', lwp ) 
    118124 
    119125      ! Assign namelist stuff 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/TRP/trcsbc.F90

    r5184 r5193  
    6363      ! 
    6464      INTEGER  ::   ji, jj, jn                                     ! dummy loop indices 
    65       REAL(wp) ::   zsrau, zse3t                                   ! temporary scalars 
    66       REAL(wp) ::   zswitch, zftra, zcd, zdtra, ztfx, ztra, zeuler ! temporary scalars 
     65      REAL(wp) ::   zse3t                                          ! temporary scalars 
     66      REAL(wp) ::   zswitch, zftra, zcd, zdtra, ztfx, ztra        ! temporary scalars 
    6767      CHARACTER (len=22) :: charout 
    6868      REAL(wp), POINTER, DIMENSION(:,:  ) :: zsfx 
     
    9999      ENDIF 
    100100 
     101      WRITE(numout,*) ' trc_sbc initial values', trn(3,2,1,2), trb(3,2,1,2), tra(3,2,1,2) 
     102 
    101103      ! 0. initialization 
    102       zsrau = 1. / rau0 
    103  
    104       zeuler = 1.   ;  IF ( neuler .EQ. 0 ) zeuler = 0. 
    105  
    106104      DO jn = 1, jptra 
    107105         ! 
     
    114112               DO ji = fs_2, fs_jpim1   ! vector opt. 
    115113                  zse3t = 1. / fse3t(ji,jj,1) 
    116                   tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) *  zsrau * trn(ji,jj,1,jn) * zse3t 
     114                  tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zsfx(ji,jj) * r1_rau0 * trn(ji,jj,1,jn) * zse3t 
    117115               END DO 
    118116            END DO 
     
    122120            DO jj = 2, jpj 
    123121               DO ji = fs_2, fs_jpim1   ! vector opt. 
    124     
     122 
    125123                  zse3t = 1. / fse3t(ji,jj,1) 
    126124                   
     
    133131                  ztfx  = zftra + zswitch * zcd                ! net tracer flux (+C/D if no ice/ocean mass exchange) 
    134132    
    135                   ! tracer change (left member: euler; right member:leapfrog) 
    136                   ztra = ( 1. - zeuler ) * trn(ji,jj,1,jn) + zeuler * trb(ji,jj,1,jn) 
    137                    
    138                   ! MAX is there to avoid integral ocean uptake in the case of freezing (for iron) 
    139                   zdtra = MAX ( - ztra / r2dtra(1) , zsrau * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t ) ! tracer tendency 
    140                   ! r2dtra is time step 
    141                   tra(ji,jj,1,jn) = tra(ji,jj,1,jn) + zdtra ! new line 
     133                  zdtra = r1_rau0 * ( ztfx + zsfx(ji,jj) * trn(ji,jj,1,jn) ) * zse3t 
     134                  tra(ji,jj,1,jn) = MAX( tra(ji,jj,1,jn) + zdtra, 0.) ! avoid integral ocean uptake if freezing (for iron) 
    142135    
    143    !              IF ( ztfx .NE. 0.0 ) THEN 
    144    !                  WRITE(numout,*) ji, jj, jn 
    145    !                  WRITE(numout,*) ' trc_o  : ', trc_o(ji,jj,jn) 
    146    !                  WRITE(numout,*) ' trc_i  : ', trc_i(ji,jj,jn) 
    147    !                  WRITE(numout,*) ' fmmflx : ', fmmflx(ji,jj) 
    148    !                  WRITE(numout,*) ' zswitch: ', zswitch 
    149    !                  WRITE(numout,*) ' zcd   : ', zcd 
    150    !                  WRITE(numout,*) ' zftra : ', zftra 
    151    !                  WRITE(numout,*) ' ztfx  : ', ztfx 
    152    !                  WRITE(numout,*) ' zsrau : ', zsrau 
    153    !                  WRITE(numout,*) ' zsfx  : ', zsfx(ji,jj) 
    154    !                  WRITE(numout,*) ' zse3t : ', zse3t 
    155    !                  WRITE(numout,*) ' ztra  : ', ztra 
    156    !                  WRITE(numout,*) ' zdtra : ', zdtra 
    157    !                  WRITE(numout,*) ' Old tendency : ', zsfx(ji,jj) * zsrau * trn(ji,jj,1,jn) * zse3t 
    158    !              ENDIF 
     136!                 IF ( ztfx .NE. 0.0 ) THEN 
     137                  IF ( ( ji .EQ. 3 ) .AND. ( jj .EQ. 2 )  .AND. ( jn .EQ. 2 ) ) THEN 
     138                      WRITE(numout,*) ji, jj, jn 
     139                      WRITE(numout,*) ' trn    : ', trn(ji,jj,1,jn) 
     140                      WRITE(numout,*) ' trb    : ', trb(ji,jj,1,jn) 
     141                      WRITE(numout,*) ' tra    : ', tra(ji,jj,1,jn) 
     142                      WRITE(numout,*) ' trc_o  : ', trc_o(ji,jj,jn) 
     143                      WRITE(numout,*) ' trc_i  : ', trc_i(ji,jj,jn) 
     144                      WRITE(numout,*) ' fmmflx : ', fmmflx(ji,jj) 
     145                      WRITE(numout,*) ' zswitch: ', zswitch 
     146                      WRITE(numout,*) ' zcd   : ', zcd 
     147                      WRITE(numout,*) ' zftra : ', zftra 
     148                      WRITE(numout,*) ' ztfx  : ', ztfx 
     149                      WRITE(numout,*) ' r1_rau0 : ', r1_rau0 
     150                      WRITE(numout,*) ' zsfx  : ', zsfx(ji,jj) 
     151                      WRITE(numout,*) ' zse3t : ', zse3t 
     152                      WRITE(numout,*) ' ztra  : ', ztra 
     153                      WRITE(numout,*) ' zdtra : ', zdtra 
     154                      WRITE(numout,*) ' Old tendency : ', zsfx(ji,jj) * r1_rau0 * trn(ji,jj,1,jn) * zse3t 
     155                  ENDIF 
    159156    
    160157               END DO 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/trcice.F90

    r5185 r5193  
    4949      NAMELIST/namtrc_ice/ nn_ice_tr 
    5050      ! 
    51       IF(lwp) WRITE(numout,*) 
    52       IF(lwp) WRITE(numout,*) 'trc_ice_ini : Initialize sea ice tracer boundary condition' 
    53       IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~' 
     51      IF(lwp) THEN 
     52         WRITE(numout,*) 
     53         WRITE(numout,*) 'trc_ice_ini : Initialize sea ice tracer boundary condition' 
     54         WRITE(numout,*) '~~~~~~~~~~~~~' 
     55      ENDIF 
    5456 
    5557      IF( nn_timing == 1 )  CALL timing_start('trc_ice_ini') 
    5658 
    57       IF(lwp) THEN 
    58          WRITE(numout,*) ' ' 
    59          WRITE(numout,*) ' sea ice tracers option (nn_ice_tr) : ', nn_ice_tr 
    60          WRITE(numout,*) ' ' 
    61       ENDIF 
    6259      ! 
    6360      REWIND( numnat_ref )              ! Namelist namtrc_dta in reference namelist : Passive tracer input data 
    6461      READ  ( numnat_ref, namtrc_ice, IOSTAT = ios, ERR = 901) 
    6562 901  IF( ios /= 0 ) CALL ctl_nam ( ios , ' namtrc_ice in reference namelist ', lwp ) 
     63 
     64      REWIND( numnat_cfg )              ! Namelist nampissbc in configuration namelist : Pisces external sources of nutrients 
     65      READ  ( numnat_cfg, namtrc_ice, IOSTAT = ios, ERR = 902 ) 
     66 902  IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ice in configuration namelist', lwp ) 
     67 
     68      WRITE(numout,*) ' ' 
     69      WRITE(numout,*) ' Sea ice tracers option (nn_ice_tr) : ', nn_ice_tr 
     70      WRITE(numout,*) ' ' 
    6671 
    6772      trc_i(:,:,:) = 0.0d0 ! by default 
  • branches/2015/dev_r5171_CNRS_LIM3_seaicebgc/NEMOGCM/NEMO/TOP_SRC/trcini.F90

    r5184 r5193  
    9797      areatot = glob_sum( cvol(:,:,:) ) 
    9898 
     99      CALL trc_ice_ini                                 ! Tracers in sea ice 
     100 
    99101      IF( lk_pisces  )       CALL trc_ini_pisces       ! PISCES  bio-model 
    100102      IF( lk_cfc     )       CALL trc_ini_cfc          ! CFC     tracers 
    101103      IF( lk_c14b    )       CALL trc_ini_c14b         ! C14 bomb  tracer 
    102104      IF( lk_my_trc  )       CALL trc_ini_my_trc       ! MY_TRC  tracers 
    103  
    104       CALL trc_ice_ini                                 ! Tracers in sea ice 
    105105 
    106106      IF( lwp ) THEN 
Note: See TracChangeset for help on using the changeset viewer.