!-------------------------------------------------------------------------- !---------------------------- remap_eta ---------------------------------- ! IN : rhodz, mass_dak, mass_dbk ! TMP : mass_col, cur_lev, new_rhodz_cum ! OUT : rhodz, old_rhodz, eta !$OMP DO SCHEDULE(STATIC) DO ij=1,primal_num rhodz_cum(1,ij)=0. cur_lev(ij)=1 eta(1,ij)=1. new_rhodz_cum(ij)=0. DO l = 1,llm rhodz_cum(l+1,ij) = rhodz_cum(l,ij) + rhodz(l,ij) END DO mass_col(ij) = rhodz_cum(llm+1,ij) DO l = 1,llm old_rhodz(l,ij) = rhodz(l,ij) rhodz(l,ij) = mass_dak(l,ij) + mass_col(ij)*mass_dbk(l,ij) rhodz_cum_target = new_rhodz_cum(ij) + rhodz(l,ij) DO level = cur_lev(ij), llm rhodz_cum_levp1 = rhodz_cum(level+1,ij) IF(rhodz_cum_target<=rhodz_cum_levp1) EXIT END DO IF(level>llm) level=llm rhodz_cum_lev = rhodz_cum(level,ij) ! now rhodz_cum_lev <= rhodz_cum_target <= rhodz_cum_levp1 cur_lev(ij) = level new_rhodz_cum(ij) = rhodz_cum_target eta(l+1,ij) = level + (rhodz_cum_target-rhodz_cum_lev)/(rhodz_cum_levp1-rhodz_cum_lev) END DO END DO !$OMP END DO !---------------------------- remap_eta ---------------------------------- !--------------------------------------------------------------------------