/[MITgcm]/MITgcm_contrib/gael/pkg/smooth/smooth_inv_forcing_gen.F
ViewVC logotype

Contents of /MITgcm_contrib/gael/pkg/smooth/smooth_inv_forcing_gen.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Tue Jun 19 18:23:18 2007 UTC (18 years, 1 month ago) by gforget
Branch: MAIN
CVS Tags: HEAD
pkg/smooth preliminary version

1 #include "CPP_OPTIONS.h"
2
3 subroutine smooth_inv_forcing_gen(startrec, endrec, genmask,
4 & xx_gen_file, xx_genSMmR_file, xx_genREF_file,
5 & xx_gen_dummy, xx_genSMmR_dummy, mythid)
6
7
8 IMPLICIT NONE
9
10 #include "SIZE.h"
11 #include "EEPARAMS.h"
12 #include "GRID.h"
13 #include "PARAMS.h"
14 #ifdef ALLOW_CTRL
15 #include "tamc.h"
16 #include "ctrl.h"
17 #include "optim.h"
18 #include "ctrl_dummy.h"
19 #endif
20 #ifdef ALLOW_COST
21 #include "ecco_cost.h"
22 #endif
23 #include "DYNVARS.h"
24 #include "smooth_inv.h"
25
26 integer mythid,ilgen,enreg_cur
27 _RL tmp0s(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
28 _RL xxgen2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
29 _RL xxgen2DREF(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
30 _RL genmask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy)
31 _RL xx_gen_dummy, xx_genSMmR_dummy
32 character*(80) fnamegen
33 character*(80) xx_gen_file, xx_genSMmR_file
34 character*(80) xx_genREF_file
35 integer bi,bj, i,j, itlo,ithi, jtlo,jthi
36 integer startrec,endrec
37 integer nrec
38 c == external functions ==
39 integer ilnblnk
40 external ilnblnk
41
42
43 #ifdef ALLOW_SMOOTH_INV
44
45 jtlo = mybylo(mythid)
46 jthi = mybyhi(mythid)
47 itlo = mybxlo(mythid)
48 ithi = mybxhi(mythid)
49
50 ilgen=ilnblnk( xx_gen_file )
51 write(xx_genSMmR_file(1:80),'(2a,i10.10)')
52 & xx_gen_file(1:ilgen), '.smooth.',optimcycle
53 write(xx_genREF_file(1:80),'(2a)')
54 & xx_gen_file(1:ilgen), '.ref'
55
56 nrec=endrec-startrec+1
57 do enreg_cur=1,nrec
58 C read control vector
59 ilgen=ilnblnk( xx_gen_file )
60 write(fnamegen(1:80),'(2a,i10.10)')
61 & xx_gen_file(1:ilgen), '.', optimcycle
62 call active_read_xy_loc( fnamegen, xxgen2D, enreg_cur,
63 & .false.,.false., optimcycle,
64 & mythid, xx_gen_dummy)
65 C pass it through the correlation filter
66 call smooth_correl2D(xxgen2D,genmask,1,mythid)
67 C substract the reference field
68 call mdsreadfield(xx_genREF_file,32,'RL',1,
69 & xxgen2DREF, enreg_cur, mythid)
70 do bj = jtlo,jthi
71 do bi = itlo,ithi
72 do j = 1-oly,sny+oly
73 do i = 1-olx,snx+olx
74 xxgen2D(i,j,bi,bj) = xxgen2D(i,j,bi,bj) - xxgen2DREF(i,j,bi,bj)
75 tmp0s(i,j,bi,bj) = 0.
76 enddo
77 enddo
78 enddo
79 enddo
80 C save into file for cost computation
81
82 c ilgen=ilnblnk( xx_genSMmR_file )
83 c write(fnamegen(1:80),'(2a,i10.10)')
84 c & xx_genSMmR_file(1:ilgen), '.', optimcycle
85 c call active_write_xy( fnamegen, xxgen2D, enreg_cur,
86 c & optimcycle, mythid, xx_genSMmR_dummy)
87 call active_write_xy( xx_genSMmR_file, xxgen2D, enreg_cur,
88 & optimcycle, mythid, xx_genSMmR_dummy)
89
90
91 c write(fnamegen(1:80),'(3a,i10.10)')
92 c & 'ad',xx_genSMmR_file(1:ilgen),'.',optimcycle
93 ilgen=ilnblnk( xx_genSMmR_file )
94 write(fnamegen(1:80),'(2a,i10.10)')
95 & 'ad',xx_genSMmR_file(1:ilgen)
96 call mdswritefield(fnamegen,ctrlprec,.FALSE.,'RL',
97 & 1, tmp0s, enreg_cur, optimcycle, mythid)
98
99 enddo
100
101 #endif
102
103 end
104

  ViewVC Help
Powered by ViewVC 1.1.22