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

Changeset 3917


Ignore:
Timestamp:
2013-06-12T23:04:27+02:00 (11 years ago)
Author:
smasson
Message:

v3_4_STABLE: (kind of) bugfix in agrif, see tricket #1111

Location:
branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/NST_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90

    r3294 r3917  
    3535      REAL(wp), POINTER, DIMENSION(:,:    ) :: localviscsponge 
    3636      REAL(wp), POINTER, DIMENSION(:,:    ) :: ztu, ztv 
    37       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab 
     37      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab4d 
    3838      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: tsbdiff 
    3939 
    4040#if defined SPONGE 
    4141      CALL wrk_alloc( jpi, jpj, localviscsponge, ztu, ztv ) 
    42       CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab, tsbdiff  ) 
     42      CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab4d, tsbdiff  ) 
    4343 
    4444      timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 
     
    4646      Agrif_SpecialValue=0. 
    4747      Agrif_UseSpecialValue = .TRUE. 
    48       ztab = 0.e0 
    49       CALL Agrif_Bc_Variable(ztab, tsa_id,calledweight=timecoeff,procname=interptsn) 
     48      ztab4d = 0.e0 
     49      CALL Agrif_Bc_Variable(ztab4d, tsa_id,calledweight=timecoeff,procname=interptsn) 
    5050      Agrif_UseSpecialValue = .FALSE. 
    5151 
    52       tsbdiff(:,:,:,:) = tsb(:,:,:,:) - ztab(:,:,:,:) 
     52      tsbdiff(:,:,:,:) = tsb(:,:,:,:) - ztab4d(:,:,:,:) 
    5353 
    5454      spongearea = 2 + 2 * Agrif_irhox() 
     
    148148 
    149149      CALL wrk_dealloc( jpi, jpj, localviscsponge, ztu, ztv ) 
    150       CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab, tsbdiff  ) 
     150      CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab4d, tsbdiff  ) 
    151151#endif 
    152152 
     
    166166      REAL(wp), POINTER, DIMENSION(:,:,:) :: ubdiff, vbdiff 
    167167      REAL(wp), POINTER, DIMENSION(:,:,:) :: rotdiff, hdivdiff 
    168       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab 
     168      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab3d 
    169169 
    170170#if defined SPONGE 
    171171      CALL wrk_alloc( jpi, jpj, localviscsponge ) 
    172       CALL wrk_alloc( jpi, jpj, jpk, ztab, ubdiff, vbdiff, rotdiff, hdivdiff ) 
     172      CALL wrk_alloc( jpi, jpj, jpk, ztab3d, ubdiff, vbdiff, rotdiff, hdivdiff ) 
    173173 
    174174      timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 
     
    176176      Agrif_SpecialValue=0. 
    177177      Agrif_UseSpecialValue = ln_spc_dyn 
    178       ztab = 0.e0 
    179       CALL Agrif_Bc_Variable(ztab, ua_id,calledweight=timecoeff,procname=interpun) 
     178      ztab3d = 0.e0 
     179      CALL Agrif_Bc_Variable(ztab3d, ua_id,calledweight=timecoeff,procname=interpun) 
    180180      Agrif_UseSpecialValue = .FALSE. 
    181181 
    182       ubdiff(:,:,:) = (ub(:,:,:) - ztab(:,:,:))*umask(:,:,:) 
    183  
    184       ztab = 0.e0 
     182      ubdiff(:,:,:) = (ub(:,:,:) - ztab3d(:,:,:))*umask(:,:,:) 
     183 
     184      ztab3d = 0.e0 
    185185      Agrif_SpecialValue=0. 
    186186      Agrif_UseSpecialValue = ln_spc_dyn 
    187       CALL Agrif_Bc_Variable(ztab, va_id,calledweight=timecoeff,procname=interpvn) 
     187      CALL Agrif_Bc_Variable(ztab3d, va_id,calledweight=timecoeff,procname=interpvn) 
    188188      Agrif_UseSpecialValue = .FALSE. 
    189189 
    190       vbdiff(:,:,:) = (vb(:,:,:) - ztab(:,:,:))*vmask(:,:,:) 
     190      vbdiff(:,:,:) = (vb(:,:,:) - ztab3d(:,:,:))*vmask(:,:,:) 
    191191 
    192192      spongearea = 2 + 2 * Agrif_irhox() 
     
    318318      !                                                ! =============== 
    319319      CALL wrk_dealloc( jpi, jpj, localviscsponge ) 
    320       CALL wrk_dealloc( jpi, jpj, jpk, ztab, ubdiff, vbdiff, rotdiff, hdivdiff ) 
     320      CALL wrk_dealloc( jpi, jpj, jpk, ztab3d, ubdiff, vbdiff, rotdiff, hdivdiff ) 
    321321 
    322322#endif 
  • branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90

    r3294 r3917  
    3232      !! 
    3333      INTEGER, INTENT(in) :: kt 
    34       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab 
     34      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab4d 
    3535 
    3636        
    3737      IF((Agrif_NbStepint() .NE. (Agrif_irhot()-1)).AND.(kt /= 0)) RETURN 
    3838#if defined TWO_WAY 
    39       CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab ) 
     39      CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab4d ) 
    4040 
    4141      Agrif_UseSpecialValueInUpdate = .TRUE. 
     
    4343 
    4444      IF (MOD(nbcline,nbclineupdate) == 0) THEN 
    45          CALL Agrif_Update_Variable(ztab,tsn_id, procname=updateTS) 
    46       ELSE 
    47          CALL Agrif_Update_Variable(ztab,tsn_id,locupdate=(/0,2/), procname=updateTS) 
     45         CALL Agrif_Update_Variable(ztab4d,tsn_id, procname=updateTS) 
     46      ELSE 
     47         CALL Agrif_Update_Variable(ztab4d,tsn_id,locupdate=(/0,2/), procname=updateTS) 
    4848      ENDIF 
    4949 
    5050      Agrif_UseSpecialValueInUpdate = .FALSE. 
    5151 
    52       CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab ) 
     52      CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab4d ) 
    5353#endif 
    5454 
     
    6262      INTEGER, INTENT(in) :: kt 
    6363      REAL(wp), POINTER, DIMENSION(:,:) :: ztab2d 
    64       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab 
     64      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab3d 
    6565 
    6666 
     
    6868#if defined TWO_WAY 
    6969      CALL wrk_alloc( jpi, jpj,      ztab2d ) 
    70       CALL wrk_alloc( jpi, jpj, jpk, ztab  ) 
     70      CALL wrk_alloc( jpi, jpj, jpk, ztab3d ) 
    7171 
    7272      IF (mod(nbcline,nbclineupdate) == 0) THEN 
    73          CALL Agrif_Update_Variable(ztab,un_id,procname = updateU) 
    74          CALL Agrif_Update_Variable(ztab,vn_id,procname = updateV) 
    75       ELSE 
    76          CALL Agrif_Update_Variable(ztab,un_id,locupdate=(/0,1/),procname = updateU) 
    77          CALL Agrif_Update_Variable(ztab,vn_id,locupdate=(/0,1/),procname = updateV)          
     73         CALL Agrif_Update_Variable(ztab3d,un_id,procname = updateU) 
     74         CALL Agrif_Update_Variable(ztab3d,vn_id,procname = updateV) 
     75      ELSE 
     76         CALL Agrif_Update_Variable(ztab3d,un_id,locupdate=(/0,1/),procname = updateU) 
     77         CALL Agrif_Update_Variable(ztab3d,vn_id,locupdate=(/0,1/),procname = updateV)          
    7878      ENDIF 
    7979 
     
    8989 
    9090      CALL wrk_dealloc( jpi, jpj,      ztab2d ) 
    91       CALL wrk_dealloc( jpi, jpj, jpk, ztab  ) 
     91      CALL wrk_dealloc( jpi, jpj, jpk, ztab3d ) 
    9292 
    9393!Done in step 
  • branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/NST_SRC/agrif_top_sponge.F90

    r3294 r3917  
    3636      REAL(wp) :: ztra, zabe1, zabe2, zbtr 
    3737      REAL(wp), POINTER, DIMENSION(:,:) :: localviscsponge 
    38       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: trbdiff, ztru, ztrv, ztab 
     38      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: trbdiff, ztru, ztrv, ztab4d 
    3939 
    4040#if defined SPONGE_TOP 
    4141      CALL wrk_alloc( jpi, jpj, localviscsponge ) 
    42       CALL wrk_alloc( jpi, jpj, jpk, jptra, trbdiff, ztru, ztrv, ztab ) 
     42      CALL wrk_alloc( jpi, jpj, jpk, jptra, trbdiff, ztru, ztrv, ztab4d ) 
    4343 
    4444      timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 
     
    4646      Agrif_SpecialValue=0. 
    4747      Agrif_UseSpecialValue = .TRUE. 
    48       ztab = 0.e0 
    49       CALL Agrif_Bc_Variable(ztab, tra_id,calledweight=timecoeff,procname=interptrn) 
     48      ztab4d = 0.e0 
     49      CALL Agrif_Bc_Variable(ztab4d, tra_id,calledweight=timecoeff,procname=interptrn) 
    5050      Agrif_UseSpecialValue = .FALSE. 
    5151 
    52       trbdiff(:,:,:,:) = trb(:,:,:,:) - ztab(:,:,:,:) 
     52      trbdiff(:,:,:,:) = trb(:,:,:,:) - ztab4d(:,:,:,:) 
    5353 
    5454      spongearea = 2 + 2 * Agrif_irhox() 
     
    147147  
    148148      CALL wrk_dealloc( jpi, jpj, localviscsponge ) 
    149       CALL wrk_dealloc( jpi, jpj, jpk, jptra, trbdiff, ztru, ztrv, ztab ) 
     149      CALL wrk_dealloc( jpi, jpj, jpk, jptra, trbdiff, ztru, ztrv, ztab4d ) 
    150150 
    151151#endif 
Note: See TracChangeset for help on using the changeset viewer.