Changeset 9630


Ignore:
Timestamp:
2018-05-24T20:50:11+02:00 (2 years ago)
Author:
antsia
Message:

Code for divergence correction

Location:
branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/CONFIG/SHARED/field_def.xml

    r9163 r9630  
    1111============================================================================================================ 
    1212    --> 
    13    <field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" detect_missing_value="true"> <!-- time step automaticaly defined --> 
     13   <field_definition level="1" prec="4" operation="average" enabled=".TRUE." default_value="1.e20" detect_missing_value="false"> <!-- time step automaticaly defined --> 
    1414 
    1515    <!--  
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/CONFIG/SHARED/namelist_ref

    r8447 r9630  
    494494                          !     if you want to keep the cd as in global config, adjust rn_gammat0 to compensate 
    495495                          ! 2 = velocity and stability dependent Gamma    Holland et al. 1999 
     496/ 
     497!----------------------------------------------------------------------- 
     498&namsbc_iscpl  !   land ice / ocean coupling option 
     499!----------------------------------------------------------------------- 
     500   nn_drown  = 10       ! number of iteration of the extrapolation loop (fill the new wet cells) 
     501   ln_hsb    = .false.  ! activate conservation module (conservation exact after a time of rn_fiscpl) 
     502   nn_fiscpl = 43800    ! (number of time step) conservation period (maybe should be fix to the coupling frequencey of restart frequency) 
    496503/ 
    497504!----------------------------------------------------------------------- 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/DOM/dom_oce.F90

    r8427 r9630  
    4343   INTEGER , PUBLIC ::   nn_closea       !: =0 suppress closed sea/lake from the ORCA domain or not (=1) 
    4444   INTEGER , PUBLIC ::   nn_euler        !: =0 start with forward time step or not (=1) 
     45   LOGICAL , PUBLIC ::   ln_iscpl       !: coupling with ice sheet 
    4546   LOGICAL , PUBLIC ::   ln_crs          !: Apply grid coarsening to dynamical model output or online passive tracers 
    4647 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r6491 r9630  
    138138         &             nn_no   , cn_exp    , cn_ocerst_in, cn_ocerst_out, ln_rstart , ln_rstdate, nn_rstctl,   & 
    139139         &             nn_it000, nn_itend  , nn_date0    , nn_leapy     , nn_istate , nn_stock ,   & 
    140          &             nn_write, ln_dimgnnn, ln_mskland  , ln_cfmeta    , ln_clobber, nn_chunksz, nn_euler 
     140         &             nn_write, ln_dimgnnn, ln_mskland  , ln_cfmeta    , ln_clobber, nn_chunksz, nn_euler, ln_iscpl 
    141141      NAMELIST/namdom/ nn_bathy, rn_bathy , rn_e3zps_min, rn_e3zps_rat, nn_msh, rn_hmin,   & 
    142142         &             nn_acc   , rn_atfp     , rn_rdt      , rn_rdtmin ,                  & 
     
    193193         WRITE(numout,*) '      overwrite an existing file      ln_clobber = ', ln_clobber 
    194194         WRITE(numout,*) '      NetCDF chunksize (bytes)        nn_chunksz = ', nn_chunksz 
     195         WRITE(numout,*) '      IS coupling at the restart step ln_iscpl   = ', ln_iscpl 
    195196      ENDIF 
    196197 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90

    r6486 r9630  
    3737   USE eosbn2          ! equation of state            (eos bn2 routine) 
    3838   USE domvvl          ! varying vertical mesh 
     39   USE iscplrst        ! ice sheet coupling 
    3940   USE dynspg_oce      ! pressure gradient schemes 
    4041   USE dynspg_flt      ! filtered free surface 
     
    9192         !                                    ! ------------------- 
    9293         CALL rst_read                           ! Read the restart file 
     94         IF (ln_iscpl)       CALL iscpl_stp      ! extraloate restart to wet and dry 
    9395         CALL day_init                           ! model calendar (using both namelist and restart infos) 
    9496      ELSE 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/DYN/divcur.F90

    r6487 r9630  
    3535   USE wrk_nemo        ! Memory Allocation 
    3636   USE timing          ! Timing 
     37   USE iscplhsb 
    3738 
    3839   IMPLICIT NONE 
     
    327328      !                                                ! =============== 
    328329 
     330      IF( ln_iscpl .AND. kt == nit000)   THEN  
     331         IF(lwp) WRITE(numout,*) 'for nit000, update hdivn after calling div_cur with the divergence correction' 
     332                          CALL iscpl_div( hdivn ) ! 
     333      ENDIF 
    329334      IF( ln_rnf      )   CALL sbc_rnf_div( hdivn )                            ! runoffs (update hdivn field) 
    330335      IF( ln_divisf .AND. (nn_isf .GT. 0) )   CALL sbc_isf_div( hdivn )          ! ice shelf (update hdivn field) 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90

    r9321 r9630  
    169169                     ENDIF 
    170170                     ENDIF 
     171                  IF ( ln_iscpl ) THEN 
     172                     CALL iom_rstput( kt, nitrst, numrow, 'tmask'  , tmask     ) ! need to extrapolate T/S 
     173                     CALL iom_rstput( kt, nitrst, numrow, 'umask'  , umask     ) ! need to correct barotropic velocity 
     174                     CALL iom_rstput( kt, nitrst, numrow, 'vmask'  , vmask     ) ! need to correct barotropic velocity 
     175                     CALL iom_rstput( kt, nitrst, numrow, 'smask'  , ssmask    ) ! need to correct barotropic velocity 
     176                     CALL iom_rstput( kt, nitrst, numrow, 'fse3t_n', fse3t_n(:,:,:) )   ! need to compute temperature correction 
     177                     CALL iom_rstput( kt, nitrst, numrow, 'fse3u_n', fse3u_n(:,:,:) )   ! need to compute bt conservation 
     178                     CALL iom_rstput( kt, nitrst, numrow, 'fse3v_n', fse3v_n(:,:,:) )   ! need to compute bt conservation 
     179                     CALL iom_rstput( kt, nitrst, numrow, 'fsdepw_n', fsdepw_n(:,:,:) ) ! need to compute extrapolation if vvl 
     180                  END IF 
     181 
    171182                     IF(nn_timing == 2)  CALL timing_stop('iom_rstput') 
    172183 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/TRA/trasbc.F90

    r9321 r9630  
    220220      ! 
    221221      ! 
     222 
     223      !---start the tendency with tracer source/sink from divergence correction 
     224      IF ( ln_iscpl .AND. kt == nit000) THEN         
     225         IF (lwp) WRITE(numout,*) 'add tendency tsa due to re-meshing at kt = nit000' 
     226         tsa(:,:,:,jp_tem) = tsa(:,:,:,jp_tem) + rhdivdiff_trac(:,:,:,jp_tem)*tmask(:,:,:) 
     227         tsa(:,:,:,jp_sal) = tsa(:,:,:,jp_sal) + rhdivdiff_trac(:,:,:,jp_sal)*tmask(:,:,:) 
     228      ENDIF 
     229 
    222230      !---------------------------------------- 
    223231      !       Ice Shelf effects (ISF) 
  • branches/UKMO/dev_isf_divg_corr_GO6_package_r9385/NEMOGCM/NEMO/OPA_SRC/oce.F90

    r8280 r9630  
    7171   !! Energy budget of the leads (open water embedded in sea ice) 
    7272   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   fraqsr_1lev        !: fraction of solar net radiation absorbed in the first ocean level [-] 
     73 
     74  !!------array used for divergence correction 
     75   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  rhdivdiff 
     76   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) ::  rhdivdiff_trac 
    7377  
    7478   !! Arrays used in coupling when MEDUSA is present. These arrays need to be declared 
     
    129133         &     ge3rui(jpi,jpj)   , ge3rvi(jpi,jpj)   ,                     & 
    130134         &     grui(jpi,jpj)     , grvi(jpi,jpj)     ,                     & 
    131          &     riceload(jpi,jpj),                             STAT=ierr(2) ) 
     135         &     riceload(jpi,jpj),  rhdivdiff(jpi,jpj,jpk), rhdivdiff_trac(jpi,jpj,jpk,2) ,  STAT=ierr(2) ) 
    132136         ! 
    133137      ALLOCATE( snwice_mass(jpi,jpj) , snwice_mass_b(jpi,jpj), snwice_fmass(jpi,jpj) , STAT=ierr(3) ) 
Note: See TracChangeset for help on using the changeset viewer.