Ignore:
Timestamp:
2019-11-05T15:32:44+01:00 (18 months ago)
Author:
gsamson
Message:

dev_r11265_ABL: add write/read restart options for abl (#2131)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11265_ASINTER-01_Guillaume_ABL1D/src/ABL/sbcabl.F90

    r11586 r11858  
    1616   USE par_abl        ! abl parameters 
    1717   USE ablmod 
     18   USE ablrst 
    1819 
    1920   USE phycst         ! physical constants 
     
    6768      REAL(wp)           ::   zcff,zcff1 
    6869      LOGICAL            ::   lluldl 
    69       NAMELIST/namsbc_abl/ cn_dir , cn_dom, ln_hpgls_frc, ln_geos_winds,          & 
    70          &                 nn_dyn_restore,                                        & 
     70      NAMELIST/namsbc_abl/ cn_dir, cn_dom, cn_ablrst_in, cn_ablrst_out,           & 
     71         &                 cn_ablrst_indir, cn_ablrst_outdir,                     & 
     72         &                 ln_hpgls_frc, ln_geos_winds, nn_dyn_restore,           & 
    7173         &                 rn_ldyn_min , rn_ldyn_max, rn_ltra_min, rn_ltra_max,   & 
    7274         &                 nn_amxl, rn_cm, rn_ct, rn_ce, rn_ceps, rn_Rod, rn_Ric, & 
     
    267269      CALL sbc_blk_init 
    268270 
    269       ! initialize ABL from data or restart 
    270       !!GS  disabled for now 
    271       !IF( ln_rstart ) THEN 
    272       !  CALL ctl_stop( 'STOP', 'sbc_abl_init: restart mode not supported yet' ) 
    273       !ELSE 
    274  
    275       CALL fld_read( nit000, nn_fsbc, sf ) ! input fields provided at the first time-step 
    276  
    277271      ! Initialize the time index for now time (nt_n) and after time (nt_a) 
    278272      nt_n = 1 + MOD( nit000  , 2) 
    279273      nt_a = 1 + MOD( nit000+1, 2) 
    280274 
    281        u_abl(:,:,:,nt_n      ) = sf(jp_wndi)%fnow(:,:,:) 
    282        v_abl(:,:,:,nt_n      ) = sf(jp_wndj)%fnow(:,:,:) 
    283       tq_abl(:,:,:,nt_n,jp_ta) = sf(jp_tair)%fnow(:,:,:) 
    284       tq_abl(:,:,:,nt_n,jp_qa) = sf(jp_humi)%fnow(:,:,:) 
    285  
    286       tke_abl(:,:,:,nt_n     ) = tke_min 
    287       avm_abl(:,:,:          ) = avm_bak 
    288       avt_abl(:,:,:          ) = avt_bak 
    289       mxl_abl(:,:,:          ) = mxl_min  
    290       pblh   (:,:            ) = ghw_abl( 3 )  !<-- assume that the pbl contains 3 grid points  
    291       u_abl  (:,:,:,nt_a     ) = 0._wp 
    292       v_abl  (:,:,:,nt_a     ) = 0._wp 
    293       tq_abl (:,:,:,nt_a,:   ) = 0._wp 
    294       tke_abl(:,:,:,nt_a     ) = 0._wp 
    295       !ENDIF 
    296       !!GS restart case not supported 
     275      ! initialize ABL from data or restart 
     276      IF( ln_rstart ) THEN 
     277         CALL abl_rst_read 
     278      ELSE 
     279         CALL fld_read( nit000, nn_fsbc, sf ) ! input fields provided at the first time-step 
     280 
     281          u_abl(:,:,:,nt_n      ) = sf(jp_wndi)%fnow(:,:,:) 
     282          v_abl(:,:,:,nt_n      ) = sf(jp_wndj)%fnow(:,:,:) 
     283         tq_abl(:,:,:,nt_n,jp_ta) = sf(jp_tair)%fnow(:,:,:) 
     284         tq_abl(:,:,:,nt_n,jp_qa) = sf(jp_humi)%fnow(:,:,:) 
     285    
     286         tke_abl(:,:,:,nt_n     ) = tke_min 
     287         avm_abl(:,:,:          ) = avm_bak 
     288         avt_abl(:,:,:          ) = avt_bak 
     289         mxl_abl(:,:,:          ) = mxl_min  
     290         pblh   (:,:            ) = ghw_abl( 3 )  !<-- assume that the pbl contains 3 grid points  
     291         u_abl  (:,:,:,nt_a     ) = 0._wp 
     292         v_abl  (:,:,:,nt_a     ) = 0._wp 
     293         tq_abl (:,:,:,nt_a,:   ) = 0._wp 
     294         tke_abl(:,:,:,nt_a     ) = 0._wp 
     295      ENDIF 
    297296      
    298297   END SUBROUTINE sbc_abl_init 
    299298 
    300    
    301299 
    302300   SUBROUTINE sbc_abl( kt ) 
     
    379377         &            sst_m, zsen, zevp                                ) 
    380378 
     379      CALL abl_rst_opn( kt )                       ! Open abl restart file (if necessary)  
     380      IF( lrst_abl ) CALL abl_rst_write( kt )      ! -- abl restart file  
     381 
    381382#if defined key_si3 
    382383      ! Avoid a USE abl in icesbc module 
Note: See TracChangeset for help on using the changeset viewer.