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

Changeset 10383


Ignore:
Timestamp:
2018-12-12T19:52:17+01:00 (5 years ago)
Author:
clem
Message:

ice restart should work in the nesting tools now. However ocean restart has been broken for some time

Location:
utils/tools/NESTING
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • utils/tools/NESTING/namelist_nordic1

    r10381 r10383  
    9999    restart_trc_file = 'restart_trc.nc'    
    100100/  
     101 
     102&restart_ice 
     103    restart_ice_file = 'restart_ice.nc' 
     104    interp_type = 'bilinear' 
     105/ 
  • utils/tools/NESTING/namelist_nordic1_update

    r10381 r10383  
    100100    restart_trc_file = 'restart_trc.nc'    
    101101/  
     102 
     103&restart_ice 
     104    restart_ice_file = 'restart_ice.nc' 
     105    interp_type = 'bilinear' 
     106/ 
  • utils/tools/NESTING/namelist_nordic2

    r10381 r10383  
    100100    restart_trc_file = 'restart_trc.nc'    
    101101/  
     102 
     103&restart_ice 
     104    restart_ice_file = 'restart_ice.nc' 
     105    interp_type = 'bilinear' 
     106/ 
  • utils/tools/NESTING/src/agrif_extrapolation.f90

    r2143 r10383  
    4343       CALL get_detected_pts(G0%gphiu,G1%gphiu,G0%glamu,G1%glamu,   & 
    4444            G0%umask(:,:,n),G1%umask(:,:,n),detected(:,:))        
    45     ELSE IF( PRESENT(posvar) .AND. posvar == 'V' ) THEN 
    46        !       
     45    ELSEIF( PRESENT(posvar) .AND. posvar == 'V' ) THEN 
    4746       CALL get_detected_pts(G0%gphiv,G1%gphiv,G0%glamv,G1%glamv,   & 
    4847            G0%vmask(:,:,n),G1%vmask(:,:,n),detected(:,:))                                   
     48    ELSEIF( PRESENT(posvar) .AND. posvar == 'F' ) THEN 
     49       CALL get_detected_pts(G0%gphif,G1%gphif,G0%glamf,G1%glamf,   & 
     50            G0%fmask(:,:,n),G1%fmask(:,:,n),detected(:,:))                                   
    4951    ELSE 
    50        CALL get_detected_pts(G0%nav_lat,G1%nav_lat,G0%nav_lon,G1%nav_lon,   & 
    51             G0%tmask(:,:,n),G1%tmask(:,:,n),detected(:,:))         
     52       CALL get_detected_pts(G0%gphit,G1%gphit,G0%glamt,G1%glamt,   & 
     53            G0%tmask(:,:,n),G1%tmask(:,:,n),detected(:,:))                                   
     54!clem       CALL get_detected_pts(G0%nav_lat,G1%nav_lat,G0%nav_lon,G1%nav_lon,   & 
     55!clem            G0%tmask(:,:,n),G1%tmask(:,:,n),detected(:,:))         
    5256    ENDIF 
    5357    !       
     
    112116       lat = G0%gphiv  
    113117       lon = G0%glamv 
     118    ELSE IF ( PRESENT(posvar) .AND. posvar == 'F' ) THEN 
     119       WHERE(G0%fmask(:,:,k) == 1. ) 
     120          newmask(:,:) = .TRUE. 
     121       ELSEWHERE 
     122          newmask(:,:) = .FALSE. 
     123       END WHERE 
     124       ALLOCATE(mask(SIZE(G0%fmask,1),SIZE(G0%fmask,2),SIZE(G0%fmask,3))) 
     125       ALLOCATE(lat(SIZE(G0%fmask,1),SIZE(G0%fmask,2))) 
     126       ALLOCATE(lon(SIZE(G0%fmask,1),SIZE(G0%fmask,2))) 
     127       mask = G0%fmask         
     128       lat = G0%gphif  
     129       lon = G0%glamf 
    114130    ELSE       
    115131       WHERE(G0%tmask(:,:,k) == 1. ) 
     
    121137       ALLOCATE(lat(SIZE(G0%tmask,1),SIZE(G0%tmask,2))) 
    122138       ALLOCATE(lon(SIZE(G0%tmask,1),SIZE(G0%tmask,2))) 
    123        mask = G0%tmask 
    124        lon = G0%nav_lon 
    125        lat = G0%nav_lat 
     139       mask = G0%tmask         
     140       lat = G0%gphit  
     141       lon = G0%glamt 
     142!clem       mask = G0%tmask 
     143!clem       lon = G0%nav_lon 
     144!clem       lat = G0%nav_lat 
    126145    ENDIF 
    127146    ! 
  • utils/tools/NESTING/src/agrif_readwrite.f90

    r10381 r10383  
    12231223    WRITE(*,*) 'Init masks in T points'     
    12241224    !      
    1225     ALLOCATE(Grid%tmask(nx,ny,N)) 
     1225    ALLOCATE( Grid%tmask(nx,ny,N) ) 
    12261226    ! 
    12271227    DO k = 1,N 
     
    12361236    !       
    12371237  END SUBROUTINE Init_Tmask 
     1238  ! 
     1239  !***************************************************** 
     1240  !   subroutine Init_ssmask(name,Grid) 
     1241  !***************************************************** 
     1242  ! 
     1243!  SUBROUTINE Init_ssmask(varname,filename,Grid,jpiglo,jpjglo) 
     1244!    ! 
     1245!    USE io_netcdf 
     1246!    !       
     1247!    CHARACTER(*) varname,filename 
     1248!    INTEGER :: nx,ny,k,i,j,jpiglo,jpjglo 
     1249!    TYPE(Coordinates) :: Grid 
     1250!    REAL*8, POINTER, DIMENSION(:,:) ::zwf => NULL() 
     1251!    ! 
     1252!    IF(jpiglo == 1 .AND. jpjglo == 1) THEN 
     1253!       CALL read_ncdf_var(varname,filename,Grid%bathy_level) 
     1254!    ELSE 
     1255!       CALL read_ncdf_var(varname,filename,Grid%bathy_level,(/jpizoom,jpjzoom/),(/jpiglo,jpjglo/) ) 
     1256!    ENDIF 
     1257!    ! 
     1258!    nx = SIZE(Grid%bathy_level,1) 
     1259!    ny = SIZE(Grid%bathy_level,2)  
     1260!    ! 
     1261!    WRITE(*,*) 'Init surface masks in T points'     
     1262!    !      
     1263!    ALLOCATE( Grid%ssmask(nx,ny), Grid%ssumask(nx,ny), Grid%ssvmask(nx,ny) ) 
     1264!    ! 
     1265!    WHERE(Grid%bathy_level(:,:) <= 0. )     
     1266!       Grid%ssmask(:,:) = 0. 
     1267!    ELSEWHERE 
     1268!       Grid%ssmask(:,:) = 1. 
     1269!    END WHERE 
     1270!    ! 
     1271!    Grid%ssumask(1:nx-1,:) = Grid%ssmask(1:nx-1,:)*Grid%ssmask(2:nx,:) 
     1272!    Grid%ssvmask(:,1:ny-1) = Grid%ssmask(:,1:ny-1)*Grid%ssmask(:,2:ny) 
     1273!    ! 
     1274!    Grid%ssumask(nx,:) = Grid%ssmask(nx,:) 
     1275!    Grid%ssvmask(:,ny) = Grid%ssmask(:,ny) 
     1276!    !       
     1277!  END SUBROUTINE Init_ssmask 
    12381278  ! 
    12391279  !***************************************************** 
  • utils/tools/NESTING/src/agrif_types.f90

    r10381 r10383  
    6161  CHARACTER*100 ::   parent_bathy_level, parent_level_name, parent_bathy_meter, parent_meter_name, parent_domcfg_out 
    6262  CHARACTER*100 ::   elevation_name, elevation_database 
    63   CHARACTER*100 ::   parent_coordinate_file, restart_file, parent_bathy_meter_updated, parent_domcfg_updated, restart_trc_file 
     63  CHARACTER*100 ::   parent_coordinate_file, parent_bathy_meter_updated, parent_domcfg_updated, & 
     64     &               restart_file, restart_trc_file, restart_ice_file 
    6465  CHARACTER*100 ::   dimg_output_file, interp_type 
    6566  !       
     
    8990  !       
    9091  NAMELIST /restart/ restart_file, shlat, dimg, dimg_output_file, adatrj, interp_type  
    91  
     92  ! 
    9293  NAMELIST /restart_trc/ restart_trc_file, interp_type  
     94  ! 
     95  NAMELIST /restart_ice/ restart_ice_file, interp_type  
    9396  ! 
    9497CONTAINS 
     
    167170       READ (unit_nml , NML = restart ) 
    168171       READ (unit_nml , NML = restart_trc ) 
     172       READ (unit_nml , NML = restart_ice ) 
    169173       CLOSE(unit_nml) 
    170174       !  
  • utils/tools/NESTING/src/io_netcdf.f90

    r10025 r10383  
    291291    status=nf90_inquire_dimension(ncid,dimIDS(2),len=dim2)   
    292292    status=nf90_inquire_dimension(ncid,dimIDS(3),len=dim3) 
    293     !                 
     293    !     
    294294    IF(.NOT. ASSOCIATED(tabvar)) THEN 
    295295       ALLOCATE(tabvar(dim1,dim2,dim3))   
Note: See TracChangeset for help on using the changeset viewer.