!-------------------------------------- LICENCE BEGIN ------------------------------------ !Environment Canada - Atmospheric Science and Technology License/Disclaimer, ! version 3; Last Modified: May 7, 2008. !This is free but copyrighted software; you can use/redistribute/modify it under the terms !of the Environment Canada - Atmospheric Science and Technology License/Disclaimer !version 3 or (at your option) any later version that should be found at: !http://collaboration.cmc.ec.gc.ca/science/rpn.comm/license.html ! !This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; !without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. !See the above mentioned License/Disclaimer for more details. !You should have received a copy of the License/Disclaimer along with this software; !if not, you can write to: EC-RPN COMM Group, 2121 TransCanada, suite 500, Dorval (Quebec), !CANADA, H9P 1J3; or send e-mail to service.rpn@ec.gc.ca !-------------------------------------- LICENCE END -------------------------------------- ***s/r v4d_rwtraj_kmkt - Read (Write) from (on) TRAJ WA file for * vertical diffusion coefficients * #include "model_macros_f.h"*
subroutine v4d_rwtraj_kmkt(F_kmm, F_ktm, DIST_DIM, Nk) 3,6 * implicit none * integer DIST_DIM, Nk real F_kmm (DIST_SHAPE,Nk),F_ktm (DIST_SHAPE,Nk) * *author * Stephane Laroche * *revision * v3_00 - Laroche S. - initial MPI version (from v4d_rwtraj) * v3_11 - Tanguay M. - ADJ of digital filter * v3_30 - Tanguay M. - Validation for LAM Nonhyd * *object * * TRAJ for invariant vertical exchange coefficients * *arguments * Name I/O Description *---------------------------------------------------------------- * F_kmm I/O km * F_ktm I/O kt * DIST_DIM I Horizontal dim. of F_? * Nk I Vertical dim. of F_? * * *implicits #include "glb_ld.cdk"
#include "lun.cdk"
#include "schm.cdk"
#include "v4dg.cdk"
* logical plpr_L * * Work arrays * ----------- real work(l_ni*l_nj*l_nk) * * ______________________________________________________ * * Flag to trace storing and retrieving of trajectory * -------------------------------------------------- plpr_L = .false. plpr_L = plpr_L.and.Lun_out.gt.0 * * ---------------- * Read TRAJ Fields * ---------------- if(V4dg_rwtr.eq.0) then * * TANGENT LINEAR MODEL * -------------------- if(V4dg_tl_L) then * * call v4d_rwfld
(F_kmm,work,l_ni,l_nj,LDIST_DIM,Nk, % V4dg_iunph,V4dg_addph,plpr_L,'KM', V4dg_ad_L,0,-1) * call v4d_rwfld
(F_ktm,work,l_ni,l_nj,LDIST_DIM,Nk, % V4dg_iunph,V4dg_addph,plpr_L,'KT', V4dg_ad_L,0,-1) * endif * * ADJOINT MODEL * ------------- if(V4dg_ad_L) then * call v4d_rwfld
(F_ktm,work,l_ni,l_nj,LDIST_DIM,Nk, % V4dg_iunph,V4dg_addph,plpr_L,'KT', V4dg_ad_L, % l_ni*l_nj*l_nk,-1) * call v4d_rwfld
(F_kmm,work,l_ni,l_nj,LDIST_DIM,Nk, % V4dg_iunph,V4dg_addph,plpr_L,'KM', V4dg_ad_L, % l_ni*l_nj*l_nk,-1) * endif * * ----------------- * Write TRAJ Fields * ----------------- elseif(V4dg_rwtr.eq.1) then * call v4d_rwfld
(F_kmm,work,l_ni,l_nj,LDIST_DIM,Nk, % V4dg_iunph,V4dg_addph,plpr_L,'KM',V4dg_ad_L,0,1) * * call v4d_rwfld
(F_ktm,work,l_ni,l_nj,LDIST_DIM,Nk, % V4dg_iunph,V4dg_addph,plpr_L,'KT',V4dg_ad_L,0,1) * endif * return end