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 13334 for NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_user.F90 – NEMO

Ignore:
Timestamp:
2020-07-22T16:20:32+02:00 (4 years ago)
Author:
jchanut
Message:

finish bypassing ocean/ice initialization with AGRIF, #2222, #2129

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13312_AGRIF-03-04_jchanut_vinterp_tstep/src/NST/agrif_user.F90

    r13295 r13334  
    4040      !     
    4141   END SUBROUTINE Agrif_initvalues 
    42  
    43     
    44    SUBROUTINE Agrif_Istate( Kbb, Kmm, Kaa ) 
    45       !!---------------------------------------------------------------------- 
    46       !!                 *** ROUTINE agrif_istate *** 
    47       !!---------------------------------------------------------------------- 
    48       USE domvvl 
    49       USE domain 
    50       USE par_oce 
    51       USE agrif_oce 
    52       USE agrif_oce_interp 
    53       USE oce 
    54       USE lib_mpp 
    55       USE lbclnk 
    56       ! 
    57       IMPLICIT NONE 
    58       ! 
    59       INTEGER, INTENT(in)  :: Kbb, Kmm, Kaa 
    60       INTEGER :: jn 
    61       !!---------------------------------------------------------------------- 
    62       IF(lwp) WRITE(numout,*) ' ' 
    63       IF(lwp) WRITE(numout,*) 'AGRIF: interp child initial state from parent' 
    64       IF(lwp) WRITE(numout,*) ' ' 
    65  
    66       l_ini_child           = .TRUE. 
    67       Agrif_SpecialValue    = 0.0_wp 
    68       Agrif_UseSpecialValue = .TRUE. 
    69       uu(:,:,:,:) = 0.0_wp   ;   vv(:,:,:,:) = 0.0_wp   ;   ts(:,:,:,:,:) = 0.0_wp 
    70         
    71       Krhs_a = Kbb   ;   Kmm_a = Kbb 
    72  
    73       ! Brutal fix to pas 1x1 refinment.  
    74   !    IF(Agrif_Irhox() == 1) THEN 
    75   !       CALL Agrif_Init_Variable(tsini_id, procname=agrif_initts) 
    76   !    ELSE 
    77       CALL Agrif_Init_Variable(tsini_id, procname=interptsn) 
    78  
    79   !    ENDIF 
    80 ! just for VORTEX because Parent velocities can actually be exactly zero 
    81 !      Agrif_UseSpecialValue = .FALSE. 
    82       Agrif_UseSpecialValue = ln_spc_dyn 
    83       use_sign_north = .TRUE. 
    84       sign_north = -1. 
    85       CALL Agrif_Init_Variable(uini_id , procname=interpun ) 
    86       CALL Agrif_Init_Variable(vini_id , procname=interpvn ) 
    87       use_sign_north = .FALSE. 
    88  
    89       Agrif_UseSpecialValue = .FALSE. 
    90       l_ini_child           = .FALSE. 
    91  
    92       Krhs_a = Kaa   ;   Kmm_a = Kmm 
    93  
    94       DO jn = 1, jpts 
    95          ts(:,:,:,jn,Kbb) = ts(:,:,:,jn,Kbb)*tmask(:,:,:) 
    96       END DO 
    97       uu(:,:,:,Kbb) = uu(:,:,:,Kbb) * umask(:,:,:)      
    98       vv(:,:,:,Kbb) = vv(:,:,:,Kbb) * vmask(:,:,:)  
    99  
    100  
    101       CALL lbc_lnk_multi( 'agrif_istate', uu(:,:,:  ,Kbb), 'U', -1.0_wp , vv(:,:,:,Kbb), 'V', -1.0_wp ) 
    102       CALL lbc_lnk(       'agrif_istate', ts(:,:,:,:,Kbb), 'T',  1.0_wp ) 
    103  
    104    END SUBROUTINE Agrif_Istate 
    10542 
    10643    
     
    285222      mbkv_parent(:,:) = MAX( NINT( zk(:,:) ), 1 )    
    286223 
    287       IF ( ln_init_chfrpar ) THEN  
    288          CALL Agrif_Init_Variable(sshini_id, procname=agrif_initssh) 
    289          CALL lbc_lnk( 'Agrif_Init_Domain', ssh(:,:,Kbb), 'T', 1. ) 
    290          DO jk = 1, jpk 
    291                e3t(:,:,jk,Kbb) =  e3t_0(:,:,jk) * ( ht_0(:,:) + ssh(:,:,Kbb)  ) & 
    292                         &             / ( ht_0(:,:) + 1._wp - ssmask(:,:) ) * tmask(:,:,jk)   & 
    293                         &              + e3t_0(:,:,jk) * ( 1._wp - tmask(:,:,jk) ) 
    294          END DO 
    295       ENDIF 
    296224 
    297225      ! check if masks and bathymetries match 
     
    904832         &   'agrif_nemo_init: Agrif children requires jpjglo == nbcellsy + 2 + 2*nn_hls + nbghostcells_y_s + nbghostcells_y_n' ) 
    905833      IF( ln_use_jattr )   CALL ctl_stop( 'STOP', 'agrif_nemo_init:Agrif children requires ln_use_jattr = .false. ' ) 
     834      ! 
    906835      ! 
    907836   END SUBROUTINE agrif_nemo_init 
Note: See TracChangeset for help on using the changeset viewer.