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

Changeset 7442


Ignore:
Timestamp:
2016-12-02T12:46:31+01:00 (7 years ago)
Author:
cbricaud
Message:

correct bug in for TOP and PISCES

Location:
branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zche.F90

    r7421 r7442  
    3434   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:)   :: chemo2    ! Solubilities of O2 and CO2 
    3535   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: fesol    ! solubility of Fe 
    36    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tempis   ! In situ temperature 
    3736   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   salinprac  ! Practical salinity 
    3837   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tempis   ! In situ temperature 
  • branches/2016/dev_merge_2016/NEMOGCM/NEMO/TOP_SRC/trcdta.F90

    r7421 r7442  
    159159 
    160160 
    161    SUBROUTINE trc_dta( kt, sf_trcdta, ztrcfac, ztrcdta) 
     161   SUBROUTINE trc_dta( kt, sf_trcdta, ptrcfac, ptrcdta) 
    162162      !!---------------------------------------------------------------------- 
    163163      !!                   ***  ROUTINE trc_dta  *** 
     
    173173      INTEGER                          , INTENT(in   )   ::   kt         ! ocean time-step 
    174174      TYPE(FLD), DIMENSION(1)          , INTENT(inout)   ::   sf_trcdta  ! array of information on the field to read 
    175       REAL(wp)                         , INTENT(in   )   ::   ztrcfac    ! multiplication factor 
    176       REAL(wp),  DIMENSION(jpi,jpj,jpk), INTENT(inout  ) ::   ztrcdta    ! 3D data array 
     175      REAL(wp)                         , INTENT(in   )   ::   ptrcfac    ! multiplication factor 
     176      REAL(wp),  DIMENSION(jpi,jpj,jpk), INTENT(inout  ) ::   ptrcdta    ! 3D data array 
    177177      ! 
    178178      INTEGER ::   ji, jj, jk, jl, jkk, ik    ! dummy loop indices 
    179179      REAL(wp)::   zl, zi 
    180180      REAL(wp), DIMENSION(jpk) ::  ztp                ! 1D workspace 
    181       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrcdta   ! 3D  workspace 
    182181      CHARACTER(len=100) :: clndta 
    183182      !!---------------------------------------------------------------------- 
     
    189188         ! read data at kt time step 
    190189         CALL fld_read( kt, 1, sf_trcdta ) 
    191          ztrcdta(:,:,:) = sf_trcdta(1)%fnow(:,:,:) * tmask(:,:,:) 
     190         ptrcdta(:,:,:) = sf_trcdta(1)%fnow(:,:,:) * tmask(:,:,:) 
    192191         !  
    193192         IF( ln_sco ) THEN                !== s- or mixed s-zps-coordinate  ==! 
     
    202201                     zl = gdept_n(ji,jj,jk) 
    203202                     IF(     zl < gdept_1d(1  ) ) THEN         ! above the first level of data 
    204                         ztp(jk) = ztrcdta(ji,jj,1) 
     203                        ztp(jk) = ptrcdta(ji,jj,1) 
    205204                     ELSEIF( zl > gdept_1d(jpk) ) THEN         ! below the last level of data 
    206                         ztp(jk) = ztrcdta(ji,jj,jpkm1) 
     205                        ztp(jk) = ptrcdta(ji,jj,jpkm1) 
    207206                     ELSE                                      ! inbetween : vertical interpolation between jkk & jkk+1 
    208207                        DO jkk = 1, jpkm1                                  ! when  gdept(jkk) < zl < gdept(jkk+1) 
    209208                           IF( (zl-gdept_1d(jkk)) * (zl-gdept_1d(jkk+1)) <= 0._wp ) THEN 
    210209                              zi = ( zl - gdept_1d(jkk) ) / (gdept_1d(jkk+1)-gdept_1d(jkk)) 
    211                               ztp(jk) = ztrcdta(ji,jj,jkk) + ( ztrcdta(ji,jj,jkk+1) - ztrcdta(ji,jj,jkk) ) * zi 
     210                              ztp(jk) = ptrcdta(ji,jj,jkk) + ( ptrcdta(ji,jj,jkk+1) - ptrcdta(ji,jj,jkk) ) * zi 
    212211                           ENDIF 
    213212                        END DO 
     
    215214                  END DO 
    216215                  DO jk = 1, jpkm1 
    217                      ztrcdta(ji,jj,jk) = ztp(jk) * tmask(ji,jj,jk)     ! mask required for mixed zps-s-coord 
     216                     ptrcdta(ji,jj,jk) = ztp(jk) * tmask(ji,jj,jk)     ! mask required for mixed zps-s-coord 
    218217                  END DO 
    219                   ztrcdta(ji,jj,jpk) = 0._wp 
     218                  ptrcdta(ji,jj,jpk) = 0._wp 
    220219                END DO 
    221220            END DO 
     
    229228                     IF( ik > 1 ) THEN 
    230229                        zl = ( gdept_1d(ik) - gdept_n(ji,jj,ik) ) / ( gdept_1d(ik) - gdept_1d(ik-1) ) 
    231                         ztrcdta(ji,jj,ik) = (1.-zl) * ztrcdta(ji,jj,ik) + zl * ztrcdta(ji,jj,ik-1) 
     230                        ptrcdta(ji,jj,ik) = (1.-zl) * ptrcdta(ji,jj,ik) + zl * ptrcdta(ji,jj,ik-1) 
    232231                     ENDIF 
    233232                     ik = mikt(ji,jj) 
    234233                     IF( ik > 1 ) THEN 
    235234                        zl = ( gdept_n(ji,jj,ik) - gdept_1d(ik) ) / ( gdept_1d(ik+1) - gdept_1d(ik) ) 
    236                         ztrcdta(ji,jj,ik) = (1.-zl) * ztrcdta(ji,jj,ik) + zl * ztrcdta(ji,jj,ik+1) 
     235                        ptrcdta(ji,jj,ik) = (1.-zl) * ptrcdta(ji,jj,ik) + zl * ptrcdta(ji,jj,ik+1) 
    237236                     ENDIF 
    238237                  END DO 
     
    243242         ! 
    244243         ! Scale by multiplicative factor 
    245          ztrcdta(:,:,:) = ztrcdta(:,:,:) * ztrcfac 
     244         ptrcdta(:,:,:) = ptrcdta(:,:,:) * ptrcfac 
    246245         ! 
    247246      ENDIF 
     
    256255   !!---------------------------------------------------------------------- 
    257256CONTAINS 
    258    SUBROUTINE trc_dta( kt, sf_trcdta, ztrcfac, ztrcdta)        ! Empty routine 
     257   SUBROUTINE trc_dta( kt, sf_trcdta, ptrcfac, ptrcdta)        ! Empty routine 
    259258      WRITE(*,*) 'trc_dta: You should not have seen this print! error?', kt 
    260259   END SUBROUTINE trc_dta 
Note: See TracChangeset for help on using the changeset viewer.