130 likes | 237 Views
High Frequency HWRF output and solar radiation issue related to ocean coupler. Purpose and motivations. ► Requested by NHC forecasters in order to diagnose the model behaviors (HFIP diagnostics efforts)
E N D
High Frequency HWRF output and solar radiation issue related to ocean coupler
Purpose and motivations ► Requested by NHC forecasters in order to diagnose the model behaviors (HFIP diagnostics efforts) ►Every time step output of storm location (lat/lon), minimum sea level pressure and it location (lat/lon), and maximum 10m wind speed and its location (lat/lon) ►Because of MPI, it is not very straight-forward task need some MPI-related coding
Halo tile-1 0th proc tile-2 1st proc
Code changed: dyn_nmm/solve_nmm.F dyn_nmm/module_NEST_UTIL.F parm/hwrf_namelist.inout Registry/Registry.NMM_NEST Main flows: 1. Calculate MSLP and 10m wind speed from model variables 2. Find the minimum MSLP (or maximum 10m wind speed) value and its location (I, J) at each tile. 3. Identify the global minimum or maximum value among those in each tile 4. Locate the tile (processor) which contains the maximum 10m wind and broadcast it to other tiles to write an file
2) Find maximum 10m wind speed over whole tiles and its location using wrf RSL library Find max 10m wind and I1/J1 1) 3) Using do-loop, identify the latitude and longitude of max wind and its tile number Find max 10m wind and I2/J2 4) Broadcast the output of (3) to all tiles to write a file
solve_nmm.F !-------------------------------------------------------------------------------------------------------------- ! ! HIGH FREQUENCY OUTPUT (STORM CENTER, MIN MSLP, MAX WINDS) ! FOR NEST DOMAIN (9KM) KWON 2011.4 ! !-------------------------------------------------------------------------------------------------------------- call nl_get_high_dom(1,dom) call nl_get_high_freq(1,hf) IF(grid%id==dom.AND.HF) THEN CALL HIGH_FREQ(GRID%NTSD,GRID%DT,GRID%HLAT,GRID%HLON & ,GRID%U10,GRID%V10,grid%pint,grid%t,grid%q & ,grid%fis,grid%pd,grid%pdtop,grid%deta1,grid%deta2 & ,mype,mpi_comm_comp & ,IDS,IDF,JDS,JDF,KDS,KDE & ,IMS,IME,JMS,JME,KMS,KME & ,ITS,ITE,JTS,JTE,KTS,KTE ) ENDIF ! !------------------- END OF HIGH FREQUENCY OUTPUT MODULE ----------------------------
Subroutine high_freq . . Calculating MSLP and 10m wind speed . . ! ! FIND MINIMUM MSLP VALUE AND LOCATION AT EACH TILE ! MINGBL_MSLP=MINVAL(MSLP(ITS:ITF,JTS:JTF)) ! DO J = JTS, MIN(JTE,JDE) DO I = ITS, MIN(ITE,IDE) IF(MSLP(I,J) .EQ. MINGBL_MSLP)THEN IMSLP=I JMSLP=J ENDIF ENDDO ENDDO ! CALL WRF_DM_MINVAL(MINGBL_MSLP,IMSLP,JMSLP) : WRF specific function (external/RSL_LITE/module_dm.F)
Subroutine high_freq (cont) ! ! LOCATE THE LAT LON OF ALL POINTS ! DO J = JTS, MIN(JTE,JDE) DO I = ITS, MIN(ITE,IDE) ! IF(I.EQ.IWIND.AND.J.EQ.JWIND) THEN WLAT = HLAT(I,J) WLON = HLON(I,J) WLAT_TASK_ID = MYPE write(0,*) 'HHFO:MAX 10M W ',NTSD,DT*NTSD,MAXGBL_WIND*1.94,WLAT,WLON ENDIF ! ENDDO ENDDO ! ! Boradcast I J indices to all tiles ! ! ! CALL MPI_BCAST(CLAT,1,mpi_real,CLAT_TASK_ID,MPI_COMM_COMP,IERROR) ! CALL MPI_BCAST(CLON,1,mpi_real,CLAT_TASK_ID,MPI_COMM_COMP,IERROR)
Subroutine high_freq (cont) !#if defined(DM_PARALLEL) ! if(wrf_dm_on_monitor()) then ! WRITE(75,*) NTSD,DT*NTSD,ICEN,JCEN,CLAT,CLON, & ! MINGBL_MSLP/100.,IMSLP,JMSLP,PLAT,PLON, & ! MAXGBL_WIND*1.94,IWIND,JWIND,WLAT,WLON ! ENDIF !#endif
Output (example) Forecast time in second Max w, min slp AL, 07, 2010082900, 03, HWRF, 0, 165N, 0545W, 54, 987, 167N, 0542W, 162N, 0545W AL, 07, 2010082900, 03, HWRF, 18, 165N, 0545W, 54, 986, 167N, 0542W, 162N, 0545W AL, 07, 2010082900, 03, HWRF, 36, 165N, 0545W, 53, 985, 167N, 0542W, 162N, 0545W AL, 07, 2010082900, 03, HWRF, 54, 165N, 0545W, 53, 984, 167N, 0542W, 162N, 0545W AL, 07, 2010082900, 03, HWRF, 72, 165N, 0545W, 53, 983, 167N, 0542W, 162N, 0545W . . . AL, 07, 2010082900, 03, HWRF, 453564, 332N, 0759W, 90, 955, 324N, 0758W, 333N, 0759W AL, 07, 2010082900, 03, HWRF, 453582, 332N, 0759W, 90, 955, 324N, 0758W, 333N, 0759W Location of min MSLP
Solar radiation transfer to the ocean coupler In solve_nmm,F call atm_dofluxes (twbs,qwbs,….rswin, rlwin, radot, rswout….) 4components of radiation rswin and rswout are instantaneous values at radiation calling time step. However, it should be transfer zenith angle corrected values like a land-surface module.
In module_PHYSICS_CALLS.F RSW_NET_SFC= (RSWIN(I,J)-RSWOUT(I,J))*FACTRS FACTRS = CZEN(I,J) / CZMEAN(I,J) czen: cosine of solar zenith angle at a physics time step czmean: time mean solar zenith angle over radiation time step
t rad rad rad surface physics time steps